以下操作都基于 Docker 编译环境,使用方法请参考原厂文档《使用Docker 搭建X9 平台代码编译环境》。
1.下载 buildsystem
git clone ssh://customer_c@isupport.semidrive.com:29418/x9c/buildsystem_X9_PTG4.3/buildsystem.git -b X9_PTG4.3
2.配置编译环境
source lunch_sd.sh -c X9H_MS_NativeAndroidUser_Serdes_4G_emmc_4266.json -b X9_PTG4.3 -u customer_c
3.初始化编译工具
make inittools
4.同步全部代码
make sync_all
5.编译前的配置
(1)export SHELL=/bin/bash
(2)buildsystem/atf/atf/arm-trusted-firmware/sml_setup.mk 文件修改为如下
ATF_CROSS_COMPILE := /tool/gcc_linaro/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-elf/bin/aarch64-elf-
6.编译
6.1编译全部:
make build_all
6.2 分步编译:
make lk
make baremetal
make freertos
make atf
make android 2>&1 | tee xxx.log
编译结束增加如下一个 android log 文件
xxx.log
编译得到的二进制文件在如下目录
binary_X9H_MS_NativeAndroidUserdebug_Serdes_4G_emmc_4266
6.3 打包命令
make genpac
genpac 打包得到的镜像文件
image_X9H_MS_NativeAndroidUserdebug_Serdes_4G_emmc_4266
7.镜像测试
7.1 无修改镜像测试
这份无修改代码编译的镜像可在芯驰 X9H_MS Demo 板显示两路 Android 屏,控制台 log 如下。
7.2 无修改镜像烧写到 4G DDR 的客户 Demo 板
无修改镜像烧写进客户板子屏幕,控制台 log 如下,Android 无法启动,无 adb 设备,无法使用 scrcpy 工具。
8.修改代码适配 4G DDR
8.1 修改 json 配置
修改 X9H_MS_NativeAndroidUserdebug_Serdes_4G_emmc_4266.json 文件的内存大小适配于客户的 X9HP 4G 内存
8.2 使用 SDToolBox 工具修改配置
(1)使用 SDToolBox 工具修改 DDR 内存为 4G 并生成新的代码文件。
(2)生成的文件与8G配置文件对比如下
(3)替换或修改文件
一般把生成的文件替换或修改到如下目录:
buildsystem/rtos/lk_boot/chipcfg/generate/x9_high/projects/ms_serdes/image_cfg.h
buildsystem/rtos/lk_boot/chipcfg/generate/x9_high/projects/ms_serdes/image_cfg.mk
buildsystem/android10/kernel/include/dt-bindings/memmap/x9_high/projects/ms_serdes/ image_cfg.h
本次编译工程没有linux 系统,故不需替换 buildsystem/yocto/ 下的内容。
(4)重新配置编译环境
修改之后,记得重新配置编译环境,否则修改无法生效:
source lunch_sd.sh -c X9H_MS_NativeAndroidUser_Serdes_4G_emmc_4266.json -b X9_PTG4.3 -u customer_c
(5)重新编译
全编:
make build_all(单编 make bootimage 反而更慢)
分步编译:
make freertos
make android (之前编译过会比较块,一般几分钟~十几分钟)
(6)修改为 4G DDR 的配置后的镜像可以运行在 X9H_MS Demo 板,X9H_MS Demo 板显示屏,各控制台 log 状态如图。
(7)修改为 4G DDR 的配置后的镜像可以运行在客户 Demo 板,客户显示屏还未适配所以无法显示,使用 scrcpy 工具显示,各控制台 log 状态如图。
参考资料
[1]《SD_X9_PTG4.1_release_notes》
[2]《X9_SDK_用户手册_Rev1.7》
[3]《Hands-On_x9 如何修改 memory layout》
我是好景虚设,欢迎在大大通上关注我!
芯驰 X9 相关博文:
《基于芯驰 X9HP 的设备树文件 dts 的编译和 dtb 文件的反编译》
《基于芯驰 X9HP Demo 板使用 tinyplay 命令调试音频接口》
欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com
作者:Stark Liu / 刘沛
更多资讯,请关注下方公众号: