千家信息网

学习笔记-RTOS任务创建

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,任务的创建1 任务需要 RAM 来保存与任务有关的状态信息(任务控制块)2 需要一定的 RAM 来作为任务堆栈xTaskCreate()就会从FreeRTOS的堆中分配,必须提供内存管理文件默认使用h
千家信息网最后更新 2025年12月02日学习笔记-RTOS任务创建

任务的创建

1 任务需要 RAM 来保存与任务有关的状态信息(任务控制块)

2 需要一定的 RAM 来作为任务堆栈


xTaskCreate()就会从FreeRTOS的堆中分配,必须提供内存管理文件

默认使用heap_4.c


3 宏 configSUPPORT_DYNAMIC_ALLOCATION 必须为 1


4 函数 xTaskCreateStatic()创建的话这些 RAM 就需要用户来提供了

configSUPPORT_STATIC_ALLOCATION设置为1


5 任务调度器启动前还是启动后,都可以创建任务

最常用的一个

BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,

const char * const pcName,

const uint16_t usStackDepth,

void * const pvParameters,

UBaseType_t uxPriority,

TaskHandle_t * const pxCreatedTask )

pxCreatedTask 任务句柄,就是任务的任务堆栈,其他API可能会用到


返回值 是反映任务创建成功或出错码

pdPASS: 任务创建成功。


6 不常用

TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode,

const char * const pcName,

const uint32_t ulStackDepth,

void * const pvParameters,

UBaseType_t uxPriority,

StackType_t * const puxStackBuffer,

StaticTask_t * const pxTaskBuffer )

pxTaskBuffer: 任务控制块。

返回值:NULL : 任务创建失败

其他值: 任务创建成功,返回任务的任务句柄。


7 vTaskDelete( TaskHandle_t xTaskToDelete )

xTaskToDelete: 要删除的任务的任务句柄。

可以使用NULL做参数,删除任务本身


8 关键实验(学习动态创建):

任务创建:

#define START_TASK_PRIO 1 //任务优先级

#define START_STK_SIZE 128 //任务堆栈大小

TaskHandle_t StartTask_Handler; //任务句柄

void start_task(void *pvParameters); //任务函数


xTaskCreate((TaskFunction_t )start_task, //任务函数

(const char* )"start_task", //任务名称

(uint16_t )START_STK_SIZE, //任务堆栈大小

(void* )NULL, //传递给任务函数的参数

(UBaseType_t )START_TASK_PRIO, //任务优先级

(TaskHandle_t* )&StartTask_Handler); //任务句柄


vTaskStartScheduler(); //开启任务调度


开始任务:

taskENTER_CRITICAL(); //进入临界区

//创建 TASK1 任务

。。。。。。

//创建 TASK2 任务

vTaskDelete(StartTask_Handler); //删除开始任务

taskEXIT_CRITICAL(); //退出临界区


任务堆栈、任务句柄、任务函数声明等,这样方便修改。这些东

西可以放到一个.h 头文件里面去,


开始任务:创建其他应用任务和信号量、队列等内核对象




























任务 句柄 函数 堆栈 成功 优先级 参数 大小 常用 文件 控制 调度 学习 东西 信号 信息 关键 内存 内核 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器如何设置默认当前登录账户 哪些公司需要购买网络安全服务 天猫购物服务器出错 底层软件开发叫啥 数据库安全需求是什么原因 部队网络安全检查情况汇报 hive查找第一行数据库 网络安全员自学 网络安全自学在哪里报名 网络安全主题绘画带着字的 华为云服务器自动备份多少钱 四年级网络安全手抄报难一点 mq配置数据库连接 湘潭大学数据库设计 市面上数据库产品有哪些 戴尔服务器装win10蓝屏 naraka服务器运行失败 手机有网怎么连接不到服务器 关于美国网络安全 电脑断网了重启服务器了怎么设置 嵌入式软件开发有写文档的习惯吗 软件开发和实施服务 网络技术实训体会心得 南通市小程序软件开发 苏州国开行软件开发中心秘闻 数据库系统是全面管理还是控制 文件服务器审计软件 数据库储存器安全 网络安全基本配置课程设计 河南最好的软件开发公司
0