適用範囲:
- Arm Compiler 6
- Arm Compiler for Embedded FuSa
- Armv8-R
- Cortex-R82
- GNU Toolchain
概要
Armv8-R AArch64 デバイス/Cortex-R82 デバイス用のソフトウェアを開発しています。
デバイスはハードウェア浮動小数点(FP)サポートなしでコンフィギュレーションされていますが、以下のツールチェインのいずれかを使用して、ハードウェア浮動小数点サポートなしでソフトウェアをコンパイルおよびビルドする方法が見つかりません。
- Arm Compiler for Embedded (for Arm Compiler 6)
- Arm Compiler for Embedded FuSa 6.16LTS
- GNU Arm Toolchain
どのようにしてハードウェア浮動小数点サポートなしのビルドを行えばよいですか?
回答
AArch64 Arm Arm Application Binary Interface (ABI) では、ハードウェア浮動小数点サポートのないAArch64 アプリケーションに対する仕様の定義は含まれていません。
そのため、Armv8-R AArch64をサポートする、このABIを実装するすべてのArm用コンパイラツールチェインは、ハードウェア浮動小数点を使用するArmv8-R AArch64の実装のみをサポートします。
その結果、Armは-marchまたは-mcpuオプションと浮動小数点サポートを無効にする+nofpの機能を使用してビルドされたソフトウェアが、浮動小数点命令または浮動小数点レジスタの使用を回避することを保証できません。
ハードウェア浮動小数点サポートなしでソフトウェアを構築しなければならない、明確かつ不可避の要件がある場合はArm DeveloperのサイトでSupport caseを作成し、その際、次の情報をすべて提供してください:
- デバイスの各コアのNeon/FP コンフィギュレーションパラメータNEON_FP<m>の値はどのようになっていますか?
- ソフトウェアはアセンブリ言語以外にどのプログラミング言語に依存していますか?
- どのコンパイラツールチェインを使用する予定ですか?使用するツールチェインの完全なバージョン情報を提供してください。たとえばArm Compilerツールチェインの場合は、armclang --vsnを実行した出力結果を提供してください。
Support caseのタイトルには、プレフィックス[NoFPAArch64]を含めてください。 これはArm がお問い合わせを識別するのに役立ちます。その後、ハードウェア浮動小数点サポートなしのソリューションを構築できるかどうか、Support caseを通じてアドバイスいたします。
関連する情報