关于调用堆栈,任务堆栈

如果没有操作系统的话,那么,函数调用都在普通的堆栈上。如果有操作系统的话,那么,会为每个任务单独分配一个任务堆栈,任务里的函数调用都在任务堆栈中。

在有操作系统的系统中,最开始首先使用普通堆栈,任务起来以后开始使用任务堆栈,具体过程是怎么样的呢?

还有如何检测堆栈溢出呢?

FreeRTOS检测堆栈溢出方法有两种:

https://www.freertos.org/Stacks-and-stack-overflow-checking.html

1,在某任务退出运行态后,检测任务堆栈指针是否超范围

2,将堆栈填充特征码字,在某任务退出运行态后,检测后16字节数据特征码字是否被破坏。

猜你喜欢

转载自www.cnblogs.com/yanhc/p/12623477.html