1.先来看下新代码包的所使用的文件所在:

Source和lunch 58之后(58. s9863a1h10_go_32b_2g-userdebug-native),配置了一些环境变量:

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=11

TARGET_PRODUCT=s9863a1h10_go_32b_2g

TARGET_BUILD_VARIANT=userdebug

TARGET_BUILD_TYPE=release

TARGET_ARCH=arm

TARGET_ARCH_VARIANT=armv7-a-neon

TARGET_CPU_VARIANT=generic

HOST_ARCH=x86_64

HOST_2ND_ARCH=x86

HOST_OS=linux

HOST_OS_EXTRA=Linux-3.19.0-25-generic-x86_64-Ubuntu-14.04.3-LTS

HOST_CROSS_OS=windows

HOST_CROSS_ARCH=x86

HOST_CROSS_2ND_ARCH=x86_64

HOST_BUILD_TYPE=release

BUILD_ID=RP1A.201005.001

OUT_DIR=out

PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl

使用的jdk在lunch之后就已配置好,java -version输出如下:

openjdk version "11.0.4" 2019-07-16

OpenJDK Runtime Environment Android_PDK (build 11.0.4+0-5935077)

OpenJDK 64-Bit Server VM Android_PDK (build 11.0.4+0-5935077, mixed mode)

这里不需要编译电脑专门配置jdk版本,代码内部就带这样一个jdk的了。

刚拿到一个代码包,Lunch之后,你所用的哪些配置文件,基本就确定下来了,这需要根据编译log来确定,因为现在的目录分得更细,

Chipram配置文件:

bsp\bootloader\chipram\include\configs\sp9863a_1h10_32b.h

Lunch之后,bsp的productname就确定下来了,看编译的log有如下输出:

s9863a1h10_go_32b_2g-userdebug-androidr

BSP_PRODUCT_NAME  :  s9863a1h10_go_32b_2g

BSP_BUILD_VARIANT :  userdebug

BSP_PRODUCT_PATH  :  /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_2g

看到没有,BSP_PRODUCT_PATH指出bsp目录下面具体的配置文件及目录所在:

另外,在编译log中可以查看具体source的目录 :

