嵌入式学习笔记 - 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 小时前
学习笔记090——Ubuntu 中 UFW 防火墙的使用
笔记·学习·ubuntu
NeRF_er1 小时前
STORM代码阅读笔记
大数据·笔记·storm
UQWRJ1 小时前
菜鸟教程Linux ViVimYumApt笔记
linux·运维·笔记
程序员Xu1 小时前
【OD机试题解法笔记】查找接口成功率最优时间段
笔记·算法
jingjing~2 小时前
STM32 使用 RTC 实现实时时钟功能
stm32·嵌入式硬件·实时音视频
hhj123k2 小时前
渗透作业3
网络·学习
心一信息2 小时前
HCIE学习之路:一个NAT实验
学习·计算机网络·智能路由器
wb1893 小时前
企业WEB应用服务器TOMCAT
运维·前端·笔记·tomcat·云计算
Se_ren_di_pity4 小时前
CS231n2017-Lecture9经典CNN架构笔记
人工智能·笔记·cnn