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

    文章

    417

    浏览量

    29523
  • RTOS
    +关注

    关注

    25

    文章

    868

    浏览量

    123204
  • 编译
    +关注

    关注

    0

    文章

    696

    浏览量

    35271
  • KiCAD
    +关注

    关注

    6

    文章

    328

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Ubuntu 25升全解析!即将移植RK系列芯片,技术实践抢先预告

    能、开发工具等维度实现了全方位突破。更重磅的是 —— 我已启动将 Ubuntu 25 移植 RK 系列芯片的计划,后续会持续分享实践细节,各位敬请期待!
    的头像 发表于 02-06 17:07 3424次阅读
    Ubuntu 25升<b class='flag-5'>级</b>全解析!即将<b class='flag-5'>移植</b>RK系列芯片,技术实践抢先预告

    探秘SF - 1206SA - R系列汽车SMD保险丝:性能与应用全解析

    探秘SF - 1206SA - R系列汽车SMD保险丝:性能与应用全解析 在电子设备的设计中,保险丝作为保障电路安全的关键元件,其性能和特性直接影响着整个系统的稳定性和可靠性。今天,我们就来深入
    的头像 发表于 12-24 09:25 678次阅读

    探秘SF-0603SPA-R系列汽车SMD保险丝:特性、参数与应用考量

    探秘SF-0603SPA-R系列汽车SMD保险丝:特性、参数与应用考量 在电子设备的设计中,保险丝作为保障电路安全的关键元件,其性能和特性直接影响着整个系统的稳定性和可靠性。今天,我们就来详细探讨
    的头像 发表于 12-24 09:25 645次阅读

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

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

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

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

    cmbacktrace移植 编译出现_sstack未定义怎么解决?

    移植以后出现 sstack estack stext etext,未定义,去网络上搜索相关文章后,发现keil 的链接脚本文件如下。 不知道CMB_CSTART_BLOCK_START 的值如何配置。。。
    发表于 09-25 07:56

    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 1465次阅读
    翼辉信息RealEvo-Stream的高效<b class='flag-5'>移植</b><b class='flag-5'>过程</b>

    移植 ZephyrRTOS SF32LB58 过程笔记

    ZephyrRTOS 增加 SoC 支持(2) 基础框架 N32L406 的移植还没有完成,最近又开坑做 SF32LB58
    的头像 发表于 07-04 11:17 2636次阅读
    <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

    UHV-615全自动SF6密度继电器校验仪操作使用

    SF6开关是电力系统广泛使用的高压电器SF6开关的可靠运行已成为供用电部门最关心的问题之一。SF6气体密度继电器是用来监测运行中SF6开关本体中SF
    发表于 05-09 17:48 0次下载

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

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