为什么在使用嵌入式程序集在 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."
我在使用 __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."