# RT-Thread-nano-GCC-pro **Repository Path**: shawn-njupt/rt-thread-pro ## Basic Information - **Project Name**: RT-Thread-nano-GCC-pro - **Description**: RT-Thread-nano(3.5.1)在gcc编译链上的移植 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-04-11 - **Last Updated**: 2025-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rt-thread-nano-pro(gcc移植,非arm) ![image-20230411223407545.png](https://z4a.net/images/2023/04/11/image-20230411223407545.png) ![image-20230411223340890.png](https://z4a.net/images/2023/04/11/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](https://z4a.net/images/2023/04/11/image-20230411222034566.png) ##### 2.主函数为application.c里面的main.c ##### 3.cubemx生成代码的话注意将生成的 int main(void)删除 #### GCC移植注意: ##### 1.修改startupxxxxxx.s里面的初始化跳转函数 ![image-20230411222409967.png](https://z4a.net/images/2023/04/11/image-20230411222409967.png) 原因为GNUC跳转的是 **entry** 非arm里面的 **$Sub$$main** ![image-20230411222535147.png](https://z4a.net/images/2023/04/11/image-20230411222535147.png) ##### 2.如要增加finsh组件,那么链接文件.ld里面添加 ![image-20230411222758293.png](https://z4a.net/images/2023/04/11/image-20230411222758293.png) 这样之后map函数就变成了这样 ![image-20230412122545014.png](https://z4a.net/images/2023/04/12/image-20230412122545014.png) 那么至于为什么要加这段话呢,是因为finsh组件使用了RT-Thread的自动初始化机制,如下图所示,会自动进行函数初始化,那这里就会调用finsh_system_init ![image-20230412122751902.png](https://z4a.net/images/2023/04/12/image-20230412122751902.png) 而finsh_system_init里面就会调用这两个段里的函数进行初始化 ![image-20230412122914400.png](https://z4a.net/images/2023/04/12/image-20230412122914400.png) 那么如果不加这些段定义,我们把编译优化等级打到 -o0再进行一次编译会发现,这些函数找不到定义的对应段,被链接器丢掉了并且也没有在对应段里面找到,这就是为什么我们串口会卡在msh打印那边 ![image-20230412124530365.png](https://z4a.net/images/2023/04/12/image-20230412124530365.png) #### 运行截图如下 ![image-20230411223147877.png](https://z4a.net/images/2023/04/11/image-20230411223147877.png)