Posted on 2021-07-13 18:15
小菜枫 阅读(679)
评论(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、编译及烧写确认