
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








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文章
398瀏覽量
28665 -
RTOS
+關注
關注
24文章
848瀏覽量
121028 -
編譯
+關注
關注
0文章
677瀏覽量
33920 -
KiCAD
+關注
關注
5文章
253瀏覽量
9464
發布評論請先 登錄
移植 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

LB9-110W2(LB9-126W2)電流互感器
二極管反向恢復的定義和原理
【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

SF6泄漏在線監測報警系統在10kV到1000kV高壓開關室中的應用

【GD32 MCU 移植教程】1、從 GD32F10x 移植到 GD32F30x

評論