嵌入式学习笔记 - 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*/

}

相关推荐
兆龙电子单片机设计1 小时前
【STM32项目开源】STM32单片机智能恒温箱控制系统
stm32·单片机·物联网·开源·毕业设计
wan5555cn2 小时前
多张图片生成视频模型技术深度解析
人工智能·笔记·深度学习·算法·音视频
Broken Arrows3 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
今天也要学习吖3 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
雁于飞3 小时前
vscode中使用git、githup的基操
笔记·git·vscode·学习·elasticsearch·gitee·github
rannn_1114 小时前
【Javaweb学习|实训总结|Week1】html基础,CSS(选择器、常用样式、盒子模型、弹性盒布局、CSS定位、动画),js(基本类型、运算符典例)
css·笔记·学习·html
Ro Jace4 小时前
心灵笔记:第一性原理学习与实践
笔记
索迪迈科技4 小时前
基于野火F407开发板实现电源管理-停止模式
c语言·stm32·单片机·嵌入式硬件·mcu
小莞尔4 小时前
【51单片机】【protues仿真】基于51单片机宠物投食系统
c语言·stm32·单片机·嵌入式硬件·51单片机