打印
[开发工具]

用STlink调试EK-STR711F时碰到的奇怪现象

[复制链接]
2286|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aez|  楼主 | 2007-11-20 00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用的是IAR for ARM 4.42
1.  进入调试状态,PC指向起始地址40000000H,此时CPSR的值为0H。当单步调试一步后,CPSR的状态马上变为10H(查了一下ARM进入USER模式,如图所示,奇怪,不是进入SVR模式吗?)
2.  后边的代码是设置堆栈,有试图改变CSPR中的ARM模式值得语句,没有任何反映。(?)
3.  下边Debuglog窗口老是提CSTACK指针越界错误,如图。
请问上边这些现象是怎么回事?是正常的吗?
沙发
ST_ARM| | 2007-11-20 09:43 | 只看该作者

检测一下你的71x_init.s的代码

在71x_init.s会设定系统进入main()时,处于何种模式。

使用特权

评论回复
板凳
aez|  楼主 | 2007-11-20 12:19 | 只看该作者

是从RESET向量处开始执行的

帅哥,不好意思,你看上图右边的代码,我让代码从RESET向量处开始执行。单步执行,上边是第二步。
ARM7TDMI手册上不是说ARM启动时进入的是SVR模式吗?而调试的时候居然一开始就进到USR模式了(在执行第一步前的RESET状态CPSR=0h),这样它就执行不了特权代码了。
而且模拟下跟用STLlink调试结果是一样的,只不过用STLink调试的时候每执行一步Debug log里边就会有CSTACK指针的错误提示(用的是STDriver.dll驱动)。
问一下,MSR CPSR_c, R0指令在USR模式下运行会有什么结果(其中CPSR_c与R0的内容不同),难道是像我试过一样,没有任何反应?

使用特权

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

本版积分规则

aez

1

主题

8

帖子

1

粉丝