
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文章
401浏览量
28745 -
RTOS
+关注
关注
24文章
851浏览量
121322 -
编译
+关注
关注
0文章
680浏览量
34217 -
KiCAD
+关注
关注
5文章
266浏览量
9609
发布评论请先 登录
移植 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

评论