从零开始用makefile 构建rtthread 工程
前言
Rtthread 作为国产的一个操作系统,在国内一直有不俗的声名度,但是其工程用 scons 构建,对于喜欢从零开始构建工程的人来说可能不是很友好,尤其是对于喜欢用 gcc 来编译工程的人更是如此,且国内喜欢用 makefile 来构建工程的人也不多,所以此处记录一下工程的构建过程。
硬件平台:stm32f429bit6
软件平台:stm32cubemx , arm-none-eabi-gcc(linux/wsl平台都可以)。此处假设用户已经正确安装了 arm-none-eabi-gcc 编译链。另外,rtthread 有提供stm32cubemx 对应的软件包,此处后文有机会详述。
一.构建裸机工程
此处仅用两个 led 灯作示例,如图

打开外部晶振和SWD调试



用 makefile 生成工程:

生成工程,此处主要是利用 stm32cubemx 生成基础的 makefile ,当前工程应该可以直接执行 make 进行编译,后续加入 rtthread 也需要在此基础上修改。在 while(1) 添加几行示例代码,编译,看 LED 灯是否正常闪烁。注:此处的 io 处理我选用了 LL 库,用hal库也是一样的。

二.加入 rtthread 源码
官网或github下载源码包
https://github.com/RT-Thread/rt-thread
https://gitee.com/rtthread/rt-thread
得到的 rtthread 文件目录如下:
| 目录 | 说明 |
|---|---|
| bsp | RT-thread 的各种板级支持 |
| components | RT-thread 的组件:finsh、文件系统、网路协议栈等; |
| documentation | 文档类文件,比如代码风格的要求; |
| examples | 示例代码; |
| include | 头文件; |
| libcpu | 各种 CPU 体系结构下的相关移植; |
| src | RT-thread 内核核心代码; |
| tools | 使用 scon 自动化创建工具时需要的一些文件; |
我们只需要拷贝感兴趣的部分:components 、include、libcpu、src 这几个文件夹的内容;
新建一个文件夹 RTthread :

本文详细介绍了如何从零开始,使用makefile构建rtthread在stm32f429上的工程。从生成裸机工程,到加入rtthread源码,修改makefile,解决编译冲突,直至启动系统,全程记录了rtthread工程构建的步骤,适合喜欢手动构建工程的开发者参考。
503

被折叠的 条评论
为什么被折叠?



