硬汉嵌入式论坛

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

[RL-RTX] 呼叫呼叫,IDLE都堆栈溢出,为何

[复制链接]

10

主题

45

回帖

75

积分

初级会员

积分
75
发表于 2016-1-14 12:16:15 | 显示全部楼层 |阅读模式
file:///C:\Users\dell123\AppData\Roaming\Tencent\Users\847228401\QQ\WinTemp\RichOle\CV64X%597]}UL%3N0%WOI_8.png QQ图片20160114121307.png
溢出是这样的,串口中断接收邮箱isr_mbx_send到主任务处理,但是处理完总是会溢出,是idle溢出,idle是空函数的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106995
QQ
发表于 2016-1-14 13:55:58 | 显示全部楼层
估计是你的任务栈溢出了,以前我遇到过一次,这个调试组件更新速度还是有些慢,如果能够记录栈的最大值和最小值就好了。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2016-1-14 14:40:20 | 显示全部楼层
是的确是,子函数的数组溢出了,但是问什么这个这个溢出去到了idle才显示
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106995
QQ
发表于 2016-1-14 16:22:54 | 显示全部楼层

回 0520kuang 的帖子

0520kuang:是的确是,子函数的数组溢出了,但是问什么这个这个溢出去到了idle才显示 (2016-01-14 14:40) 
具体原因没有研究过。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2016-1-16 22:56:32 | 显示全部楼层

回 0520kuang 的帖子

0520kuang:是的确是,子函数的数组溢出了,但是问什么这个这个溢出去到了idle才显示 (2016-01-14 14:40) 
rtx的栈溢出检查机理很简单   每个任务栈底放一个幻数  当检测到这个数值被修改  就认为栈溢出

你可以查看下 任务栈起始地址 看看栈底是不是被改变了

你的问题解释起来也较为容易,比如你栈溢出实在太彻底了,把其他任务栈都写穿了,却刚好没有写坏自己栈底的幻数。。。写穿其他任务栈也是很容易的,因为任务栈其实都是放在一起的数组,彼此都紧挨着
回复

使用道具 举报

58

主题

118

回帖

292

积分

高级会员

积分
292
发表于 2016-7-19 16:16:33 | 显示全部楼层
不单是idle,从调试器看到的任务堆栈溢出很多情况下都不是对应的任务的堆栈溢出,一点点找吧。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 15:06 , Processed in 0.265228 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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