为什么在使用嵌入式程序集在 DS-5 中编译时出现错误 A1616E

Why I got error A1616E when compile in DS-5 with embedded assembly

我在使用 __asm 函数编译一个简单的 c 文件时收到以下错误消息。似乎无法识别“MSP”。我可以在注释掉“MRS R0,MSP”后进行构建。我在这里缺少什么?谢谢

Invoking: Arm C Compiler for Embedded 5.6.6'

armcc.exe --cpu=Cortex-R5 --arm --apcs=interwork -O0 -g --md --depend_format=unix_escaped -c -o "main.o" "main.c"

"main.c", line 26: Error: A1616E: Instruction, offset, immediate or register combination is not supported by the current instruction set
   26 00000000  MRS R0, MSP

我的main.c:

__asm uint32_t A( void )
{
    MRS R0, MSP
    LDR R0, [R0,#8]
    BX  lr
}

int main()
{
    A();
    return 0;
}

我收到了 ARM forum/community 的以下答复(感谢 Ronan),并验证了它(我有一个混合 Cortex-M/R 内核的系统)。引用

"You are building for Cortex-R5, which does not support MSP (Main Stack Pointer). MSP is only provided on Cortex-M processors."

https://community.arm.com/support-forums/f/armds-forum/52130/a1616e-armcc-compile-error/175598#175598