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

    文章

    407

    浏览量

    29219
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122617
  • 编译
    +关注

    关注

    0

    文章

    688

    浏览量

    34950
  • KiCAD
    +关注

    关注

    5

    文章

    313

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    E203移植genesys2(差分时钟板)生成比特流文件全过程

    在windows环境下实现移植流程,因为板子是差分时钟,在最初移植过程中时序报告一直出错,经过调整分频设置之后可以成功生成bit文件。本文章带大家完成vivado阶段所有工作,从源代码
    发表于 10-27 07:16

    必驰语音平台项目通过ASPICE 2能力认证

    近日,必驰为梅赛德斯-奔驰打造的语音平台项目正式通过Automotive SPICE(ASPICE)2能力认证。这一成果标志着必驰在汽车软件研发过程成熟度、
    的头像 发表于 09-30 11:35 834次阅读

    SF51 - SF58超快恢复整流极管规格书资料

    电子发烧友网站提供《SF51 - SF58超快恢复整流极管规格书资料.pdf》资料免费下载
    发表于 09-16 16:34 0次下载

    对 AN65974 项目中 SF_streamIN.img 和 SF_streamOUT.img 的使用有疑问,求解答

    _streamIN.img 和 SF_streamOUT.img 在 DMA 配置、GPIF II FSM 状态机和数据流方向方面功能上是否不同? 如果我需要两种功能——PC FPGA(控制)和 FPGA PC(数据流)
    发表于 08-15 08:17

    翼辉信息RealEvo-Stream的高效移植过程

    面向内核、驱动、板支持包等嵌入式底层开发者,而 RealEvo-Stream 则主要针对应用开发者,其功能偏向上层业务开发、应用适配以及生态软件移植。RealEvo-Stream 可支持多种常用开源
    的头像 发表于 07-05 16:00 996次阅读
    翼辉信息RealEvo-Stream的高效<b class='flag-5'>移植</b><b class='flag-5'>过程</b>

    移植 ZephyrRTOS SF32LB58 过程笔记

    ZephyrRTOS 增加 SoC 支持(2) 基础框架 N32L406 的移植还没有完成,最近又开坑做 SF32LB58
    的头像 发表于 07-04 11:17 1790次阅读
    <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 786次阅读
    51V 精准击穿 30KPA<b class='flag-5'>58</b>A 单向<b class='flag-5'>二</b>极管参数详情

    特与Stereolabs建立合作伙伴关系

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