pledge🐨 · 2023年02月09日 · 上海市

【GD32F427开发板试用】Liteos-m 移植教程(二)

一. 导入 LiteOS-M 源代码

1.下载LiteOS-M 源代码
2.在Keil 5.0中打开项目,根据下面图示将源码导入对应路径下

            title= title=

 title=
 title=

二. 环境配置

1.设置宏定义,如系统版本、处理器类型等。
2.配置编译路径,如头文件、库文件等的搜索路径。
3.保存环境配置,使配置生效。

 title=

三. 编译

编译代码,以确保所有代码都满足编译要求并解决任何编译错误。通过详细检查编译错误消息并在代码中进行修复,以确保编译通过。

 title=
kernel\arch\arm\cortex-m4\iar\los\\\\\\\\_exc.S

32    PRESERVE8
33    SECTION .text: CODE(2)
34    THUMB

35    EXPORT  HalExcNMI
36    EXPORT  HalExcHardFault
37    EXPORT  HalExcMemFault
38    EXPORT  HalExcBusFault
39    EXPORT  HalExcUsageFault
40    EXPORT  HalExcSvcCall

Keil 中的汇编程序不支持“SECTION”指令。 “SECTION”指令通常用于 GNU 汇编器 (GAS),但 Keil 使用不支持此指令的不同汇编器。
将 "SECTION"指令替换为"AREA"指令

AREA MyCode, CODE, READONLY

Re-build 出现如下错误
 title=
错误提示"Instruction not supported on targeted CPU"通常表示代码中使用的指令在选定的 CPU 上不受支持。
要解决此错误,可以尝试以下步骤:

  1. 验证 Keil 项目中是否选择了正确的 CPU。打开 Project 菜单,选择 Options for Target,然后选择 Devices 选项卡。确保选择了正确的 CPU。
  2. 检查有问题的指令。确保所选 CPU 支持该指令。您可以参考处理器的参考手册以获取受支持的指令列表。
  3. 如果该指令不受支持,可能需要使用 CPU 支持的等效指令替换它。
  4. 重新构建项目,检查错误是否已经解决。

kernel\arch\arm\cortex-m4\iar\los\\\\\\\_dispatch.S",

line 122:     BLX     OsSchedTaskSwitch

为 "BX" 指令在 GD32F427v CPU 中受支持。替换后的代码应该是:

LDR R0, =OsSchedTaskSwitch
BX R0

使用Keil 5.0编译LiteOS-M代码,生成固件文件,并烧录到开发板
 title=

五. 测试

进行系统测试,以确保LiteOS-M在GD32开发板上正常运行,
 title=

LED 闪烁,至此移植完成!

推荐阅读
关注数
10707
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息