FreeRTOS 栈溢出诡异问题
1、 任务栈空间申请了 128 word也就是512 个字节2、任务中故意使用申请了2048个字节
3、栈溢出钩子函数正常打开
很明显这个任务栈溢出了,但诡异的是下载好程序后系统正常运行,即使再增大任务里的栈空间,也不会发生栈溢出。
硬汉哥麻烦解答下。
用方案二,稍好点。方案一容易检测不到。
FreeRTOS任务栈溢出检测机制----官方提供了两种检测方案
https://www.armbbs.cn/forum.php?mod=viewthread&tid=18388&fromuid=58
(出处: 硬汉嵌入式论坛)
eric2013 发表于 2023-1-18 09:02
用方案二,稍好点。方案一容易检测不到。
FreeRTOS任务栈溢出检测机制----官方提供了两种检测方案
两种方式都试过了,系统正常运行。MCU内核是contex M33 分为2个问题看:不发生栈溢出异常1)这段ram在此之前就已经空闲了;2)看下map 中的内存分配可能压根触发不到栈溢出;栈溢出钩子函数未生效1)测试下栈溢出钩子函数 是否生效,搞个简单demo;2)确认buf和线程栈起始地址 liguoye105 发表于 2023-1-18 10:32
两种方式都试过了,系统正常运行。MCU内核是contex M33
主要是看钩子函数是否触发了,不是看系统是否正常运行。溢出了不一定会影响正常运行。
然后就是在FreeRTOS的栈检测几个源码地方打断点调试,看看什么情况,按说方式二是可以检测得到的。这个都检测不到,说明自带的检测机制确实就这样了。 可以自己简单写个代码检测栈末尾数值修改。
页:
[1]