硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1517|回复: 4
收起左侧

[FreeRTOS] FreeRTOS 栈溢出诡异问题

[复制链接]

7

主题

9

回帖

30

积分

新手上路

积分
30
发表于 2023-1-17 14:12:51 | 显示全部楼层 |阅读模式
1、 任务栈空间申请了 128 word  也就是  512 个字节
2、任务中故意使用申请了2048个字节
3、栈溢出钩子函数正常打开


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


硬汉哥麻烦解答下。
1111.png
2222.png
3333.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
发表于 2023-1-18 09:02:58 | 显示全部楼层
用方案二,稍好点。方案一容易检测不到。

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

使用道具 举报

7

主题

9

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2023-1-18 10:32:00 | 显示全部楼层
eric2013 发表于 2023-1-18 09:02
用方案二,稍好点。方案一容易检测不到。

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

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

使用道具 举报

2

主题

18

回帖

24

积分

新手上路

积分
24
发表于 2023-1-18 11:01:47 | 显示全部楼层
分为2个问题看:不发生栈溢出异常1)这段ram在此之前就已经空闲了;2)看下map 中的内存分配可能压根触发不到栈溢出;栈溢出钩子函数未生效1)测试下栈溢出钩子函数 是否生效,搞个简单demo;2)确认buf和线程栈起始地址
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
发表于 2023-1-18 11:28:07 | 显示全部楼层
liguoye105 发表于 2023-1-18 10:32
两种方式都试过了,系统正常运行。  MCU内核是  contex M33


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

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

image.png





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 17:31 , Processed in 0.178207 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表