我需要访问 Cortex-M3 处理器的 MSP 和 PSP 寄存器(主和进程堆栈寄存器)。
我正在用 C/C++ 编写。
µVision 和相关的编译器不允许您为这个仅限 Thumb-2 的内核进行内联汇编(而且我不确定这是否是一个好主意)。
我需要这样做,以便我可以提取 svc 指令的立即值,而不管它是在线程模式还是处理程序模式下执行的。
谢谢,
最佳答案
我目前无法访问 Keil 编译器来验证这一点,但根据文档,您应该能够使用编译器的“命名寄存器变量”功能:
register uint32_t msp __asm("msp");
register uint32_t psp __asm("psp");
关于embedded - 使用 Keil 的 µVision 以 C/C++ 代码访问 Cortex-M3 的 MSP 和 PSP 寄存器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2947248/