目录
一:创建工程
1.新建工程
2.选择芯片
3. 系统时钟
3.RCC
4.选择FreeRTOS
5.新建任务
6.时钟配置
7.文件配置
二:任务代码
韦山东:
不同的操作系统创建任务的函数不一样,FreeRTO中是xTaskCreate创建任务,RT-Thread中是rt_thread_creat创建任务,为了方便增加一个统一的接口层,smsis_os.c文件中会抽象出一个统一的接口osThreadNew。
一:FreeRTOS内部机制
基础知识:R13寄存器保存SP(栈指针),R14寄存器保存LR(返回地址),R13寄存器保存PC(当前指针)
当函数被中断后如何保存现场?
CPU中会有R0到R15这些寄存器
在数据被打断的瞬间会保存所有寄存器的值,保存到内存的栈里面。
一个任务就是函数和它的栈,被称为运行中的函数
调度机制:
运行状态,就绪状态,阻塞状态,暂停状态
怎么管理:怎么取出要运行的任务?
找到最高优先级的运行态,就绪态的任务去运行
如果平级,轮流运行
Tick中断来执行调度。
VTaskDelay函数:
高优先级的任务如果不休眠的话,低优先级的任务根本无法得到执行
会将任务从就绪态转变成阻塞状态。