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.

[参考译文] CCS/RM48L952:将分组寄存器传输到内核寄存器不起作用。

Guru**** 2614265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/774694/ccs-rm48l952-the-transfer-of-banked-register-into-core-register-does-not-work

器件型号:RM48L952

工具/软件:Code Composer Studio

你好

我用汇编语言编写 IRQ 处理程序异常。

在 IRQ 异常之前、我需要知道堆栈指针的值。

我尝试了指令“MRS r0,SP_USR”,但遇到了汇编错误:

[E0001]未定义符号、[E0004]非法操作数。

正确的语法是什么?

感谢你的帮助。

Jerome

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jerome、

    请确保您在编译器选项中标识了正确的架构(-mv7R4)、并且还将 ARM ISA (而不是 Thumb2)用于 IRQ 处理程序。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sunil

    非常感谢您的快速回复。

    我尝试修改编译器选项、但无法修改、请参阅映像:

      

    我可以在哪里修复编译器选项?

    再次感谢。

    Jerome

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jerome、

    在 v7R 架构上、分组寄存器不能用作 MRS/MSR 指令的源或目的。 这些说明仅在启用了 Virtualization Extension 的实施中可用。 Hercules MCU 上的 Cortex R4/R5 CPU 不是这种情况。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jerome、

    在 ISR 内、您可以执行以下操作来获取用户模式的 SP:

    ;切换到系统模式
    CPS #0x1f
    MOV r0、sp

    ;切换回 IRQ
    CPS #0x12

    现在、您将在寄存器 R0中具有用于用户/系统模式的 SP。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,Sunil

    感谢你的帮助。