从零开始用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 :