SoC において、ソフトウェア・プロジェクト(ベアメタル・ベース)の Makefile では -mfloat-abi=softfp というコンパイル・オプションがありました。これは、ARM Cortex-A9 の FPU(浮動小数点コプロセッサ)を使用せずに、浮動小数点演算を実行するソフトウェア・コードが生成されると理解しましたが、正しいでしょうか?
SoC FPGA
カテゴリ:SoC
ツール:SoC EDS
デバイス:-
いいえ、違います。
-mfloat-abi オプション に softfp を指定した場合、浮動小数点演算は FPU を使用して実行されます。
-mfloat-abi オプション に hardfp を指定した場合も同様に、浮動小数点演算は FPU を使用して実行されます。
両者の違いは、softfp を指定した場合では引数と戻り値が r0 ~ r3 の ARM 整数レジスタを使用することに対して、hardfp を指定した場合では引数と戻り値が FPU レジスタを使用する点が異なります。