程序进入FaultISR最新调试记录,请大家指点

[复制链接]
 楼主| zxb1717 发表于 2012-2-19 18:45 | 显示全部楼层
20# 李富贵
李大侠真是热心人啊,我在线管论坛上搜索到“GCC和IAR分配堆栈的方式不同,IAR先分配堆栈空间,相当于定义一个全局数组为堆栈空间,堆栈初始为堆栈空间最高地址;GCC不用先分配堆栈,自动把RAM剩余空间作为堆栈空间,堆栈初始为RAM最高地址。”,也就是说IAR不会自动分配RAM,设定多少算多少吧??
 楼主| zxb1717 发表于 2012-2-19 18:56 | 显示全部楼层
我在icf文件里全是看到了
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__   = 0x400;
define symbol __ICFEDIT_size_heap__     = 0x800;
/**** End of ICF editor section. ###ICF###*/
不知道这些设置根据是什么,我又怎么才能知道自己的程序用到多少stack,这样才对比有没有溢出,请大家继续指教,谢谢啦
李富贵 发表于 2012-2-19 23:02 | 显示全部楼层
20# 李富贵  
李大侠真是热心人啊,我在线管论坛上搜索到“GCC和IAR分配堆栈的方式不同,IAR先分配堆栈空间,相当于定义一个全局数组为堆栈空间,堆栈初始为堆栈空间最高地址;GCC不用先分配堆栈,自动把RAM剩余空 ...
zxb1717 发表于 2012-2-19 18:45


要么是胡说八道,要么就是你弄错了,可能是AVR单片机的GCC和IAR。
ARM单片机的GCC和IAR处理方式是一样的,剩余空间均为stack。
 楼主| zxb1717 发表于 2012-2-20 08:27 | 显示全部楼层
23# 李富贵
李大侠真是热心啊,这么晚了还回复我的帖子,如果ARM会自动分配堆栈,那我用的LM3s2965剩余的RAM有50多K,按道理说足够堆栈用了,这么理解岂不是很少会有堆栈溢出的事了吗,那请问李大侠在18楼“根据你的现象应该是内存访问越界堆栈溢出一类的毛病。”这又何解呢??谢谢啦
 楼主| zxb1717 发表于 2012-2-20 09:40 | 显示全部楼层
顶一下
 楼主| zxb1717 发表于 2012-2-21 14:39 | 显示全部楼层
上传最新的调试图片,图片是关于fault状态寄存器的值的,请大家看看,给点建议。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zxb1717 发表于 2012-2-21 14:45 | 显示全部楼层
从图片中可以看出BFSR=0x82,我的程序发生了“精确的数据访问违例”,应该怎么进一步追查呢,请高手再指点一下,谢谢啦!
 楼主| zxb1717 发表于 2012-2-21 16:17 | 显示全部楼层
终于追查到函数了,上传图片,不知道大家能否帮忙看看有什么问题,我看不出代码有啥问题啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zxb1717 发表于 2012-2-21 16:22 | 显示全部楼层
程序跳转到faultISR之前最后执行一句语句地址是0x6bad
 楼主| zxb1717 发表于 2012-2-21 19:40 | 显示全部楼层
15# 李富贵
李大侠,这个不添加代码,直接在memory窗口输入地址是不是也能观察fault状态寄存器的值啊??
jhzh951753 发表于 2015-1-28 15:52 | 显示全部楼层
不知道您在线么?现在我也遇到这个问题了。不知道怎么解决。能不能知道下呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部