一、了解FreeRTOS
FreeRTOS共有32个优先级(0~31)使用时0和31不使用
优先级规则:数字越大优先级越高
任务实现即创建这个任务是干什么的
vTaskDelay();延迟函数也称任务调度函数
如果需要退出调用vTaskDelet(NULL);函数
TypedeftskTCB_t; 两种方法创建任务:动态和静态
任务堆栈字节 X*4
创建任务不运行,注意任务堆栈大小
创建任务都需要指定优先级
# 二、任务创建
任务创建
本质是调用API函数
xTaskCreate(): 使用动态方法创建一个任务
xTaskCreateStatic(): 使用静态方法创建一个任务
xTaskCreateRestricted(): 创建一个使用MPU进行限制的任务,相关内存使用动态内存分配
vTaskDelete():删除一个任务
## 1.动态任务创建
经常使用
1、函数 xTaxkCreate()
<font color=#999AAA >函数原型如下:
```c
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,
const char * const pcName,
const uint16_t usStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
TaskHandle_t * const pxCreatedTask )
```
参数:
pxTaskCode: 任务函数。
pcName: 任务名字,一般用于追踪和调试,任务名字长度不能超过。
configMAX_TASK_NAME_LEN。
usStackDepth: 任务堆栈大小,注意实际申请到的堆栈是 usStackDepth 的 4 倍。其中空闲任
务的任务堆栈大小为 configMINIMAL_STACK_SIZE。
pvParameters: 传递给任务函数的参数。
uxPriotiry: 任务优先级,范围 0~ configMAX_PRIORITIES-1。
pxCreatedTask: 任务句柄,任务创建成功以后会返回此任务的任务句柄,这个句柄其实就是
任务的任务堆栈。此参数就用来保存这个任务句柄。其他 API 函数可能会使
用到这个句柄
## 2.静态任务创建
不常用(这里就不过多介绍)
## 3.动态任务创建实战
一些重要的注释都在代码里,代码如下


2、函数名称
3、堆栈大小
4、参数转化
5、优先级
6、任务句柄
后面再写功能时,和正常32一样去写就可以
# 总结
开始了FreeRTOS操作系统的学习,知道了一丢丢,FreeRTOS操作系统可以控制所有实时任务协调一致工作,多个任务同时运行。比普通的32流水线工作要更加便捷。
来源: 整理文章为传播相关技术,网络版权归原作者所有,如有侵权,请联系删除。