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

}

相关推荐
盐焗西兰花2 小时前
鸿蒙学习实战之路-Reader Kit修改翻页方式字体大小及行间距最佳实践
学习·华为·harmonyos
QiZhang | UESTC2 小时前
学习日记day76
学习
久邦科技2 小时前
20个免费电子书下载网站,实现电子书自由(2025持续更新)
学习
Gain_chance2 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
不能跑的代码不是好代码3 小时前
STM32窗口看门狗(WWDG)知识点及标准库使用指南
stm32·单片机·嵌入式硬件
bingquan33333 小时前
在 Ghidra 中分析STM32裸机固件
stm32·单片机·嵌入式硬件
羽获飞3 小时前
从零开始学嵌入式之STM32——11.STM32---USART串行通讯
stm32·单片机·嵌入式硬件
Gain_chance4 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习
肖永威4 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
XH华4 小时前
备战蓝桥杯,第九章:结构体和类
学习·蓝桥杯