问:使用AXD调试时,会死在SWI这条指令上.请帮忙诊断下.

[复制链接]
3252|6
 楼主| sunwind45 发表于 2008-9-27 10:40 | 显示全部楼层 |阅读模式
程序运行到SWI&nbsp;0x123456这里,就死了.这个SWI是在_rt_entry里的,是取STACK基地址的.说是从调试环境里去取.<br /><br />同样的程序,使用chameleon调试器,不会在这里出问题.
 楼主| sunwind45 发表于 2008-9-27 22:10 | 显示全部楼层

是不是跟仿真器或者调试器有关?

看资料说,semihosting这只适合ARMulator,Multi-ICE,还有个,没记住.这几个说是调试代理软件,没搞清.跟调试器有联系吗?<br /><br /><br />我用的jtagjet仿真器.<br />我用chameleon调试器,总是给个stack基地址为0x80000;<br />改成axd调试器,总是在SWI这里死了,跑丢了.<br /><br />
 楼主| sunwind45 发表于 2008-9-27 22:26 | 显示全部楼层

老大帮忙啊

我打算不用semihosting这个功能.<br />要做两件事:<br />1.自己写个scf文件<br />2.就是要reimplement&nbsp;一些东西.<br /><br />第一个还好说,<br /><br />这第二个,我没搞清楚到底要干吗,哪位老大给讲讲啊.<br /><br />拜托啊!
阿南 发表于 2008-9-27 22:45 | 显示全部楼层

如果有*.axf文件,AXD都是可以直接装载调试的,无论是用什么

环境及编译器生成的.<br />楼主调试时可以看看反汇编,具体是死在哪里
 楼主| sunwind45 发表于 2008-10-5 22:19 | 显示全部楼层

哦,新进展

我现在使用scatterloading可以跑了.<br /><br />semihosting的问题,我还得去试试.
古道热肠 发表于 2008-10-6 16:10 | 显示全部楼层

先简单化程序,便于定位故障.

整个最简单的程序试试.
 楼主| sunwind45 发表于 2008-10-6 21:49 | 显示全部楼层

我整的是个简单的跑灯程序

我用的是JTAGjet仿真器,不晓得semihosting是否支持.<br /><br />使用chameleon调试器时,只要我手工修改了stack值,程序就可以了.<br /><br />使用axd调试器时,就是死在SWI这个软中断这里.<br /><br /><br />我用chameleon试了下printf()这个函数,能够看到输出信息,说明semihosting还是可以用到我的调试环境的.<br /><br />现在我是找不到它关于stack初始化时使用的默认基地址的这个值是在哪儿.<br /><br />如果实在没办法,只能使用scatterloading&nbsp;这个方法了,就是比较麻烦.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

178

帖子

1

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