课程链接
02-RT-Thread介绍_哔哩哔哩_bilibili
学习方法
使用官方资料进行学习,并且在学习的过程中与FreeRTOS进行比较
RT-Thread API参考手册: 基础定义
标准版RTT移植
这里的串口2是由于打印信息的,因此你需要在开发板上选择USB-TTL串口,与USART2进行通信,而USART1进行下载程序使用
基本数据类型定义
需要记住,防止自己定义错误的数据联系,由于不习惯
RT-Thread 中使用的基本定义。 通常,RT-Thread内核使用自己的基本数据类型定义, 例如rt_uint32_t,rt_uint8_t等,它们不依赖于编译器或体系结构。不像我们之前一直习惯于使用uint8_t,其实就是前面加了一个rt_而已,表示这个是RT-Thread
LED灯闪烁
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#define LED0_PIN GET_PIN(A, 8)
int main(void)
{
int count = 1;
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
while (count++)
{
LOG_D("Hello RT-Thread!");
rt_pin_write(LED0_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED0_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
return RT_EOK;
}
RTT时钟配置
在board.h文件中修改晶振来源和时钟频率
FinSH组件添加
目的是可以对RT进行命令模式,类似于linux的终端,因为RTT就相当于小型的linux
你需要使用SecureCRT
内核框架
内核的理解,可以先留个印象,先学会如何应用,再学习这些理论
线程调度
这个调度的知识点是与FreeRTOS相似的,但是FreeRTOS的任务优先级数值越大,其任务优先级越高,而中断的优先级数值越低,优先级越高
时钟管理
与FreeRTOS也有软件和硬件定时器
线程间同步
线程间通信
内存管理
I/O设备管理