用ULINK 在 Keil 下调试 lm3sxxx 的程序.
发现很不顺手的事情.
不能使用单步方式. 我想原因 CM3 不象 51, 在存在中断时, 得先执行一条当前指令后才响应中断. cm3 的异常则是优先于当前指令的.所以, 到断点停下来后, 后面的定时中断肯定会引发中断标志. 所以一执行单步指令, cpu 不是执行当前的指令, 而是跳到中断入口去了. 然后, 只有再运行, 才能再次停在断点处. 对于一般指令, 倒是可以在下一条指令再设定断点. 如果遇到这是条返回指令(cm3 的返回指令又比较复杂,比如POP {r4-r8,pc}) 就特别头疼.
故向大家请教, 有没有好的办法教我. 谢谢!
|