我需要访问 Cortex-M3 处理器的 MSP 和 PSP 寄存器(主和进程堆栈寄存器)。

我正在用 C/C++ 编写。

µVision 和相关的编译器不允许您为这个仅限 Thumb-2 的内核进行内联汇编(而且我不确定这是否是一个好主意)。

我需要这样做,以便我可以提取 svc 指令的立即值,而不管它是在线程模式还是处理程序模式下执行的。

谢谢,

最佳答案

我目前无法访问 Keil 编译器来验证这一点,但根据文档,您应该能够使用编译器的“命名寄存器变量”功能:

register uint32_t msp __asm("msp");
register uint32_t psp __asm("psp");
  • http://www.keil.com/support/man/docs/armccref/armccref_cjahjdbg.htm
  • http://www.keil.com/support/man/docs/armcc/armcc_CHDHCIEE.htm
  • 关于embedded - 使用 Keil 的 µVision 以 C/C++ 代码访问 Cortex-M3 的 MSP 和 PSP 寄存器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2947248/

    10-12 01:17