这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【转载】freertos——创建任务--from三叶

共1条 1/1 1 跳转至

【转载】freertos——创建任务--from三叶

工程师
2024-01-20 23:27:51     打赏

一、了解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.动态任务创建实战


一些重要的注释都在代码里,代码如下
![在这里插入图片描述](

?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oiR5LiObmFubw==,size_20,color_FFFFFF,t_70,g_se,x_16)


![在这里插入图片描述](


创建任务需要六个参数
1、任务函数(这个任务要执行什么功能在任务函数里写)
2、函数名称
3、堆栈大小
4、参数转化
5、优先级
6、任务句柄
后面再写功能时,和正常32一样去写就可以
# 总结
开始了FreeRTOS操作系统的学习,知道了一丢丢,FreeRTOS操作系统可以控制所有实时任务协调一致工作,多个任务同时运行。比普通的32流水线工作要更加便捷。

来源: 整理文章为传播相关技术,网络版权归原作者所有,如有侵权,请联系删除。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]