[开发工具] 用STlink调试EK-STR711F时碰到的奇怪现象

[复制链接]
3562|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

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