以下操作都基於 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 / 劉沛
更多資訊,請關注下方公眾號:
評論