请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BEAGLEBK
工具/软件:Code Composer Studio
您好!
我正在调试一个程序、遇到了一个奇怪的现象。 我的程序中有一行代码、如下所示:
exec->freeVector = exec->projVector;
对于该指令、asm 代码生成以下两行代码:
LDR R12,[R12,#0x126];此行读取 projVector 的值
STR R12、[R12、#0x12A];此行会将值保存到 freeVector 中
LDR R12,[sp];第三行代码
但是、代码的第一行会导致程序流分支到地址0x20010。 SP 设置为0。
我假设我在这里生成了某种异常、但我不知道如何操作。 变量存储在为系统内存分配的区域中。 LR 寄存器现在指向上面显示的第三行 ccode、暗示某种合法的函数调用。 是否有人能够根据此处的信息判断可能发生了什么情况?
如果我在没有任何断点的情况下运行代码、那么它会通过调用0x2008c (即 IVT)锁定。
此致、
Shailesh