行 33: [32m #### start build chipram #### [0m

行 7669: [32m #### start build busybox #### [0m

行 9232: [32m #### start build perf #### [0m

行 9297: [32m #### start build bootloader #### [0m

行 35570: [32m #### start build teecfg #### [0m

行 35616: [32m #### start build modules #### [0m

行 35628: [32m #### start build kernel #### [0m

行 35629: [32m #### start build config #### [0m

行 35659: [32m #### start build headers #### [0m

行 35710: [32m #### start build config #### [0m

行 35740: [32m #### start build dtb #### [0m

行 36464: [32m #### start build config #### [0m

行 36494: [32m #### start build dtboimage #### [0m

定义uboot的dtb和deconfig文件在如下目录了(通过编译log看出),比如chipram和uboot的配置文件所用的配置文件如下:

[32m #### start build chipram #### [0m

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/common/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/common/chipram.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/chipram.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_2g/common.cfg

[32m #### start build bootloader #### [0m

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/common/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/common/uboot.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/uboot.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_2g/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_2g/uboot.cfg

Kernel的部分应当是编译log早先出来的部分:

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/common/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/common/kernel.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/common.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/kernel.cfg

source /home/chendy/sc6763a/bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_2g/common.cfg

上面的source顺序,可以看出后面souce出来的文件内容,如果与前面是相同的,则后面文件的优待级比较高。如果没有重复,则会使用上述几个目录中的配置。通过查看bootloader部分source的部分,打开uboot.cfg文件来看,dtb的文件指定,是在如下目录指定的

bsp\device\sharkl3\androidr\s9863a1h10_go_32b\s9863a1h10_go_32b_base\uboot.cfg,其内容如下:

export BSP_UBOOT_TOOLCHAIN=$BSP_ROOT_DIR/toolchain/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-

export BSP_UBOOT_DEFCONFIG="sp9863a_1h10_32b"

export BSP_UBOOT_TARGET_DTB="sp9863a_1h10_32b"

export BSP_PRODUCT_USE_DYNAMIC_PARTITIONS="true"

则uboot层的指定的BSP_UBOOT_TARGET_DTB就是dts文件名:bsp/bootloader/u-boot15/arch/arm/dts/sp9863a_1h10_32b.dts

BSP_UBOOT_DEFCONFIG就是所使用的defconfig文件名:bsp\bootloader\u-boot15\configs\sp9863a_1h10_32b_defconfig

Kernel部分的宏指定

bsp\device\sharkl3\androidr\s9863a1h10_go_32b\s9863a1h10_go_32b_2g\common.cfg:

export BSP_DTB="sp9863a"

export BSP_DTBO="sp9863a-1h10_go_32b-overlay"

指定了使用的dts为:bsp/kernel/kernel4.14/arch/arm/boot/dts/sp9863a-1h10_go_32b-overlay.dts

在bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/kernel.cfg

指定了如下宏:

BSP_KERNEL_VERSION="kernel4.14"

export BSP_BOARD_NAME="s9863a1h10_go_32b"

在bsp/device/sharkl3/androidr/s9863a1h10_go_32b/s9863a1h10_go_32b_base/common.cfg配置了如下信息:

#DEFCONFIG

export BSP_KERNEL_DEFCONFIG="sprd_sharkl3_defconfig" 这句话指定了defconfig的具体名字,即是如下文件

bsp/kernel/kernel4.14/arch/arm/configs/sprd_sharkl3_defconfig

2.屏驱动调试,要同时调试uboot和kernel部分的屏驱动:

uboot部分涉及到:

打开bsp/bootloader/u-boot15/arch/arm/dts/sp9863a_1h10_32b.dts这个文件来看,这里指定了所使用的屏:

#include "sc9863a.dtsi"
#include "sharkl3.dtsi"
#include "sc2721.dtsi"
#include "lcd/lcd_nt35596_boe_mipi_fhd.dtsi"
#include "lcd/lcd_nt35532_truly_mipi_fhd.dtsi"
#include "lcd/lcd_nt35695_truly_mipi_fhd.dtsi"
#include "lcd/lcd_dummy_mipi.dtsi"

在这里屏的配置里有控制gpio口的设置:

 lcd-panel {compatible = "sprd,generic-mipi-panel";sprd,lcd-avdd-gpio = <4>;sprd,lcd-avee-gpio = <5>;sprd,lcd-reset-gpio = <50>;};

而bsp\bootloader\u-boot15\drivers\video\sprd\sprd_panel.c和sprd_panel.h文件则实现的是屏的平台层的驱动,不再是屏驱动是否加载的数组了

uboot 层Defconfig文件目录有所更改,在

bsp/bootloader/u-boot15/configs/sp9863a_1h10_32b_defconfig

屏kernel部分涉及到:

对应kernel中的dts对屏的配置方面,是bsp/kernel/kernel4.14/arch/arm/boot/dts/sp9863a-1h10_go_32b-overlay.dts

&panel {sprd,backlight = <&pwm_backlight>;sprd,surface-width = <720>;sprd,surface-height = <1280>;avdd-gpio = <&ap_gpio 4 GPIO_ACTIVE_HIGH>;avee-gpio = <&ap_gpio 5 GPIO_ACTIVE_HIGH>;reset-gpio = <&ap_gpio 50 GPIO_ACTIVE_HIGH>;
};

启动初始是靠ID的不同来识别屏的

屏ID识别部分:如下是识别不正确的情况:

[sprdfb][of_parse_panel] panel: lcd_ili9881d_zhongzhengwei_mipi_hd720

fdtdec_get_int_array: sprd,reset-on-sequence

get_prop_check_min_len: sprd,reset-on-sequence

fdtdec_get_int_array: sprd,reset-off-sequence

get_prop_check_min_len: sprd,reset-off-sequence

fdtdec_get_int_array: sprd,lcd-id-value-len

get_prop_check_min_len: sprd,lcd-id-value-len

[sprdfb][of_parse_panel] Can't get sprd,lcd-id-tokernel

[sprdfb][of_parse_panel] Can't get sprd,lcd-id-tokernel

[sprdfb][dsi_power_domain] dsi power on

[sprdfb][dsi_glb_enable] dsi global enable

[sprdfb][mipi_dsi_init] escape clk div = 4

[sprdfb][sprd_dsi_resume] dsi init OK

[sprdfb][mipi_dphy_configure] lanes : 3

[sprdfb][mipi_dphy_configure] freq : 614000

[sprdfb][sprd_dphy_resume] dphy init OK

GPIO_0 data mask hasn't been opened!

[sprdfb][panel_readid] read hw pin value = 0 gpio_lcdid = 0

[sprdfb][panel_readid] read hw pin lcd_pin_id_mode:0 lcd_pin_id_value:0

[sprdfb][panel_readid] Download Read Id Cmd

[sprdfb][panel_readid] reg items:2, cmd:0xf1, val_en:1 >> R:0x81, D:0x81;

[sprdfb][panel_readid] reg items:2, cmd:0xf2, val_en:1 >> R:0x04, D:0x0d;

[sprdfb][panel_readid] Error: Read ID register data error: [0]=0x04, [1]=0x04, [2]=0x00, [3]=0x00

如下是识别正常的ID ,并打印该屏相关的信息:

[sprdfb][of_parse_panel] panel: lcd_ili9881d_zhongzhengwei_mipi_hd720

fdtdec_get_int_array: sprd,reset-on-sequence

get_prop_check_min_len: sprd,reset-on-sequence

fdtdec_get_int_array: sprd,reset-off-sequence

get_prop_check_min_len: sprd,reset-off-sequence

fdtdec_get_int_array: sprd,lcd-id-value-len

get_prop_check_min_len: sprd,lcd-id-value-len

[sprdfb][of_parse_panel] Can't get sprd,lcd-id-tokernel

[sprdfb][of_parse_panel] Can't get sprd,lcd-id-tokernel

[sprdfb][dsi_power_domain] dsi power on

[sprdfb][dsi_glb_enable] dsi global enable

[sprdfb][mipi_dsi_init] escape clk div = 4

[sprdfb][sprd_dsi_resume] dsi init OK

[sprdfb][mipi_dphy_configure] lanes : 3

[sprdfb][mipi_dphy_configure] freq : 614000

[sprdfb][sprd_dphy_resume] dphy init OK

GPIO_0 data mask hasn't been opened!

[sprdfb][panel_readid] read hw pin value = 0 gpio_lcdid = 0

[sprdfb][panel_readid] read hw pin lcd_pin_id_mode:0 lcd_pin_id_value:0

[sprdfb][panel_readid] Download Read Id Cmd

[sprdfb][panel_readid] reg items:2, cmd:0xf1, val_en:1 >> R:0x81, D:0x81;

[sprdfb][panel_readid] reg items:2, cmd:0xf2, val_en:1 >> R:0x04, D:0x0d;

[sprdfb][panel_readid] Error: Read ID register data error: [0]=0x04, [1]=0x04, [2]=0x00, [3]=0x00

如下是识别正常的ID ,并打印该屏相关的信息:

[sprdfb][panel_readid] read hw pin value = 0 gpio_lcdid = 0

[sprdfb][panel_readid] read hw pin lcd_pin_id_mode:0 lcd_pin_id_value:0

[sprdfb][panel_readid] Download Read Id Cmd

[sprdfb][panel_readid] reg items:2, cmd:0xf1, val_en:1 >> R:0x81, D:0x81;

[sprdfb][panel_readid] reg items:2, cmd:0xf2, val_en:1 >> R:0x04, D:0x04;

[sprdfb][panel_readid] LCD Read Id Success!!!

[sprdfb][sprd_panel_probe] attach panel 0x988104 success

[sprdfb][dump_panel_info] ----Success attached lcd name:lcd_ili9881p_dahong_mipi_hd720, id: 0x988104-----

[sprdfb][dump_panel_info] lcd: type:2, bpp:24, width:720, height:1280

[sprdfb][dump_panel_info] lcd: gpio_reset: 50

[sprdfb][dump_panel_info] gpio_avdd: 4,  gpio_avee: 5

[sprdfb][dump_panel_info] ========sprd,reset-on-sequence ========

[sprdfb][dump_panel_info] lcd: index:0, level: 1, delay: 5

[sprdfb][dump_panel_info] lcd: index:1, level: 0, delay: 5

[sprdfb][dump_panel_info] lcd: index:2, level: 1, delay: 20

[sprdfb][dump_panel_info] ========sprd,reset-off-sequence ========

[sprdfb][dump_panel_info] lcd: index:0, level: 0, delay: 20

[sprdfb][dump_panel_info] ---------------------------------------

[sprdfb][panel_init] Download Panel Init Data Success!

修改了内核的dts文件,编译时在根目录下面启动make dtboimage 后,下载如下文件即更新到修改:

out\target\product\s9863a1h10_go_32b\dtbo.img

安卓11(AndroidR)展锐 sc9863a驱动调试笔记1相关推荐

  1. android刷新媒体存粗,紫光展锐6款芯片适配安卓11 刷新展锐适配Android速度记录

    在9月9日凌晨,谷歌发布了Android 11的正式版,主要围绕用户.权限控制和隐私,这三个关键主题为中心进行升级.通过这次更新,Android 11重新构建了用户通讯的方式,并提供了更多控制敏感权限 ...

  2. 联发科android11基线,紫光展锐 6 款芯片适配安卓 11 刷新展锐适配 Android 速度记录...

    在 9 月 9 日凌晨,谷歌发布了 Android 11 的正式版,主要围绕用户.权限控制和隐私,这三个关键主题为中心进行升级.通过这次更新,Android 11 重新构建了用户通讯的方式,并提供了更 ...

  3. 展讯平台初步调试笔记

    最近公司换新的平台,之前用MTK的,现在主要是展讯的,当然也要重新学习了. 1.project_sc6600l_sp6601l_trisim_64X32.mk为三卡的FLASH大小为6432的. MS ...

  4. 【展锐】PDAF调试

    驱动修改点 A:sensor_xxxx_mipi_raw.c 1.获取PD信息函数 static const cmr_u16 xxxx_pd_is_right[] = PD点位置信息,遮住右半边表示右 ...

  5. 初级驱动调试笔记-总结

    文章目录 一.拿到开发板的第一步 二.调试第一步 三.Makefile说明 3.1 内核版本说明 3.2 Makefile文件 3.3 Makefile 与Kconfig的关系 3.4 defconf ...

  6. stm32mp157 wm8960音频驱动调试笔记

    这次调试wm8960音频驱动遇到了好多的坑,研究好几天终于调试好了. 驱动调试步骤 驱动能不能成功加载是调试的第一大步骤,也是最关键的步骤之一. 1.查看硬件原理图: 2.打开对应的设备树(stm32 ...

  7. RK3399 GT1X触摸屏驱动调试笔记

    硬件环境 1.Firefly AIO-3399(AI)开发版: 2.恒智的5寸电容触摸屏800X480,I2C驱动支持GT5688. 操作系统 Android 7.2 for rockship Ste ...

  8. 展讯camera驱动调试

    camera驱动目录: vendor/sprd/modules/libcamera/sensor/sensor_drv/classic/Galaxycore/gc030a/ kernel/driver ...

  9. 展锐平台HDR调试心得

    HDR,High-Dynamic Range,也就是高动态范围,用于对象的最明亮和最暗部分相差特别大的时候.HDR开启后会连拍三张照片,分别对应欠曝光.正常曝光和过度曝光,然后把这三张图片合到一块并且 ...

最新文章

  1. app启动调用的api
  2. RHEL各版本的XManager4远程配置
  3. Linux内核实现中断和中断处理(二)
  4. 极市分享|第32期 张德兵小美:分布式人脸识别及工业级运用经验
  5. 整型变量(int)与字节数组(byte[])的相互转换
  6. 老布特木糖醇蛋卷鸡蛋味
  7. 内存泄漏Valgrind
  8. QML笔记-4中方式运行qml文件
  9. 每个电脑都会自己的SID号和GUID号,而且不会相同。。
  10. python函数定义及调用-浅谈Python中函数的定义及其调用方法
  11. 随机森林回归预测_jupyter notebook
  12. linux安装或更新显卡驱动
  13. 占领电商细分领域高地的湖南,在产业互联网时代该如何入海?
  14. Robotframwork-ride 启动异常解决
  15. MATLAB实现控制系统的根轨迹分析
  16. 长春理工计算机学院保研外校,长春理工大学174被保研:近7成保研985高校,还有清华、北大……...
  17. dubbo源码分析7 之 服务本地暴露
  18. 【线性代数】第六章——二次型
  19. LPDDR4与LPDDR4X介绍01
  20. 对于IC封装,你了解多少?

热门文章

  1. DDD与TDD比较之——DDD
  2. 阿sa vs 马化腾
  3. 牛皮凉席和牛皮枕套的差异!
  4. HTML5期末考核大作业: 网站——美丽家乡 云南民族文化(8页面) ~ 学生DW网页设计作业源码...
  5. 丝绸之路大数据交易中心成立
  6. vue---网页全屏
  7. 花青素-肠道微生物群-健康轴
  8. 【全网最全的博客美化系列教程】02.添加QQ交谈链接
  9. 这22件事世界首富们都在做,受益一生!
  10. 自然语言22_Wordnet with NLTK