適用範囲: Arm Compiler 6、Arm Compiler for Embedded FuSa
質問:
Arm Compiler ツールチェインには複数のバージョンが存在します。特定の Arm アーキテクチャまたはプロセッサ向けにビルドするには、どのバージョンを使用すればよいでしょうか?
ビルド対象のArmアーキテクチャまたはプロセッサがまだ公表されていない、あるいは最近公表されたばかりの場合、この記事に含まれていない可能性があります。このような状況でArm Toolchain for Embedded Professionalを使用する際のサポートが必要な場合は、Arm DeveloperのサイトでSupport Case を起こしてお問い合わせください。
この記事は、以下の関連する質問でも参考にしていただけます。
- armclang のオプション-march=<name> で対応しているアーキテクチャのリストは?
- Arm Compiler 6 で対応しているプロセッサの一覧は?
- armclang で対応しているCPUのリストは?
- Arm Compiler for Embedded 6(AC6) で対応しているコアの一覧は?
- 特定のアーキテクチャまたはCPU向けにビルドするために使用できる最低限のコンパイラバージョンは?
- 特定のアーキテクチャまたはCPUをサポートする最初のコンパイラバージョンは?
-
特定のアーキテクチャまたはCPU向けにコンパイル時、以下のエラーのいずれかがレポートされる場合にコンパイラを新しいバージョンにアップデートして問題を解消するには?
armclang: error: ARM Compiler does not support '-march=<name>'
armclang: error: ARM Compiler does not support '-mcpu=<name>'
armclang: error: unsupported argument '<name>' to option '-march'
armclang: error: unsupported argument '<name>' to option '-mcpu'
使用しているインストール環境およびツールチェインのライセンスコンフィギュレーションで対応しているArmアーキテクチャとプロセッサの正確なリストを確認するには、コンパイラおよび統合アセンブラであるarmclang の-mcpu=help コマンドラインオプションを指定して実行します。この記事の情報では特定のアーキテクチャやプロセッサが確認できるはずにもかかわらず、これらのオプションの出力にそれらが表示されない場合は、Arm DeveloperのサイトでSupport Case を起こし、また、この記事へのリンクを含めてお問い合わせください。
回答:
この記事では、Arm Compiler for Embedded(旧称 Arm Compiler 6) のいずれかのバージョンで対応について公表済みのArm アーキテクチャおよびArm プロセッサについて解説します。この記事の情報は、2025年3月時点のものです。
一般的に、Arm は、特定の Arm アーキテクチャまたは Arm プロセッサをサポートする最小のコンパイラバージョンに関係なく、常に以下のいずれかを使用することを推奨します。
- プロジェクトに長期的な保守や機能安全の要件がない場合は、Arm Compiler for Embedded の最新リリースを使用してください。
- プロジェクトに長期的な保守や機能安全の要件がある場合は、Arm Compiler for Embedded FuSa の適切なリリースを使用してください。
以下の表は、特定のArm アーキテクチャまたはArm プロセッサ向けにビルドする際に使用可能なArm Compiler for Embedded ツールチェインのバージョンを判断するために使用できる情報を提供します。
- Support level
- Alpha
- Beta
- サポート済み
- ターゲットをサポートする最初のツールチェインバージョン
- ターゲットのデフォルトコンフィギュレーションを選択できる-march=<name> または-mcpu=<name> コマンドラインオプション
例えば、AArch64ステートにおけるArmv9-Aターゲットは、Arm Compiler for Embedded 6.17以降でサポートされており、コマンドラインオプション `-march=armv9-a` を使用してビルドできます。
対象とするArmアーキテクチャまたはArmプロセッサの実装におけるコンフィギュレーションは、本記事に記載されている `-march=<name>` または `-mcpu=<name>` コマンドラインオプションを使用した際に選択されるデフォルトの構成とは異なる場合があります。
詳細については、使用しているツールチェーンバージョンのコンパイラリファレンスガイドにある `-march` および `-mcpu` のセクションを参照してください。Arm Compiler for Embeddedの各リリース毎のCompiler Reference Guideの 一覧は、Arm Compiler for Embedded documentation index のページで確認できます。
AArch64 state
アーキテクチャ
| Name | サポート状況 | -march=<name> オプション |
| Armv8-A | 6.02 からサポート | armv8-a |
| Armv8.1-A | 6.3 でBeta 6.4 からサポート |
armv8.1-a |
| Armv8.2-A | 6.3 でAlpha 6.5 からサポート |
armv8.2-a |
| Armv8.3-A | 6.6 からサポート | armv8.3-a |
| Armv8.4-A | 6.9 からサポート | armv8.4-a |
| Armv8.5-A | 6.11 からサポート | armv8.5-a |
| Armv8.6-A | 6.14 からサポート | armv8.6-a |
| Armv8.7-A | 6.15 でAlpha 6.16 からサポート |
armv8.7-a |
| Armv8.8-A | 6.17 でAlpha 6.18 からサポート |
armv8.8-a |
| Armv8.9-A | 6.19 でBeta 6.20 からサポート |
armv8.9-a |
| Armv8-R (ハードウェア浮動小数点のみ実装あり) | 6.15 でBeta 6.19 からサポート |
armv8-r |
| Armv9-A | 6.17 からサポート | armv9-a |
| Armv9.1-A | 6.17 からサポート | armv9.1-a |
| Armv9.2-A | 6.17 からサポート | armv9.2-a |
| Armv9.3-A | 6.17 でAlpha 6.18 からサポート |
armv9.3-a |
| Armv9.4-A | 6.17 でBeta 6.18 からサポート |
armv9.4-a |
| Armv9.5-A | 6.21 でBeta 6.22 からサポート |
armv9.5-a |
| Armv9.6-A | 6.23 でBeta 6.24 からサポート |
armv9.6-a |
CPU
| Name | サポート状況 | -mcpu=<name> オプション |
| Cortex-A34 | 6.14 からサポート | cortex-a34 |
| Cortex-A35 | 6.3 からサポート | cortex-a35 |
| Cortex-A53 | 6.00 からサポート | cortex-a53 |
| Cortex-A55 | 6.7.1 からサポート | cortex-a55 |
| Cortex-A57 | 6.00 からサポート | cortex-a57 |
| Cortex-A65 | 6.13 からサポート | cortex-a65 |
| Cortex-A65AE | 6.12 からサポート | cortex-a65ae |
| Cortex-A72 | 6.3 からサポート | cortex-a72 |
| Cortex-A73 | 6.3 からサポート | cortex-a73 |
| Cortex-A75 | 6.7.1 からサポート | cortex-a75 |
| Cortex-A76 | 6.10.1 からサポート | cortex-a76 |
| Cortex-A76AE | 6.11 からサポート | cortex-a76ae |
| Cortex-A77 | 6.13 からサポート | cortex-a77 |
| Cortex-A78 | 6.14.1 からサポート | cortex-a78 |
| Cortex-A78AE | 6.15 からサポート | cortex-a78ae |
| Cortex-A78C | 6.16 からサポート | cortex-a78c |
| Cortex-A510 | 6.17 からサポート | cortex-a510 |
| Cortex-A520 | 6.21 からサポート | cortex-a520 |
| Cortex-A520AE | 6.22 からサポート | cortex-a520ae |
| Cortex-A710 | 6.17 からサポート | cortex-a710 |
| Cortex-A715 | 6.19 からサポート | cortex-a715 |
| Cortex-A720 | 6.21 からサポート | cortex-a720 |
| Cortex-A720AE | 6.22 からサポート | cortex-a720ae |
| Cortex-A725 | 6.23 からサポート | cortex-a725 |
| Cortex-X1 | 6.14.1 からサポート | cortex-x1 |
| Cortex-X1C | 6.18 からサポート | cortex-x1c |
| Cortex-X2 | 6.17 からサポート | cortex-x2 |
| Cortex-X3 | 6.19 からサポート | cortex-x3 |
| Cortex-X4 | 6.21 からサポート | cortex-x4 |
| Cortex-X925 | 6.23 からサポート | cortex-x925 |
| Neoverse E1 | 6.12 からサポート | neoverse-e1 |
| Neoverse N1 | 6.12 からサポート | neoverse-n1 |
| Neoverse N2 | 6.15 からサポート | neoverse-n2 |
| Neoverse N3 | 6.23 からサポート | neoverse-n3 |
| Neoverse V1 | 6.15 からサポート | neoverse-v1 |
| Neoverse V2 | 6.20 からサポート | neoverse-v2 |
| Neoverse V3 | 6.23 からサポート | neoverse-v3 |
| Neoverse V3AE | 6.22 からサポート | neoverse-v3ae |
| Cortex-R82 (ハードウェア浮動小数点実装あり) | 6.19 からサポート | cortex-r82 |
| Cortex-R82 (ハードウェア浮動小数点実装なし) * | 6.22 からサポート | cortex-r82+nofp |
| Cortex-R82AE (ハードウェア浮動小数点実装あり) | 6.22 からサポート | cortex-r82ae |
| Cortex-R82AE (ハードウェア浮動小数点実装なし) * | 6.22 からサポート | cortex-r82ae+nofp |
* より詳細についてはHow can I compile and build code for an Armv8-R AArch64 device without hardware floating-point の記事を参照してください。
AArch32 state
アーキテクチャ
| Name | サポート状況 | -march=<name> オプション |
| Armv6-M | 6.3 からサポート | armv6-m |
| Armv7-A | 6.02 からサポート | armv7-a |
| Armv7-R | 6.3 からサポート | armv7-r |
| Armv7-M | 6.3 でAlpha 6.4 からサポート |
armv7-m |
| Armv8-A | 6.02 からサポート | armv8-a |
| Armv8.1-A | 6.3 でBeta 6.4 からサポート |
armv8.1-a |
| Armv8.2-A | 6.3 でAlpha 6.5 からサポート |
armv8.2-a |
| Armv8.3-A | 6.6 からサポート | armv8.3-a |
| Armv8.4-A | 6.9 からサポート | armv8.4-a |
| Armv8.5-A | 6.11 からサポート | armv8.5-a |
| Armv8.6-A | 6.14 からサポート | armv8.6-a |
| Armv8.7-A | 6.15 でAlpha 6.16 からサポート |
armv8.7-a |
| Armv8.8-A | 6.17 でAlpha 6.18 からサポート |
armv8.8-a |
| Armv8.9-A | 6.19 でBeta 6.20 からサポート |
armv8.9-a |
| Armv8-M Main Extension なし | 6.3 からサポート | armv8-m.base |
| Armv8-M Main Extension あり | 6.3 からサポート | armv8-m.main |
| Armv8.1-M Main Extension あり | 6.13 からサポート | armv8.1-m.main |
| Armv8-R | 6.4 からサポート | armv8-r |
| Armv9-A | 6.17 からサポート | armv9-a |
| Armv9.1-A | 6.17 からサポート | armv9.1-a |
| Armv9.2-A | 6.17 からサポート | armv9.2-a |
| Armv9.3-A | 6.17 でAlpha 6.18 からサポート |
armv9.3-a |
| Armv9.4-A | 6.19 でBeta 6.20 からサポート |
armv9.4-a |
| Armv9.5-A | 6.22 からサポート | armv9.5-a |
| Armv9.6-A | 6.23 でBeta 6.24 からサポート |
armv9.6-a |
CPU
| Name | サポート状況 | -mcpu=<name> オプション |
| Cortex-A5 | 6.01 からサポート | cortex-a5 |
| Cortex-A7 | 6.01 からサポート | cortex-a7 |
| Cortex-A8 | 6.01 からサポート | cortex-a8 |
| Cortex-A9 | 6.01 からサポート | cortex-a9 |
| Cortex-A12 | 6.01 からサポート | cortex-a12 |
| Cortex-A15 | 6.01 からサポート | cortex-a15 |
| Cortex-A17 | 6.01 からサポート | cortex-a17 |
| Cortex-A32 | 6.4 からサポート | cortex-a32 |
| Cortex-A35 | 6.3 からサポート | cortex-a35 |
| Cortex-A53 | 6.00 からサポート | cortex-a53 |
| Cortex-A55 | 6.7.1 からサポート | cortex-a55 |
| Cortex-A57 | 6.00 からサポート | cortex-a57 |
| Cortex-A72 | 6.3 からサポート | cortex-a72 |
| Cortex-A73 | 6.5 からサポート | cortex-a73 |
| Cortex-A75 | 6.7.1 からサポート | cortex-a75 |
| Cortex-A76 | 6.10.1 からサポート | cortex-a76 |
| Cortex-A76AE | 6.11 からサポート | cortex-a76ae |
| Cortex-A77 | 6.13 からサポート | cortex-a77 |
| Cortex-A78 | 6.14.1 からサポート | cortex-a78 |
| Cortex-A78AE | 6.15 からサポート | cortex-a78ae |
| Cortex-A78C | 6.16 からサポート | cortex-a78c |
| Cortex-A710 | 6.17 からサポート | cortex-a710 |
| Cortex-X1 | 6.14.1 からサポート | cortex-x1 |
| Cortex-X1C | 6.18 からサポート | cortex-x1c |
| Neoverse N1 | 6.12 からサポート | neoverse-n1 |
| Neoverse N2 | 6.15 からサポート | neoverse-n2 |
| Neoverse V1 | 6.15 からサポート | neoverse-v1 |
| Cortex-R4 | 6.3 でAlpha 6.4 からサポート |
cortex-r4 |
| Cortex-R4F | 6.3 でAlpha 6.4 からサポート |
cortex-r4f |
| Cortex-R5 | 6.3 でAlpha 6.4 からサポート |
cortex-r5 |
| Cortex-R7 | 6.3 でAlpha 6.4 からサポート |
cortex-r7 |
| Cortex-R8 | 6.4 からサポート | cortex-r8 |
| Cortex-R52 | 6.6 からサポート | cortex-r52 |
| Cortex-R52+ | 6.16 からサポート | cortex-r52plus |
| Cortex-M0 | 6.3 からサポート | cortex-m0 |
| Cortex-M0+ | 6.3 からサポート | cortex-m0plus |
| Cortex-M1 | 6.3 からサポート | cortex-m1 |
| Cortex-M3 | 6.3 からサポート | cortex-m3 |
| Cortex-M4 | 6.3 からサポート | cortex-m4 |
| Cortex-M7 | 6.3 からサポート | cortex-m7 |
| Cortex-M23 | 6.6 からサポート | cortex-m23 |
| Cortex-M33 | 6.6 からサポート | cortex-m33 |
| Cortex-M35P | 6.10.1 からサポート | cortex-m35p |
| Cortex-M52 | 6.22 からサポート | cortex-m52 |
| Cortex-M55 | 6.14 からサポート | cortex-m55 |
| Cortex-M85 |
6.19 からサポート |
cortex-m85 |
| Star-MC1 | 6.13 からサポート |
6.13 からstar 6.16.2 および6.18 でstar-mc1 に改名 |
| SC000 | 6.3 からサポート | sc000 |
| SC300 | 6.3 からサポート | sc300 |