如何在源文件中读取堆栈指针?
我是否需要编写汇编代码来读取堆栈指针?
此致、
M·塞尔瓦拉伊
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如何在源文件中读取堆栈指针?
我是否需要编写汇编代码来读取堆栈指针?
此致、
M·塞尔瓦拉伊
尊敬的 Manoraj:
实际上内核寄存器的 R13将作为一个堆栈指针。
但问题是、TI CGT 编译器不支持将内核寄存器值直接复制到变量。 我过去也没有发现任何与此相关的代码。
所以、我自己做了一种方法来做到这一点。 它是:
我现在所做的是、我刚刚声明了一个寄存器变量、我直接将 R13寄存器值复制到该寄存器变量。 在我将值移动到该寄存器变量后、我可以再次将其复制到任何所需的变量。
您可能会在这里感到困惑、因为我怎么知道寄存器对应于寄存器变量、实际上我最初并不知道这一点。 我刚刚进行了一次调试、在调试窗口中看到了变量 Stack_Pointer_Temp 的寄存器、然后我停止了调试、之后我在下面添加了指令
__ASM__易失性(" MOV R0、R13 \n");
因此、在您的情况下、这可能是、也可能不是同一个寄存器、您还应该执行虚拟调试以找出分配给 Stack_Pointer_Temp 的寄存器。
我附加的代码供您参考:
e2e.ti.com/.../Stack_5F00_Pointer_5F00_Value_5F00_Copying_5F00_to_5F00_Variable_5F00_LC4357.zip
--
谢谢。此致、
Jagadish。