LiteOS内核源码分析:任务栈信息
摘要:LiteOS任务栈是高地址向低地址生长的递减栈,栈指针指向即将入栈的元素位置。 本文分享自华为云社区《LiteOS内核源码分析系列六 -任务及调度(2)-任务LOS_Task》,原文作者:zhushy 。 我们介绍下LiteOS任务栈的基础概念。LiteOS任务栈是高地址向低地址生长的递减栈,栈指针指向即将入栈的元素位置。初始化后未使用过的栈空间初始化的内容为宏OS_STACK_INIT代表的数值0xCACACACA,栈顶初始化为宏OS_STACK_MAGIC_WORD代表的数值0xCCCCCCCC。一个任务栈的示意图如下,其中,栈底指针是栈的最大的内存地址,栈顶指针,是栈的最小的内存地址,栈指针从栈底向栈顶方向生长。 1、 LOS_StackInfo任务栈结构体定义 typedef struct { VOID *stackTop; // 栈顶指针 UINT32 stackSize; // 栈大小 CHAR *stackName; // 栈名称 } StackInfo; 另外定义了一个宏函数OS_STACK_MAGIC_CHECK(topstack)用于检测栈是否有效,当...




