Cortex-M4 (LPC4357) 用に GCC プロジェクトをコンパイルし、-mcpu=cortex-m4 スイッチ フロートを使用すると、float が機能しません (blx __addsf3 を呼び出し、最終的に stmia コマンドに分岐し、おそらく不正な値が原因でエラー割り込みが発生します)レジスタで)。-mcpu=cortex-m3 でコンパイルすると、ソースが異なり動作する bl __addsf3 が呼び出されます。
float を -mcpu=cortex-m4 で動作させるには、他のスイッチを修正する必要があると思います...いくつか試してみましたが、これは本当に奇妙です。
関連するコンパイラとリンカー スイッチ:
コンパイラ: -mthumb -mcpu=cortex-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
ここで明らかな何かが欠けているかどうかわかりますか?