liguoye105 发表于 2023-1-17 14:12:51

FreeRTOS 栈溢出诡异问题

1、 任务栈空间申请了 128 word也就是512 个字节
2、任务中故意使用申请了2048个字节
3、栈溢出钩子函数正常打开


很明显这个任务栈溢出了,但诡异的是下载好程序后系统正常运行,即使再增大任务里的栈空间,也不会发生栈溢出。


硬汉哥麻烦解答下。

eric2013 发表于 2023-1-18 09:02:58

用方案二,稍好点。方案一容易检测不到。

FreeRTOS任务栈溢出检测机制----官方提供了两种检测方案
https://www.armbbs.cn/forum.php?mod=viewthread&tid=18388&fromuid=58
(出处: 硬汉嵌入式论坛)

liguoye105 发表于 2023-1-18 10:32:00

eric2013 发表于 2023-1-18 09:02
用方案二,稍好点。方案一容易检测不到。

FreeRTOS任务栈溢出检测机制----官方提供了两种检测方案


两种方式都试过了,系统正常运行。MCU内核是contex M33

550185296@qq.co 发表于 2023-1-18 11:01:47

分为2个问题看:不发生栈溢出异常1)这段ram在此之前就已经空闲了;2)看下map 中的内存分配可能压根触发不到栈溢出;栈溢出钩子函数未生效1)测试下栈溢出钩子函数 是否生效,搞个简单demo;2)确认buf和线程栈起始地址

eric2013 发表于 2023-1-18 11:28:07

liguoye105 发表于 2023-1-18 10:32
两种方式都试过了,系统正常运行。MCU内核是contex M33

主要是看钩子函数是否触发了,不是看系统是否正常运行。溢出了不一定会影响正常运行。

然后就是在FreeRTOS的栈检测几个源码地方打断点调试,看看什么情况,按说方式二是可以检测得到的。这个都检测不到,说明自带的检测机制确实就这样了。 可以自己简单写个代码检测栈末尾数值修改。







页: [1]
查看完整版本: FreeRTOS 栈溢出诡异问题