0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

移植 ZephyrRTOS 到思澈 SF32LB58 过程笔记之二 建立板级定义

KiCad ? 来源:KiCad ? 作者:KiCad ? 2025-07-05 11:20 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ZephyrRTOS 的编译,是从指定板子 (board) 标识符开始的。所以为了编译测试我们的定义和代码,就必须先定义对应的板子。目前我这里使用的是 SF32LB58 devkit开发板,所以我们的板子名称是 sf32lb58_devkit,所以在 sifli_zephyr 下建立目录结构以及空文件wKgZPGhomw6AbUWqAABMerCvH6o354.png这里的标识分别是 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 开始使用的新的硬件模型描述方式

wKgZPGhomw6AVBSiAABYc7QdAuI180.jpg

详情见: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.ymlwKgZPGhomw6AUDcOAABC4SW7LMI232.png

开发板详细定义 boards/sifli/sf32lb58_devkit/sf32lb58_devkit_sf32lb586_hcpu.yaml

wKgZPGhomw6AaRwcAABtXd9c4s8887.png使用前面的构建命令,报如下错误。意思是board 指定的 SoC 没有定义。wKgZPGhomw6AVqhYAAFtdapSN9M011.png ?配置 SoC: soc/sifli/soc.ymlwKgZPGhomw-AAQ1AAABevb8tnSs719.png再构建:wKgZPGhomw-AQxGJAAJtIIoBKB0878.png新建文件:soc/sifli/sf32lb58/KconfigwKgZPGhomw-ALB84AAA-d-aDqX8407.pngsoc/sifli/sf32lb58/Kconfig.socwKgZPGhomw-AZtvkAAEeHkiZv_E054.png定义了 SoC,但是需要在板级的定义里去选中 SoC。boards/sifli/sf32lb58_devkit/Kconfig.board:wKgZPGhomw-AemxPAAAGrseyh2Y910.pngboards/sifli/sf32lb58_devkit/Kconfig.sf32lb58_devkitwKgZPGhomw-AQxpFAABlYWQjtPg408.png

boards/sifli/sf32lb58_devkit/sf32lb58_devkit_sf32lb586_hcpu_defconfig

wKgZPGhomxCAWKcCAAAUvnb36RM302.png

(这里的 1000000是我现在随便写的)

下面开始定义设备树。

编辑dts/arm/sifli/sf32lb58.dtsi

wKgZPGhomxCAZFPYAACaxiD19H4540.png

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

wKgZPGhomxCADLXzAACDIU7COY8923.png

构建,报错:

wKgZPGhomxCAR64hAAB4P0u2L4A204.png

是因为在 dts/arm/sifli/sf32lb58.dtsi 忘记添加

wKgZPGhomxCAMVGfAAAF89fgpoA067.png

再构建,再报错:

wKgZPGhomxCALa4WAACfN6z6zyc449.png

是因为过早定义了 cpu-power-states,先注释掉

wKgZPGhomxCAGaTxAABT9fz_s7A822.png

再来

wKgZPGhomxGAY686AAB6RgIJUq4656.png

这是因为我有两处定义了 sram_retention,我选择在我的 dts/arm/sifli/sf32lb58_hpsys.dtsi 中移除重复的定义。

再来

wKgZPGhomxGATWWlAACBxlFhG9E318.png

缺少一个必须有的属性:

在 dts/arm/sifli/sf32lb58.dtsi 中添加:

wKgZPGhomxGADBe2AAAVzuX98W4557.png

再执行构建:

wKgZPGhomxGAMpGmAADQ2uJq2Qk192.png

错误提示是表达式不完整。查看错误日志 linker.cmake 的 155行,所以是因为没有定义 NUM_IRQ:

wKgZPGhomxGAAUIzAABHnH7Hx9c941.png

创建文件soc/sifli/sf32lb58

wKgZPGhomxGAHw_mAAAMgghq9hk502.png

创建文件Kconfig.defconfig.sf32lb58_hcpu

wKgZPGhomxGAb-l_AAAPxWGJtPQ032.png

再构建

wKgZPGhomxKAZRroAABI3Uvr4Ks961.png

那就放一个空的 CMakeLists.txt

再来

wKgZPGhomxKAFvEtAACVLQiyhoU505.png

这个问题不大好查,原因是我需要在

sifli_zephyr/soc/sifli/CMakeLists.txt 里添加:

wKgZPGhomxKAezEHAAA6TMdsIfk707.png

再来:

wKgZPGhomxKAZGp3AAAzb-LsFq0581.png

这个比较简单,就是没有在 CMakeLists.txt 添加对应的头文件路径

在 soc/sifli/sf32lb58/CMakeLists.txt 中添加:

wKgZPGhomxKAWZKFAAALcDj0G3U914.png

并且创建空文件 soc/sifli/sf32lb58/soc.h

再来

wKgZPGhomxKABn3PAACKxWkEuGY801.png

修改 刚才创建的 soc.h

wKgZPGhomxOAD7f_AAA8os-LPko630.png

再来

wKgZPGhomxOAPg18AAAuVrbfDvM402.png

这个原因是没有定义 CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC

在soc/sifli/sf32lb58/Kconfig.defconfig.sf32lb58_hcpu 中添加

wKgZPGhomxOAVu8kAAATeMhJuUk253.png

这里 1000000 这个数是我随便写的,后面需要查数据手册填写正确的数值。

再来

wKgZPGhomxOATN5WAAAa9cdSlzQ526.png

