打印

IAR下调试问题!

[复制链接]
4753|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
btiger2000|  楼主 | 2008-5-9 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
twentyone| | 2008-5-11 23:57 | 只看该作者

应该是设置的问题。

0x40007600 to 0x40007C00 这个地址信息是那里来的?是在你的XCL文件里面配置的,还是因为你选择了特定的芯片? 

使用特权

评论回复
板凳
btiger2000|  楼主 | 2008-5-12 08:35 | 只看该作者

谢谢楼上的回答!

那个地址信息不是自己设置的,xcl文件只是设置堆栈的大小。我没看明白具体怎么设置起始地址

使用特权

评论回复
地板
btiger2000|  楼主 | 2008-5-12 18:52 | 只看该作者

忽略这个问题! 程序可以正常运行!

使用特权

评论回复
5
and| | 2008-5-12 23:13 | 只看该作者

你的SVC堆栈指针初始化了吗?

程序可以正常运行,那是因为还没有碰到SVC栈。这应该是个潜在的危险。

使用特权

评论回复
6
btiger2000|  楼主 | 2008-5-13 08:31 | 只看该作者

在startup文件里初始化了!

这个问题好像是iar特有的

使用特权

评论回复
7
wlq_9| | 2008-5-13 09:17 | 只看该作者

指针超范围了,因为IAR提供了栈检查的功能,可以在达到你设置的一定百分比的时候报警,象ADS之类的即使栈溢出了也不会通知你,可以说这是一个相当实用的功能,尤其是在仿真的时候.

出现这个情况,一般是栈空间设的大小和位置不正确,或者是没有初始化相应模式下的栈指针.
还有你用的什么芯片,内存范围是多少?其它栈设置的地址是多少?看样子功能多也不见得受人喜欢啊......

使用特权

评论回复
8
btiger2000|  楼主 | 2008-5-13 16:19 | 只看该作者

堆栈我已经改得很大了,没有效果

我查找了一下启动代码与SVC_STACK有关的只有两句

RSEG    SVC_STACK:DATA:NOROOT(2)

ldr     sp,=SFE(SVC_STACK) & 0xFFFFFFF8     ; End of SVC_STACK


具体SVC_STACK的位置,我不知道在那定义的

使用LPC2378,32k的ram ,现在用了24k左右!

使用特权

评论回复
9
wangtezi| | 2008-9-16 14:26 | 只看该作者

用操作系统了吧

使用特权

评论回复
10
MakeBetter| | 2012-2-22 10:56 | 只看该作者
楼上正解,肯定用操作系统,跳到别的任务运行,修改了系统默认堆栈指针。故默认堆栈你修改的再大也会没反映,除非你的任务堆全部在主函数内部申请内存,且同时把默认堆栈大小修改成所以任务需要的堆栈大小之和以上。

使用特权

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

本版积分规则

80

主题

1177

帖子

6

粉丝