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

}

相关推荐
万能程序员-传康Kk31 分钟前
智能教育个性化学习平台-java
java·开发语言·学习
溯光笔记1 小时前
第11期_网站搭建_极简云 单码网络验证修复版本 虚拟主机搭建笔记
笔记
序属秋秋秋1 小时前
《C++初阶之类和对象》【命名空间 + 输入&输出 + 缺省参数 + 函数重载】
开发语言·c++·笔记
字节高级特工1 小时前
【Linux篇】0基础之学习操作系统进程
linux·运维·服务器·数据结构·windows·学习·list
hopetomorrow1 小时前
学习路之PHP--webman安装及使用
android·学习·php
待什么青丝1 小时前
【TMS570LC4357】之相关驱动开发学习记录1
c语言·arm开发·驱动开发·学习
泽韦德1 小时前
【Redis】笔记|第9节|Redis Stack扩展功能
数据库·redis·笔记
012925201 小时前
图简记。。
数据结构·笔记
Kethy__1 小时前
算法分析与设计-动态规划、贪心算法
c++·学习·算法·贪心算法·动态规划
s_little_monster1 小时前
【Linux】网络--数据链路层--以太网
linux·运维·网络·经验分享·笔记·学习·计算机网络