打印

IAR报错

[复制链接]
2348|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yxldianqi2|  楼主 | 2013-3-18 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IAR, AC, ck, se, ST

IAR报错

Mon Mar 18 16:07:41 2013: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.%
程序全速运行  停止过后就显示上面这条错误 该怎样解决 小弟刚接触430  用的芯片是MSP430F1611  求大神帮帮忙解决一下

相关帖子

沙发
lixiao3717| | 2013-3-18 18:55 | 只看该作者
哈哈 我也遇到这样的问题了! 你可以出来看一下我的帖子。有大神指点了一下。

你能把option\linker\list\   segment map  和static overlay map 打勾。
然后让我看看你的...\debug\list\*.map 文件吗。
我想对比一下咱俩的*.map

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
yxldianqi2 + 1 很给力!
板凳
yxldianqi2|  楼主 | 2013-3-19 09:46 | 只看该作者
lixiao3717 发表于 2013-3-18 18:55
哈哈 我也遇到这样的问题了! 你可以出来看一下我的帖子。有大神指点了一下。

你能把option\linker\list\  ...

试了你的方法还是不行  这是我的map文件

nuoer3.rar

3.78 KB

使用特权

评论回复
地板
lixiao3717| | 2013-3-19 10:04 | 只看该作者
从你的map看没用多少stack啊,你这个生成这个.map的时候出现The stack 'Stack' is filled to 100%了吗。
如果你运行第一遍没有警告,随着运行次数增加stack也增加那么会不会是你程序里有变量没有释放。

  01  main
      | Stack used (prev) :  00000012
      | + function block  :  00000002
  <-Sub-tree of type: Function tree
    | Stack used          :  00000014


  ->Sub-tree of type: Function tree
                             CSTACK
    | Stack used (prev) :  00000014
  01  exit
      | Stack used (prev) :  00000014
      | + function block  :  00000002
  <-Sub-tree of type: Function tree
    | Stack used          :  00000016

使用特权

评论回复
5
三千花花世界| | 2013-3-19 10:43 | 只看该作者
请仔细看我的回复

我之前已经说过了,很多调试器,包括IAR,都会在程序开始之前用一个特定值初始化所有堆栈区域,IAR用的是0xCC,所以在你的代码运行之前,你可以用存储器观察窗口,观察到堆栈区域的RAM值是0XCC。

在你程序运行之后,你用到的堆栈区域的0XCC就会被修改,IAR就通过这个来观察你的代码使用到了多少堆栈区域。

所以,你的问题有两个可能,1就是堆栈确实溢出了,但这个很少见。2就是你的堆栈地址被你的代码错误访问了,你的代码误写了堆栈区域。这个是很常见的。

所以你要做的是观察一下你的堆栈,在什么地址仍然是IAR初始化的0XCC,在什么地址数据被修改了,然后在修改的地方加一个数据断点。

要掌握多一点调试手段啊。

使用特权

评论回复
6
yxldianqi2|  楼主 | 2013-3-19 11:04 | 只看该作者
lixiao3717 发表于 2013-3-19 10:04
从你的map看没用多少stack啊,你这个生成这个.map的时候出现The stack 'Stack' is filled to 100%了吗。
如 ...

我刚试了 我做的是AD转换一个周期40次 当运行到第7次转换的时候就出现这个错误 可能就是你说的那样 可能有什么没释放

使用特权

评论回复
7
yxldianqi2|  楼主 | 2013-3-19 11:06 | 只看该作者
三千花花世界 发表于 2013-3-19 10:43
请仔细看我的回复

我之前已经说过了,很多调试器,包括IAR,都会在程序开始之前用一个特定值初始化所有堆 ...

我是新手 刚接手做一个项目 所以很多不懂 谢谢指点  幸好有你们帮忙 不然真不知道怎么解决  再次感谢

使用特权

评论回复
8
i1mcu| | 2013-3-19 23:45 | 只看该作者
不知道楼主怎么解决的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