返回列表 发新帖我要提问本帖赏金: 30.00元(功能说明)

[G32R] 移植 zephyr 到 G32R501 的补遗

[复制链接]
 楼主| wangqy_ic 发表于 2025-7-19 12:13 | 显示全部楼层 |阅读模式
<
本帖最后由 wangqy_ic 于 2025-7-19 12:15 编辑

#申请原创# #技术资源# @21小跑堂

之前的两篇文章,介绍了移植 zephyr 到 G32R501 的方法:
  • [G32R] 来了来了 G32R501 可以用上 Zephyr 了:https://bbs.21ic.com/icview-3467596-1-1.html
  • [G32R] 来了来了 G32R501 可以用上 Zephyr 了 之二:https://bbs.21ic.com/icview-3470904-1-1.html

LED 正常闪烁,串口也能正确打印日志,移植算是成功了~

但构建中出现了一些“小瑕疵”,作为精益求精的工程师,需要找到原因解决他们,也就有了这篇《补遗》。

移植中出现的问题/告警的处理

1. 告警:unknown vendor prefix 'geehy'

west 工具在处理 dts 想内容时,会出现类似下图的告警信息,提示 geehy 这个厂商/供应商是未知的。

9a5668056d3f52696d8e558667462279

这个告警出现的原因移植目录dts\bindings下的 .yaml 中,compatible节点下前缀 geehy 没有“登记注册”。

解决方法:移植目录dts\bindings下创建vendor-prefixes.txt文件,内容:

  1. # Device tree binding vendor prefix registry. Keep this list in
  2. # alphabetical order.
  3. #
  4. # This isn't an exhaustive list, but you should add new prefixes to it
  5. # before using them to avoid name-space collisions.
  6. #
  7. # The contents of this file are parsed during documentation generation.
  8. # Anything that starts with a '#' is treated as a comment and ignored.
  9. # Non-empty lines should be in this format:
  10. #
  11. # <vendor-prefix><TAB><Full name of vendor>

  12. # zephyr-keep-sorted-start
  13. geehy   Geehy Semiconductor Co., Ltd.

有效的内容是最后一行,也就是登记 geehy 这个前缀~最后一行之前的内容,引用自 zephyr 源码目录对应文件。

再次编译,之前的告警信息就不会再出现了。

2. 提示:No SOURCES given to Zephyr library

配置阶段出现如下图的这一类提示:
7e74594831c8302a37503ba06764d1d0

出现这个提示的原因是 zephyr 源码中对应的文件夹没有任何源码被编译。

这个是正常的,因为我们这个移植中,驱动代码都是在移植目录,而不是 zephyr 源码目录。这个提示不影响代码的编译和功能。

暂时没有办法消除这个提示

3. 告警:orphan section 'itcm.ramfunc'

链接阶段出现 orphan section 'itcm.ramfunc' 的告警信息,如下图所示:

c2bb4f9fd826d099c4427ca3b514018b

出现这个告警的原因是 G32R501 的 SDK 源码中,有一部分函数在声明是使用SECTION_ITCM_RAMFUNC进行修饰,这个宏展开后是这样:

  1. #define SECTION_ITCM_RAMFUNC __attribute__((section("itcm.ramfunc")))
也就是这些被修饰的函数,是被要求链接到 itcm.ramfunc 这个段。但是我们的 LD 文件里没有这个段,所以就会出现这些告警。

解决方法
  • 置之不理。这写函数没有被链接到指定的段,功能上不影响,执行性能上可能有所降低。因为按这个宏的本意,这些函数应该是被放在 RAM 中执行~
  • 在 LD 文件中,增加这个段的描述。

暂时发现的问题及处理方法就是上面的内容了,以后还发现问题的话,我会更新到这个帖子。

如果有疑问也可以在这个帖子下留言,我能解答的一定知无不言~






打赏榜单

21小跑堂 打赏了 30.00 元 2025-07-29
理由:恭喜通过原创审核!期待您更多的原创作品~~

评论

贴心作者在线查漏补缺,针对移植 zephyr 到 G32R501的文章中可能出现的问题,作者单开一篇详细介绍,认真负责的态度值得肯定。  发表于 2025-7-29 14:23
黄昏收获 发表于 2025-7-21 15:22 | 显示全部楼层
楼主这是生怕我们编译不成功呀!
谢谢楼主分享了!
我觉得Zephyr的高度与门槛还是把我挡在门外了
 楼主| wangqy_ic 发表于 2025-7-21 15:27 | 显示全部楼层
黄昏收获 发表于 2025-7-21 15:22
楼主这是生怕我们编译不成功呀!
谢谢楼主分享了!
我觉得Zephyr的高度与门槛还是把我挡在门外了 ...

如果只是编译的话,其实还好。那个 bat 文件脚本应该就没问题。
麻烦的还是源码的拉取和环境的搭建。
Gfan 发表于 2025-7-23 13:24 | 显示全部楼层
好帖共赏~期待大佬新的系列帖
绝影孤狼 发表于 2025-7-23 19:37 | 显示全部楼层
非常详细,感谢分享!对于未知厂商前缀的处理方法很有帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:感恩的心对人。

22

主题

117

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部