编译成功了。虽然不能引导,但是可以用于测试添加的文件语法是否正确了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 移植
    +关注

    关注

    1

    文章

    401

    浏览量

    28745
  • RTOS
    +关注

    关注

    24

    文章

    851

    浏览量

    121322
  • 编译
    +关注

    关注

    0

    文章

    680

    浏览量

    34217
  • KiCAD
    +关注

    关注

    5

    文章

    266

    浏览量

    9609
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    移植 ZephyrRTOS SF32LB58 过程笔记

    ZephyrRTOS 增加 SoC 支持(2) 基础框架 N32L406 的移植还没有完成,最近又开坑做 SF32LB58
    的头像 发表于 07-04 11:17 ?1014次阅读
    <b class='flag-5'>移植</b> <b class='flag-5'>ZephyrRTOS</b> <b class='flag-5'>到</b><b class='flag-5'>思</b><b class='flag-5'>澈</b> <b class='flag-5'>SF32LB58</b> <b class='flag-5'>过程</b><b class='flag-5'>笔记</b> 一

    LB/LMB/MB/HB 分集接收模块 skyworksinc

    /HB 分集接收模块真值表,LB/LMB/MB/HB 分集接收模块管脚等资料,希望可以帮助广大的电子工程师们。
    发表于 05-16 18:32
    <b class='flag-5'>LB</b>/LMB/MB/HB 分集接收模块 skyworksinc

    Sky5? LB / MB / HB 分集接收模块 skyworksinc

    ,Sky5? LB / MB / HB 分集接收模块真值表,Sky5? LB / MB / HB 分集接收模块管脚等资料,希望可以帮助广大的电子工程师们。
    发表于 05-15 18:33
    Sky5? <b class='flag-5'>LB</b> / MB / HB 分集接收模块 skyworksinc

    Sky5? LB/MBV/HB 分集接收模块 skyworksinc

    ? LB/MBV/HB 分集接收模块真值表,Sky5? LB/MBV/HB 分集接收模块管脚等资料,希望可以帮助广大的电子工程师们。
    发表于 05-12 18:32
    Sky5? <b class='flag-5'>LB</b>/MBV/HB 分集接收模块 skyworksinc

    MUN3CAD03-SF原位替代矽力杰的SY98003

    影响。工作温度:支持 -40°C 至 85°C,满足工业应用需求。、MUN3CAD03-SF的优势高集成度:集成电感器,减少外部元件数量,节省 PCB 空间,适合对尺寸敏感的应用。保护功能全面:内置过流
    发表于 04-15 10:07

    Sky5? LB/MB/HB 分集接收模块 skyworksinc

    ? LB/MB/HB 分集接收模块真值表,Sky5? LB/MB/HB 分集接收模块管脚等资料,希望可以帮助广大的电子工程师们。
    发表于 04-11 18:34
    Sky5? <b class='flag-5'>LB</b>/MB/HB 分集接收模块 skyworksinc

    Sky5? LB/MB/HB LNA Bank 模块 skyworksinc

    资料,Sky5? LB/MB/HB LNA Bank 模块真值表,Sky5? LB/MB/HB LNA Bank 模块管脚等资料,希望可以帮助广大的电子工程师们。
    发表于 04-11 18:31
    Sky5? <b class='flag-5'>LB</b>/MB/HB LNA Bank 模块 skyworksinc

    LB9-110W2(LB9-126W2)电流互感器

    LB9-110W2(LB9-126W2)电流互感器供60~145KV、50~60Hz 电力系统作电流、电能测量及继电保护用 产品概述 该系列电流互感器包括LB-60W2、LB
    发表于 04-01 10:36

    51V 精准击穿 30KPA58A 单向极管参数详情

    51V 精准击穿 30KPA58A 单向极管参数详情
    的头像 发表于 02-21 13:35 ?552次阅读
    51V 精准击穿 30KPA<b class='flag-5'>58</b>A 单向<b class='flag-5'>二</b>极管参数详情

    特与Stereolabs建立合作伙伴关系

    特与国际领先的立体视觉相机技术公司 Stereolabs正式建立了合作伙伴关系!
    的头像 发表于 01-06 10:07 ?670次阅读

    Nordic-RT-Thread5.1.0移植笔记

    Nordic-RT-Thread5.1.0移植笔记
    的头像 发表于 10-16 08:09 ?1386次阅读
    Nordic-RT-Thread5.1.0<b class='flag-5'>移植</b><b class='flag-5'>笔记</b>

    极管反向恢复的定义和原理

    极管反向恢复是极管在特定操作条件下展现出的一个重要特性,它涉及极管从正向导通状态转换到反向偏置状态(或相反过程)时的动态行为。以下是
    的头像 发表于 09-10 15:31 ?3768次阅读

    【GD32 MCU 移植教程】2、从 GD32F303 移植 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控制器移植 GD32E503 系列微控制器。
    的头像 发表于 08-31 09:36 ?2292次阅读
    【GD32 MCU <b class='flag-5'>移植</b>教程】2、从 GD32F303 <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32F503

    SF6泄漏在线监测报警系统在10kV1000kV高压开关室中的应用

    当使用以SF6气体为绝缘和灭弧介质的室内开关在使用过程中发生泄漏时,泄漏出来的SF6气体及其分解产物会往室内低层空间积聚,造成局部缺氧和带毒. SF6泄漏在线监测报警系统室时监测环境中
    的头像 发表于 08-30 10:17 ?1037次阅读
    <b class='flag-5'>SF</b>6泄漏在线监测报警系统在10kV<b class='flag-5'>到</b>1000kV高压开关室中的应用

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

    应用程序移植新的微控制器。本应用笔记旨在帮助您快速将应用程序从 GD32F10x 系列微控制器移植 GD32F30x 系列微控制器。
    的头像 发表于 08-30 09:52 ?2377次阅读
    【GD32 MCU <b class='flag-5'>移植</b>教程】1、从 GD32F10x <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32F30x