理由
このエラーは、誤った、またはサポートされていないVFP(仮想フロートポイント)フローティングポイントの計算方法が使用されていることを示しています。
1.サポートされていないVFPコンパイル:MCUはVFP(ハード)計算をサポートしていません;
2.一貫性のないVFPコンパイル:リンクされたLibのVFP計算とアプリのコンパイルされたVFP計算オプションに一貫性がありません。
解決
プラン1
APPコンパイルオプションCFLAGSのVFPの計算タイプを確認します
。FABI:= hard // hardをsoftfpに変更します
CFLAGS + = -mfloat-abi = $(FABI)
シナリオ2
Libライブラリを再コンパイルし、CFLAGSで-mfloat-abi = hardを追加または変更します(APPのコンパイルオプションと一致している必要があります)。
インスタンス
環境:
ツールチェーン:arm-none-eabi-
MCU:Cortex-M4FP
CMSISコンパイルではVFP操作方法が指定されておらず、デフォルトが使用されています-mfloat-abi = softfpAPP
は-mfloat-abi = hardを示し、リンク時に「xxxはVFPレジスタ引数を使用しますxxxは…」というエラーが報告され
ます。 -mfloat-abi = hardを指定するだけです。