最近一段时间都在学习rt-thread,正好可以借助于手头的CH579的开发板进行学习。
目前已经在CH579上跑了一些常用的例程,基本上也是按照野火的教程来的,主要包括:
一、rt-thread移植
二、rt_kprintf函数重映射
三、线程管理
四、消息队列
五、信号量
六、互斥量
七、事件
八、软件定时器
九、邮箱
十、内存管理
后面将逐一为大家呈现。本次主要进行rt-thread的移植。
移植详细教程:
一、获取rt-thread软件包
rt-thread的软件包有两种,一种是RT-Thread Master,另一种是RT-Thread Nano。
Nano是Master的精简版。Master集成了很多第三方处理器的代码。
我们直接用Nano版本就好了。
Nano版本可以直接在keil官网上下载。
下载链接:https://www.keil.com/dd2/Pack/
目前最新版本为3.1.3,如下:
安装好以后,会在keil安装目录下找到rt-thread文件夹。
二、正式开始移植
1.准备一个裸机工程
2.直接将keil目录下的RT-Thread文件夹拷贝到裸机工程里面
3.拷贝rtconfig.h和board.c到工程user文件夹,我的直接在工程文件夹下:
4.将源码添加到工程
rtt/source下添加src的代码
rtt/ports根据处理器类型选择添加,如cortex-m0/cortex-m3/cortex-m4/cortex-m7
ch579是cortex-m0,所以我们选择libcpu/arm/cortex-m0目录下的文件进行添加,如下:
5.在工程设置里指定头文件路径
7.修改rtconfig.h
只需要改一处地方就可以了,如下:
8.修改board.c
如下,修改的地方用红色标出来(红色的部分注释掉,蓝色的部分是需要我们自己添加的,主要是系统时钟初始化,systick初始化,和硬件外设初始化,以后外设的初始化代码都放在这里),另外,还要自己包含board.h文件,(board.h自己手动新建)
我的board.h文件为:
- #ifndef __BOARD_H__
- #define __BOARD_H__
- #include "CH57x_common.h"
- #include "gpio.h"
- #define SystemCoreClock 32000000
- #endif
9.main函数
- #include "CH57x_common.h"
- #include "gpio.h"
- #include "touch_key.h"
- #include "uart.h"
- #include "board.h"
- #include "rtthread.h"
- int main(void)
- {
-
- }
到此,rt-thread就移植完毕了,还是很简单的。
此时,编译应该是没有错误的。
因为main函数没有任何东西,所以不会ch579开发板不会有任何现象。
下一次将为大家讲解线程的创建,并点亮led灯。
|