2012-12-03 50 views
8

我在嘗試編譯ARM嵌入式C程序(我使用YAGARTO作爲交叉編譯器)時出現以下錯誤。我試圖弄清楚這個錯誤的含義以及糾正錯誤的步驟。從迄今爲止我所做的研究來看,似乎是wfiwfe的問題不是ASM指令。我怎麼能解決這個問題?錯誤:所選處理器不支持ARM模式`wfi'

\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 
+0

編譯器選項,你用哪個? –

+0

@TurboJ我爲GCC使用默認的Eclispe編譯器選項(So -Wall -c -fmessage-length = 0 -O0)。我應該設置選項嗎? – andre

+2

你可以試試-mthumb? – auselen

回答

9

你可能會錯過你的STM32F10x一些重要的編譯器選項 - 這是一個的Cortex M3:

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

謝謝我不再收​​到錯誤。這似乎奏效了。我將不得不研究他們的意思。 – andre

+2

@ahenderson ARM設備有幾個不同的指令集,[Cortex-M3實現Thumb的一個版本](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337i/的index.html)。默認情況下,您的工具鏈是針對ARM模式的,因此是錯誤。 – auselen