LiteOS-系统任务栈被撑爆,导致系统挂死问题
系统任务栈被撑爆,导致系统挂死问题
原因:
1. 如果系统挂死,一般在打印信息中会显示任务水线,如果水线超过了任务栈大小,显示0xffffffff,则说明任务栈太小。
2. 如果没有相关任务信息,则可以查看backtrace中的fp寄存器值,如果fp接近该任务的栈顶,则也可以确认任务栈太小。
解决方案:
1. 创建任务时设置的任务栈太小,最直接的方法就是调大任务栈。
2. 任务中有较大的局部变量,需要调整分配方式,使用堆中分配(malloc)的方式处理,不至于过多占用任务栈资源。