【发布时间】:2016-07-07 11:24:26
【问题描述】:
我们将 arm9 与 ucos 一起使用。 OS_CPU_ARM_ExceptHndlr_BrkTask 通用移植函数的最后一个工具在我们的系统中有奇怪的行为。
Instrument: LDMFD SP!,{R0-R12,LR,PC}^
假设 SP 为 0x10002000,后面 15 个 DWORD(将被复制到 R0-R12,LR,PC)的值从 1 到 15。我们发现 PC(R15)发生了变化,跳转到了 15,但是 SP(R13)被更改为一个奇怪的值(一个远离堆栈内存空间的地址)。我预计它会变成 0x1000203C (0x10002000+4*15)。
为什么 R13 会这样改变?
【问题讨论】:
-
SP是R13。R14是LR。 -
非常感谢。这是一个拼写错误,受到影响的是R13。我有更改问题到 R13。