1 Star 1 Fork 0

shawn_njupt / RT-Thread-nano-GCC-pro

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.23 KB
一键复制 编辑 原始数据 按行查看 历史
shawn_njupt 提交于 2023-04-12 22:34 . readme_fix_6

rt-thread-nano-pro(gcc移植,非arm)

image-20230411223407545.png

image-20230411223340890.png

介绍

rt-thread的移植

硬件平台:CT117E-M4(stm32g431rbt6)

编译链:GCC

IDE : Clion/vscode

软件架构

RT-THREAD nano core

组件:finsh

hal_driver

说明

1.关闭finsh

注释掉rtconfig.h里面

image-20230411222034566.png

2.主函数为application.c里面的main.c
3.cubemx生成代码的话注意将生成的 int main(void)删除

GCC移植注意:

1.修改startupxxxxxx.s里面的初始化跳转函数

image-20230411222409967.png

原因为GNUC跳转的是 entry 非arm里面的 $Sub$$main

image-20230411222535147.png

2.如要增加finsh组件,那么链接文件.ld里面添加

image-20230411222758293.png

这样之后map函数就变成了这样

image-20230412122545014.png

那么至于为什么要加这段话呢,是因为finsh组件使用了RT-Thread的自动初始化机制,如下图所示,会自动进行函数初始化,那这里就会调用finsh_system_init

image-20230412122751902.png

而finsh_system_init里面就会调用这两个段里的函数进行初始化

image-20230412122914400.png

那么如果不加这些段定义,我们把编译优化等级打到 -o0再进行一次编译会发现,这些函数找不到定义的对应段,被链接器丢掉了并且也没有在对应段里面找到,这就是为什么我们串口会卡在msh打印那边

image-20230412124530365.png

运行截图如下

image-20230411223147877.png

C
1
https://gitee.com/shawn-njupt/rt-thread-pro.git
git@gitee.com:shawn-njupt/rt-thread-pro.git
shawn-njupt
rt-thread-pro
RT-Thread-nano-GCC-pro
master

搜索帮助