错误:所选处理器不支持ARM模式“wfi”

12
我尝试编译一个ARM嵌入式C程序(我使用YAGARTO作为交叉编译器),但是出现了以下错误。我正在尝试弄清楚这个错误的含义以及纠正它的步骤。根据我目前所做的研究,问题似乎在于wfiwfe不是ASM指令。我该如何解决这个问题?
\cc9e5oJe.s: Assembler messages:
\cc9e5oJe.s:404: Error: selected processor does not support ARM mode `wfi'
\cc9e5oJe.s:414: Error: selected processor does not support ARM mode `wfe'
\cc9e5oJe.s:477: Error: selected processor does not support ARM mode `wfi'
make: *** [STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o] Error 1

你使用哪些编译器选项? - Turbo J
@TurboJ 我正在使用GCC的默认Eclipse编译器选项(因此为-Wall -c -fmessage-length = 0 -O0)。我应该设置哪些选项? - andre
1个回答

14

你可能会错过一些对于你的STM32F10x(Cortex M3)来说非常重要的编译器选项:

-mcpu=cortex-m3 -mthumb -mno-thumb-interwork -mfpu=vfp -msoft-float -mfix-cortex-m3-ldrd

谢谢,我不再收到错误信息了。这似乎起作用了。我需要研究一下它们的含义。 - andre
3
ARM设备有几种不同的指令集,而Cortex-M3实现了Thumb的一个版本。默认情况下,您的工具链会瞄准ARM模式,这就是错误的原因。 - auselen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接