嵌入式学习笔记 - FreeRTOS关于vApplicationGetIdleTaskMemory

这个函数的作用是获得空闲任务的堆栈以及任务控制块信息,传递给任务创建函数形参,从而FreeRTOS可以对空闲任务进行创建以及其他操作比如初始化,

那么为什么用户创建的任务时没有使用此函数,用户创建的任务完全无需使用此函数,创建任务时直接将任务的堆栈以及任务控制块带入形参即可 ,而空闲任务是由freeRTOS在启动调度器时由系统创建的,需要引用我们定义的这个函数,传入空闲任务的一些信息,类似回调函数

/**

**********************************************************************

* @brief 获取空闲任务的任务堆栈和任务控制块内存

* ppxTimerTaskTCBBuffer : 任务控制块内存

* ppxTimerTaskStackBuffer : 任务堆栈内存

* pulTimerTaskStackSize : 任务堆栈大小

* @author fire

* @version V1.0

* @date -xx-xx

**********************************************************************

*/

void vApplicationGetIdleTaskMemory(

StaticTask_t **ppxIdleTaskTCBBuffer, /*形参为:指向 TCB_t类型指针的指针,也就是指针的地址*/

StackType_t **ppxIdleTaskStackBuffer, /*形参为:指向 StackType_t类型指针的指针,也就是指针的地址*/

uint32_t *pulIdleTaskStackSize /*形参为:指向 32位变量类型的指针*/

)

{

*ppxIdleTaskTCBBuffer=&Idle_Task_TCB;/* 任务控制块内存 *//*指针ppxIdleTaskTCBBuffer指向的地址里存放的是结构体IdleTaskTCB的地址,结构体名字必须加&代表地址*/

*ppxIdleTaskStackBuffer=Idle_Task_Stack;/* 任务堆栈内存 */ /*指针ppxIdleTaskStackBuffer指向的地址里存放的是数组IdleTaskStack的地址,数组名字直接可以代表地址*/

*pulIdleTaskStackSize=configMINIMAL_STACK_SIZE;/* 任务堆栈大小 */ /*指针pulIdleTaskStackSize指向的地址存放的是变量configMINIMAL_STACK_SIZE*/

}

相关推荐
ysa0510301 分钟前
优先队列贪心dp
c++·笔记·算法·板子
其实防守也摸鱼13 分钟前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
MartinYeung534 分钟前
[论文学习]Mamba:具有选择性状态空间的线性时间序列建模
学习
j7~35 分钟前
【数据结构初阶】队列的实现(链式队列 + 循环队列)--详解
c语言·开发语言·数据结构·学习·队列·queue·c\c++
沐苏瑶1 小时前
计算机网络核心笔记:打通 TCP/UDP 与 HTTP/HTTPS 底层逻辑(重点上)
笔记·计算机网络·http·https
天天爱吃肉82182 小时前
AI Agent时代你的经验值多少钱?
人工智能·python·功能测试·学习·汽车
hongyucai6 小时前
随意学习-模型工程:因子、隐空间、采样策略
学习
Amazing_Cacao10 小时前
CFCA精品可可产区风土体系(亚洲):彻底拒绝应试背诵,将感官复核作为检验真实物理差异的唯一铁律
学习
兆龙电子单片机设计12 小时前
【STM32项目开源】STM32单片机语音分类垃圾桶-蓝牙APP
stm32·单片机·嵌入式硬件·物联网·开源·自动化·毕业设计
零涂毕业设计12 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled