Posted on 2021-07-13 18:15
小菜枫 阅读(688)
评论(0) 编辑 收藏 引用 所属分类:
学习笔记
本入门体验示例,主要基于STM32CubeMX生成的工程,再手动移植RT-Thread源码的方式实现。关于如何使用STM32CubeMX创建对应工程,网上有很多教程,亦可参考blog内的教程《[STM32CubeMX创建MDK工程]》
1、新建存放rtt文件的文件夹,这里命名为rtos

2、将从rtt网站指导下下载下来的rtt-nano源码拷贝必要的文件夹到上一步新建的rtos文件夹

bsp:板级支持包(当前示例stm32例子中只使用到board.c及rtconfig.h,其他可以删掉)
components:组件文件夹
include:头文件目录
libcpu:处理器相关的启动文件(stm32f103属于cortex-m3系列,只要保留cortex-m3文件夹即可,其他都可以删除)
src:内核源码
3、添加上述五个文件夹的所有内容到新建的rtos,并将其添加到git管控

4、将上述描述到没有用到的芯片平台相关文件件和板级支持包删除,精简工程

5、将rtt相关的不需要修改的文件(除board.c和rtconfig.h外)都设置为只读属性,确保rtt相关的文件不会被误修改

6、添加rtt源文件到MDK工程

7、添加rtt的头文件到MDK工程

8、添加完文件后,编译一下。会提示重复定义的错误

删掉/注释掉/预编译原本stm32f10x_it.c的相关函数

9、解决重定义之后,编译成功

10、如果遇到找不到RTE_Components.h头文件的错误,则可以在rtconfig.h中注释掉这一行或者删掉

11、编译成功后烧写,只有一次串口信息输出。则需要修改使用rtt内定义的延时函数

12、添加rtt头文件包含

13、添加一个c文件方便统一创建线程

14、将新增的头文件包含到主头文件

15、动态创建线程函数声明

16、动态创建线程实现

17、动态创建线程调用

18、编译通过,烧写后线程正常启动,每隔1s输出一次调试信息

19、添加静态线程创建相关函数声明

20、添加静态线程创建相关函数实现

21、静态线程函数调用

22、编译及烧写确认
