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