如果我編譯的Cortex-M4(LPC4357)GCC項目並使用-mcpu =的Cortex-M4開關浮子不能正常工作(電話BLX __addsf3,最終轉移到STMIA命令,導致錯誤中斷,可能是由於寄存器中的值不正確)。如果我用-mcpu = cortex-m3進行編譯,它會調用bl __addsf3,它具有不同的來源並且可以工作。的Cortex-M4與GCC - 浮行爲
我想我可能不得不修復其他開關,以使浮動工作與-mcpu = cortex-m4 ...我試過several things,但這真是奇怪。
相關編譯器和鏈接器開關:
編譯器: -mthumb -mcpu =皮質-M4 -std = C99 -c -g -D DEBUG -D GCC
接頭: -nostartfiles -nostdlib -nodefaultlibs -fno-exceptions -mthumb -mcpu = cortex -m4 -mfloat-abi = hard -mfpu = fpv4 -sp-d16 -O0 -lgcc -lc
你能告訴我是否在這裏丟失了一些明顯的東西嗎?
GCC需要一段時間才能趕上新的芯片,即使這些芯片的知識已經存在了很長一段時間。因此,使用最前沿的gcc,如果沒有做你想要什麼,然後要麼有助於GCC或等待或檢查LLVM /鐺,看看如何趕上他們(同樣的問題,硬件和編譯器之間的延遲)。 –
您是否嘗試使用CodeRed編譯器?它也是Gcc的基礎。 –
不行,我得準備與該編譯器的樣品(雖然好主意,我應該嘗試新的版本,也出現了一些自)。 –