当前位置:首页 > 学习资源 > 讲师博文 > FreeRTOS中创建任务需要哪些基本参数?

FreeRTOS中创建任务需要哪些基本参数? 时间:2026-11-12      来源:华清远见

FreeRTOS 中创建任务最常用的动态创建 API 是 xTaskCreate()。它从 FreeRTOS 管理的堆中为任务控制块(TCB)和任务栈分配内存,完成任务的初始化并加入就绪队列。本文整理该函数的六个基本入参、返回值、最小代码示例以及常见使用注意事项,供嵌入式开发时快速查阅。

一、函数原型

xTaskCreate() 的函数原型如下,共包含六个参数:

二、六个基本参数

各参数的类型与作用如下表所示。

三、返回值

xTaskCreate() 的返回值为 BaseType_t 类型:

pdPASS:任务创建成功。

errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY:任务创建失败,通常是 FreeRTOS 堆(configTOTAL_HEAP_SIZE)空间不足。

四、最小可用示例

下面示例创建一个以 500 ms 周期翻转 LED 的任务:

五、常见注意事项

栈大小的单位是字(word)而不是字节:Cortex-M(32 位)上 1 字 = 4 字节,填 512 实际只有 2 KB。递归深、使用 printf 或浮点运算时尤其要留足余量。

优先级数值越大越先执行:0 是空闲任务(Idle Task)优先级,用户任务一般从 tskIDLE_PRIORITY + 1 开始。

任务函数不能 return:正常应写成 while(1) 死循环;若要主动退出,必须调用 vTaskDelete(NULL) 自杀,否则会触发异常。

动态创建依赖 FreeRTOS 堆:需要在 FreeRTOSConfig.h 中开启 configSUPPORT_DYNAMIC_ALLOCATION = 1,TCB 与栈都从 configTOTAL_HEAP_SIZE 指定的堆中分配。

不想使用动态堆时可改用静态创建版本 xTaskCreateStatic(),由用户自行提供 TCB 与栈数组,内存完全可控,但参数更多。

上一篇:PyTorch中Tensor是什么? 与NumPy数组有什么区别?

下一篇:深度学习中的 Batch Size、Epoch 与 Iteration 有什么区别

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2026 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5,京公海网安备11010802025203号

回到顶部