Arm Compiler for Embedded FuSa 6.22LTS のリリースノート
目次
1. リリース概要
この章では、Arm Compiler for Embedded FuSa 製品と Arm Compiler for Embedded FuSa 6.22.1 リリースの概要について説明します。
1.1 製品の説明
Arm Compiler for Embedded FuSa は、機能安全 (FuSa) またはlong-termサポート要件を備えたベアメタルソフトウェア、ファームウェア、およびリアルタイムオペレーティングシステム (RTOS) アプリケーションを開発するらめの、Armの最も高度な組み込みC/C++コンパイルツールチェーンです。
ツールチェインは、次の Arm 統合開発環境 (IDE) と互換性があります:
- Arm Development Studio
- Arm Keil MDK v6
強力な最適化手法と最適化されたライブラリを通して、Arm Compiler for Embedded FuSa 6.22LTS は、機能安全の組込みシステム開発者が、挑戦的なパフォーマンス目標とメモリ制約を満たすことを可能にします。
Arm Compiler for Embedded FuSa 6.22LTS は、自動車(ISO 26262)、家電、産業(IEC 61508)、医療(IEC 62304)、ネットワーク、鉄道(EN 50716)、ストレージ、通信など、さまざまな業界のリーディングカンパニーで使用されています。
Arm Compiler for Embedded FuSa 6.16LTS の最初のリリースと比較した場合の Arm Compiler for Embedded FuSa 6.22LTS の主な変更点は次のとおりです:
- 下記の Automotive Enhancedプロセッサのサポート:
- Neoverse V3AE
- Cortex-A720AE, Cortex-A520AE
- Cortex-R82AE
- 下記のプロセッサのサポート:
- Neoverse V2
- Cortex-X4, Cortex-X3, Cortex-X2, Cortex-X1C
- Cortex-A720, Cortex-A715, Cortex-A710, Cortex-A520, Cortex-A510
- Cortex-R82
- Cortex-M85, Cortex-M52
- 下記のアーキテクチャのサポート:
- Armv9-A から Armv9.5-A まで
- Armv8.8-A および Armv8.9-A
- C++ソース言語モードでコンパイルする場合を除いて、ハードウェア浮動小数点を使用しない Armv8-R AArch64 実装
- ハードウェア浮動小数点演算を備えたArmv8-R AArch64実装
- 下記のアーキテクチャ拡張のサポート:
- A-profileアーキテクチャの 2023 拡張
- M-profile PACBTI 拡張
- User-based Licensing (UBL)のサポート
- FlexNet Publisher (FNP) および Keil ライセンスの削除
- C++17のサポート
- Armv6-M ターゲットのビルド時に実行専用メモリ (XOM) 領域をサポート
- 下記のセキュリティ機能のサポート:
- Undefined Behavior Sanitizer (UBSan)
- Control Flow Integrity (CFI)
- AArch64 状態のシャドウコールスタック
- PACMAN セキュリティ脆弱性の緩和策
- Straight-Line Speculation (SLS) セキュリティ脆弱性の緩和策
- VLLDM 命令セキュリティ脆弱性の緩和策
- SVE および SVE2 の自動ベクトル化のサポート
- 旧アセンブラであるarmasmの廃止
Arm Compiler for Embedded FuSa 6.16LTS と Arm Compiler for Embedded FuSa 6.22LTS 間の変更の概要については、 このリリースの Arm Compiler for Embedded FuSa Migration and Compatibility Guide ドキュメントのSummary of changes between Arm Compiler for Embedded FuSa 6.16 LTS and Arm Compiler for Embedded FuSa 6.22.1 LTS の章をご参照ください。
Arm Compiler for Embedded FuSa または Armの統合開発環境(IDE)については、代理店にお問い合わせください。
1.2 リリースのハイライト
Arm Compiler for Embedded 6.22.1 は2024年8月現在の最新リリースです。 これは、非認定の Arm Compiler for Embedded 6.22リリースから派生したもので、追加の欠陥修正が含まれており、 機能安全を目的としたQualification Kitが追加されています。
ライセンス条件に従い、Arm Compiler for Embedded FuSa 6.22.1 を使用して、以下のArm アーキテクチャおよびプロセッサ用のビルドが行えます:
Architecture | Processor Family | Standard Processors | Automotive Enhanced Processors |
Armv9.5-AまでのArmv9-A | Neoverse | V2 N2 |
V3AE |
Cortex | X4, X3, X2 A725, A715, A710 A520, A510 |
A720AE, A520AE | |
Armv8.9-AまでのArmv8-A | Neoverse | V1 N1 E1 |
- |
Cortex | X1C, X1 A78C, A78, A77, A76, A75, A73, A72 A65 A57, A55, A53 A35, A34, A32 |
A78AE, A76AE A65AE |
|
Armv7-A | Cortex | A17, A15, A12 A9, A8, A7, A5 |
- |
Armv8-R AArch64 | Cortex | R82 | R82AE |
Armv8-R | Cortex | R52+, R52 | - |
Armv7-R | Cortex | R8, R7, R5, R4F, R4 | - |
Armv8.1-MまでのArmv8-M | Cortex | M85 M55, M52 M35P, M33 M23 |
- |
STAR | STAR-MC1 | - | |
Armv7-M | Cortex | M7, M4, M3 | - |
SecurCore | SC300 | - | |
Armv6-M | Cortex | M1, M0, M0+ | - |
SecurCore | SC000 | - |
詳細については以下のドキュメントを参照してください:
- Arm Development Studioプロダクトページ
- Arm Keil MDK v6プロダクトページ
- Arm Compiler for Embedded User GuideのSupport level definitionsの章
1.3 含まれるコンポーネント
Arm Compiler for Embedded 6.23 に含まれるツールチェーンコンポーネントとさまざまな種類のドキュメントを一覧表示します。
Category | Component | Description |
認証ツールチェインコンポーネント | armclang | LLVMとClangテクノロジをベースとしたコンパイラおよび統合アセンブラ |
armar | ELFオブジェクトファイル群をまとめるアーカイバ | |
armlink | オブジェクトやライブラリをまとめ、実行可能形式を生成するリンカ | |
fromlef | イメージ変換ユーティリティ兼逆アセンブラ | |
非認証ツールチェインコンポーネント | Arm C libraries | 組込みシステム向けのランタイムサポートライブラリ |
Arm C++ libraries | LLVM libc++プロジェクトベースのライブラリ | |
armasm | 非推奨となった古いArm アーキテクチャ専用の armasm-syntaxアセンブリコード用の旧アセンブラ。 新しいアセンブリファイルではarmclang統合アセンブラを使用 |
|
Qualification Kit | Safety Manual | 認定の範囲、機能安全関連開発ツールチェインの使用方法について説明があります |
Defect Report | 既知の機能安全関連の障害に関する情報を提供します | |
Test Report | 言語適合性テストの結果を含みます | |
Development Process | ツールチェインの開発に使用されたプロセスの概要を含みます | |
Release History | Arm Compiler for Embedded FuSa 6.22LTS シリーズの現在までのすべてのリリースに関する識別情報を含みます | |
User documentation | User Guide | ツールチェインの使用を助けるサンプルとガイドを提供します |
Reference Guide | ツールチェインの設定に役立つ情報を提供します | |
Arm C and C++ Libraries and Floating-Point Support User Guide |
Arm libraryと浮動小数点サポートに関する情報を提供します | |
Errors and Warnings Reference Guide | Arm Compiler for Embedded に含まれるツールがレポートする エラーやワーニングのリストを提供します |
|
Migration and Compatibility Guide | Arm Compiler 5 からArm Compiler for Embedded への 移行を支援する情報を提供します |
|
Release notes | これらのリリースノート |
- これらのコンポーネントは下記から入手できます。
コンポーネントタイプ | Source |
認証ツールチェインコンポーネント | Product Download Hub (PDH)から入手可能 |
非認証ツールチェインコンポーネント | PDHから入手可能 |
Qualification Kit | PDHから入手可能 |
ドキュメント | Arm Developerから利用可能 |
1.4 製品の品質
この製品は実動作環境での使用に適した最終リリース品質の製品です。
この製品内の一部の機能は最終リリース品質の機能ではない、またはサポートされていません。 該当する場合は、ドキュメント内に機能のステータスが明示的に記載されています。 このような機能の詳細については、以下をご参照ください。
- Arm Compiler for Embedded FuSa Qualification Kit Safety ManualのThe Features not recommended for use in safety-related developmentの章
- Arm Compiler for Embedded FuSa User GuideのSupport level definitionsの章
2. Arm Compiler for Embedded FuSa 6.22.1 をダウンロード
この章では、Arm Compiler for Embedded FuSa 6.22.1 をダウンロードしてインストールする方法について説明します。
Arm Compiler for Embedded FuSa 6.22.1 は、所持されているライセンスと権限に応じて、スタンドアローン、Arm統合開発環境 (IDE) の一部として、または Success Kit の一部としてダウンロードが可能です。
このリリースをスタンドアローンでダウンロードするには、Arm Product Download Hub (PDH)の ACOMP622コードを使用します。 この製品コード内のツールチェーンダウンロードパッケージは、2024年8月時点で次の環境での使用を想定としています:
Host architecture | Host operating system | Toolchain download package | Host environment |
x86_64 | ・Red Hat Enterprise Linux 9 ・Red Hat Enterprise Linux 8 ・Red Hat Enterprise Linux 7 ・Ubuntu 22.04 LTS ・Ubuntu 20.04 LTS |
x86_64 Linux | ・スタンドアロン製品として使用 ・Arm Development Studioに統合 ・Keil MDK version 6に統合 |
・Windows Server 2022 ・Windows Server 2019 ・Windows 11 ・Windows 10 |
x86_64 Windows | ・スタンドアロン製品として使用 ・Arm Development Studioに統合 ・Keil MDK version 6に統合 |
|
AArch64 | ・Ubuntu 20.04 LTS | AArch64 Linux | ・スタンドアロン製品として使用 ・Keil MDK version 6に統合 |
✝ Arm は、このリリースに環境を追加する権利を留保します。環境はリリースによって異なる場合があります。
Qualification Kitのドキュメントは、同じ製品コードACOMP622 の PDHの追加ダウンロードパッケージから入手できます。
以下の制限が適用されます:
- Linuxホストプラットフォームに必要なglibcの最小バージョンは以下の通りです。
- x86_64 ホストプラットフォームの場合は 2.15
- AArch64 ホストプラットフォーム場合は 2.17
- ツールチェインを Arm Development Studio のインストールディレクトリに直接インストールしないでください。
詳細については、以下を参照してください:
- ツールチェインのインストール手順についてはArm Compiler for Embedded User GuideのSystem requirements and installationの章を参照してください。
- ツールチェインを Arm Development Studio に統合する手順については、 Arm Development Studio Getting Started Guideの Register a compiler toolchainの章を参照してください。
- ツールチェーンを Arm Keil MDK v6に統合する手順については、 Arm Keil Studio Visual Studio Code Extensions User Guideを参照してください。
- User-based ライセンス(UBL)を使用するようにツールチェインを構成する手順については、 User-based Licensing User Guideを参照してください。
3. 以前のリリースとの違い
以下に、Arm Compiler for Embedded FuSa 6.22.1 シリーズのリリース日付を示します:
- 6.22.1 (2024年8月にリリースされました)
以下に、以前のリリースのArm Compiler for Embedded 6.22 との違いを示します。
この章の範囲に関する情報については、Does Arm document all known issues that affect each Arm Compiler release? の記事を参照してください。
以下の情報には、技術的な不正確さや誤植が含まれる場合があります。
それぞれの変更点には、ユニークな識別子SDCOMP-が割り振られています。
もしArmへこのリリースノート内の特定の問題について連絡が必要な場合、適切な識別子を通知してください。
3.1 不具合の修正
このセクションには、Arm Compiler for Embedded FuSa の本リリースで行われた不具合の修正に関する情報が含まれています。 ツールチェーンの特定のコンポーネントの不具合の修正にそれぞれ重点を置いたサブセクションが含まれています。
3.1.1 Compiler and integrated assembler, armclang
このセクションには、コンパイラおよび統合アセンブラである armclang で行われた不具合の修正のリストが含まれています。
- [SDCOMP-65172]-gdwarf-2 または -gdwarf-3 を使用してコンパイルすると、コンパイラがビット フィールドに対して誤ったデバッグ情報を生成する可能性がありました。
- [SDCOMP-65141]ビッグエンディアンターゲット用にアセンブルする場合、インラインアセンブラと統合アセンブラは、 同じリテラル値を 32ビットレジスタと 64ビットレジスタの組み合わせにロードする LDR 命令のシーケンスに対して誤ったコードを生成していました。
- [SDCOMP-65094]-fno-optimize-sibling-calls を使用せず、Pointer Authentication Code(PAC) 保護を有効にする -mbranch-protection=<protection> オプションを使用し、メイン拡張機能を備えた Armv8.1-M ターゲットに対してコンパイルすると、 名前付きレジスタ変数に R12 を使用する関数に対してコンパイラが誤ったコードを生成する可能性がありました。
- [SDCOMP-64829]Standardization of memory operations feature (FEAT_MOPS) を有効にするターゲットオプションを使用してコンパイルすると、 コンパイラがアーキテクチャ的にCONSTRAINED UNPREDICTABLEな命令を誤って生成する可能性がありました。
- [SDCOMP-63913]RET および BR 命令の Straight-Line Speculation(SLS) に対する緩和策を有効にする -mharden-sls=<option> オプションを使用してコンパイルし、 -moutline を使用するか、-mno-outline なしで -Oz を使用すると、コンパイラが不正なコードを生成する可能性がありました。
3.1.2 Linker, armlink
- このセクションには、Linker, armlink で行われた不具合の修正のリストが含まれています。
- [SDCOMP-65517]2つの実行領域 A と B で、A が B より低いアドレスにある場合、 リンカーは A の名前が常に B の名前より字句的に前であると誤って想定していました。 その結果、リンカーが誤ったコールグラフまたはスタック使用情報を生成する可能性がありました。 この問題は修正され、リンカーは、A の名前が常に B の名前より字句的に前であると想定しなくなりました。
- [SDCOMP-64999] C++例外を有効にして AArch32状態でコンパイルされた入力オブジェクトをリンクすると、 リンカーが誤った C++例外処理テーブルを生成する可能性がありました。
3.1.3 Libraries and system headers
- このセクションには、ツールチェーンに付属する C および C++ ライブラリとシステム ヘッダーで行われた不具合の修正のリストが含まれています。
- [SDCOMP-65388] Arm C ライブラリは、静的ストレージ期間を持つ C++ オブジェクトを含むマルチスレッドプログラムに対してスレッドセーフではありませんでした。
3.2 廃止または削除された機能
- このセクションには、このリリースで非推奨または削除された機能の任意のリストが含まれています。
- [SDCOMP-64971] lexNet Publisher (FNP) ライセンスと Keil ライセンスのサポートが削除されました。 ツールチェーンはユーザーベースのライセンス (UBL) のみをサポートします。
UBLの詳細についてはUser-based Licensing User Guideをご参照ください。
4. サポート
この章では、Arm Compiler for Embedded FuSa 6.22.1 の使用に関するサポートを取得する方法について説明します。
お客様からのフィードバックは我々にとって重要です。
製品のいかなる側面についても、障害報告と改善に関する提案を歓迎します。
フィードバックあるいはサポートが必要な問題について、お仕事あるいはアカデミックなE-mailアドレスを使用してお客様の製品の購入元にご連絡をいただくか、可能であればcaseをオープンしてください。
必要に応じて、以下の情報をお書き添えください:
- ツールからの--vsnの出力
- ツールが生成するエラーメッセージの完全な内容
- 問題を再現するのに必要なプリプロセス済みのソースコード、その他のファイル、コマンドラインオプション。プリプロセス済みのソースコードの生成方法はArm Compiler for Embedded FuSa Reference Guide 内の-E の章をご参照ください。
当社へのお問い合わせは、こちら。
6. リリースヒストリー
弊社FAQ<Arm Compiler for Embedded 製品のリリースヒストリー>をご参照ください。