這里的標識分別是 BOARD(sf32lb58_devkit), SoC (sf32lb586), cpu cluster (hcpu, acpu, lcpu)。MCU 結構復雜了,這些定義也開始繁瑣起來。這里以 hcpu 為例來編寫。構建命令使用:
west build -p always -b sf32lb58_devkit/sf32lb586/hcpu zephyr/samples/hello_world/
注意,這里使用了 Zephyr 3.7 開始使用的新的硬件模型描述方式

詳情見:https://docs.zephyrproject.org/latest/hardware/porting/board_porting.html。
另外要注意,自己定義的 module,如果是通過 west 管理的,west build 會自動關聯;如果是我現在使用的不是通過 west 管理的,那么需要
exportZEPHYR_EXTRA_MODULES="FULL_PATH_TO_MODULE1;FULL_PATH_TO_MODULE2"
否則,west build 無法正確找到自定義的 module 。
板子定義描述文件 board.yml
開發板詳細定義 boards/sifli/sf32lb58_devkit/sf32lb58_devkit_sf32lb586_hcpu.yaml
使用前面的構建命令,報如下錯誤。意思是board 指定的 SoC 沒有定義。
?配置 SoC: soc/sifli/soc.yml
再構建:
新建文件:soc/sifli/sf32lb58/Kconfig
soc/sifli/sf32lb58/Kconfig.soc
定義了 SoC,但是需要在板級的定義里去選中 SoC。boards/sifli/sf32lb58_devkit/Kconfig.board:
boards/sifli/sf32lb58_devkit/Kconfig.sf32lb58_devkit
boards/sifli/sf32lb58_devkit/sf32lb58_devkit_sf32lb586_hcpu_defconfig

(這里的 1000000是我現在隨便寫的)
下面開始定義設備樹。
編輯dts/arm/sifli/sf32lb58.dtsi

創建文件:boards/sifli/sf32lb58_devkit/sf32lb58_devkit_sf32lb586_hcpu.dts

構建,報錯:

是因為在 dts/arm/sifli/sf32lb58.dtsi 忘記添加

再構建,再報錯:

是因為過早定義了 cpu-power-states,先注釋掉

再來

這是因為我有兩處定義了 sram_retention,我選擇在我的 dts/arm/sifli/sf32lb58_hpsys.dtsi 中移除重復的定義。
再來

缺少一個必須有的屬性:
在 dts/arm/sifli/sf32lb58.dtsi 中添加:

再執行構建:

錯誤提示是表達式不完整。查看錯誤日志 linker.cmake 的 155行,所以是因為沒有定義 NUM_IRQ:

創建文件soc/sifli/sf32lb58

創建文件Kconfig.defconfig.sf32lb58_hcpu

再構建

那就放一個空的 CMakeLists.txt
再來

這個問題不大好查,原因是我需要在
sifli_zephyr/soc/sifli/CMakeLists.txt 里添加:

再來:

這個比較簡單,就是沒有在 CMakeLists.txt 添加對應的頭文件路徑
在 soc/sifli/sf32lb58/CMakeLists.txt 中添加:

并且創建空文件 soc/sifli/sf32lb58/soc.h
再來

修改 剛才創建的 soc.h

再來

這個原因是沒有定義 CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
在soc/sifli/sf32lb58/Kconfig.defconfig.sf32lb58_hcpu 中添加

這里 1000000 這個數是我隨便寫的,后面需要查數據手冊填寫正確的數值。
再來

編譯成功了。雖然不能引導,但是可以用于測試添加的文件語法是否正確了。
-
移植
+關注
關注
1文章
408瀏覽量
29242 -
RTOS
+關注
關注
25文章
863瀏覽量
122662 -
編譯
+關注
關注
0文章
689瀏覽量
34971 -
KiCAD
+關注
關注
5文章
313瀏覽量
10239
發布評論請先 登錄
E203移植genesys2(差分時鐘板)生成比特流文件全過程
思必馳語音平臺項目通過ASPICE 2級能力認證
對 AN65974 項目中 SF_streamIN.img 和 SF_streamOUT.img 的使用有疑問,求解答
翼輝信息RealEvo-Stream的高效移植過程
移植 ZephyrRTOS 到思澈 SF32LB58 過程筆記 一
LB/LMB/MB/HB 分集接收模塊 skyworksinc
Sky5? LB / MB / HB 分集接收模塊 skyworksinc
Sky5? LB/MBV/HB 分集接收模塊 skyworksinc
MUN3CAD03-SF原位替代矽力杰的SY98003
Sky5? LB/MB/HB 分集接收模塊 skyworksinc
Sky5? LB/MB/HB LNA Bank 模塊 skyworksinc

移植 ZephyrRTOS 到思澈 SF32LB58 過程筆記之二 建立板級定義
評論