アップデートリリースをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v6.3
1.はじめに
ARM Compiler 6.3 はARMv8-A、ARMv7-A、ARMv8-M、ARMv7-MおよびARMv6-M のアーキテクチャをサポートし、DS-5とともに使用することでこれらアーキテクチャ の実行可能コードのビルドおよびデバッグが可能です。ARM Compiler 6.3 は、ARMv8-M、ARMv7-MおよびARMv6-Mアーキテクチャプロファイルのフルサポートを追加しました。このリリースでは、C++例外のサポートを含む、C++ライブラリとしてlibc++の使用の完全サポートも追加しました。ARM Compiler 6.3は、以前のリリースよりも、生成されるコードが良い性能をもたらす、多くの最適化を含みます。
バージョン番号が、他のARM製品との整合性のために少し変わりました。バージョン情報の機械可読形式は、以前のリリースのそれらと同様に残されています。
ARM Compiler 6.3は、以下の使用を意図しています。
- DS-5 Professional Edition あるいは DS-5 Ultimate Editionと共に使用
- スタンドアロンでのツールインストレーション
ライセンスについてのご質問は購入元あるいは license.support@arm.comへのメールで行ってください。
フローティングライセンスをご使用の場合は、armlmdおよびlmgrdをversion 11.12.1.0以降にアップデートする必要があります。
これらのバージョンは、https://silver.arm.com/browse/BX002 からダウンロード可能です。(登録およびログインが必要です)
1.1 ARM Compiler 6 の構成
[armclang]- armclang はarmcc の後継であり、LLVM テクノロジをベースとしています。armclangでは現状、ARMv8-A、ARMv7-A、ARMv8-M、ARMv7-MおよびARMv6-M アーキテクチャプロファイルをサポートし、ARMv7-Rのアルファサポートを行っています。 以前のバージョンからの移行に関する情報については、製品ドキュメントに含まれるMigration and Compatibility Guide をご参照ください。
[armlink、armasm、fromelf、armar]
- armlink、armasm、fromelf およびarmar はARM Compiler 5 同様ARMv8 をサポートするようになりました。製品ドキュメントに含まれるMigration and Compatibility Guide をご参照ください。
- アセンブラに関する注意事項
- ARM CompilerではGNU とARM Compiler ツールチェイン間での移植性を改善のため、よりGNU アセンブラの書式により近くなるようにLLVM 統合アセンブラを採用しています。LLVM 統合アセンブラはarmclangからデフォルトで呼び出されます。そのため、旧armcc のインラインまたは組み込みアセンブラを含むC/C++ のソースファイルがARM Compiler 6 でコンパイルできないという副作用があります。
- armasm はデフォルトで呼び出されませんが、旧armasm の書式で記述されたアセンブラファイルをアセンブルするためにARM Compiler 6 内に含まれています。
[組み込みシステム向けARM C およびC++ ライブラリ]
- 標準のARM Compiler 組み込みライブラリは完全ではありませんがARM Compiler 5 同様ARMv8 をサポートするように拡張済みです。製品ドキュメントに含まれるMigration and Compatibility Guide をご参照ください。
- このリリースでは、デフォルトでlibc++ライブラリを含みます。 また、レガシーなアプリケーションのために、Rogue Wave C++ standard libraryを含みます。Rogue Wave C++ standard libraryは、非推奨で将来のリリースでは削除されます。
1.2 ARM Compiler 6.3 でのサポート
アーキテクチャとプロセッサ | サポートレベル |
ARMv8-AおよびARMv7-A と準拠するプロセッサ | サポート済み |
ARMv7-R と準拠するプロセッサ | アルファサポート-将来のリリースでサポート 現状はARM Compiler 5 の使用を検討してください |
ARMv8-M、ARMv7-M、ARMv6-M および準拠するプロセッサ | サポート済み |
ARMv6-M 以前のアーキテクチャ | 未サポート ARM Compiler 5 をご使用ください |
ARM 以外のアーキテクチャ | 未サポート |
サポートレベル | 詳細 |
サポート済み | 製品品質を保ち、一番高位のサポート優先度 |
ベータ | 実装は完了済みだが、テストは部分的。お客様の試用とフィードバックを歓迎 |
アルファ | 実装は未完了でテストは部分的 お客様の試用とフィードバックを歓迎 |
未サポート | 機能がツールチェインに含まれていないか非推奨になっており、テストは未実施 使用する場合は完全な自己責任 |
2. インストール手順
ARM Compiler 6.3 単体のインストールを行うには以下の手順に従ってください。例えばDS-5 のようなツールキットの一部としてARM Compiler 6.3 が提供されている場合は、インストールはツールキット側のインストーラで対応しています。そのような場合はツールキットのインストール手順に従ってください。サポートされるOSプラットフォーム
ARM Compiler 6.3 は以下のプラットフォームをサポートしています。
- Red Hat Enterprise Linux 5 Desktop and Workstation option, Standard(非推奨)
- Red Hat Enterprise Linux 6 Desktop and Workstation option, Standard,64-bit
- Red Hat Enterprise Linux 7 Desktop and Workstation option, Standard,64-bit
- Ubuntu Desktop Edition 12.04 LTS (非推奨)
- Ubuntu Desktop Edition 14.04 LTS 64-bit
- Windows 7 Enterprise SP1
- Windows 7 Professional SP1
- Windows 8.1 64-bit
- Windows 2012 Server 64-bit
[Linux でのインストール]
ARM Compiler 6.3 をLinux にインストールするには、(source ではなく)64-bit Linux ホスト環境ではinstall_x86_64.sh を、32-bit Linux ホスト環境ではinstall_x86_32.shを実行し、スクリーン上の手順に従ってください。インストーラは選択したディレクトリにARM Compiler 6.3 を解凍します。
-
●依存性について
armclang バイナリはARM Compiler 6.3 の一部としてインストール時に指定されたディレクトリ内にインストールされるlibstdc++ のコピーと動的にリンクされます。
インストールされる一部のツールは32-bit システムライブラリに対する依存性があります。ARM Compiler 6.3 を64-bit Linux ホストプラットフォームにインストールした場合、32-bit互換ライブラリがインストールされていることを確認する必要があります。32-bit互換ライブラリがインストールされていない場合、ARM Compiler 6.3 ツールの実行に失敗したり、ライブラリが見つからない為にエラーがレポートされる可能性があります。要求されるライブラリをインストールするにはroot権限を用いてプラットフォームに応じた適切なコマンドを実行してください:
Red Hat
yum install glibc.i686
Ubuntu
apt-get install lib32stdc++6
[Windowsでのインストール]
ARM Compiler 6.3 をWindows にインストールするには、64-bit Windows ホスト環境ではwin-x86_64setup.exe を、32-bit Windows ホスト環境ではwin-x86_32setup.exe を実行し、スクリーン上の手順に従ってください。以前のバージョンのARM Compiler 6 がすでにインストールされており、アップグレードしたい場合は、以前のバージョンを一旦アンインストールしてから新しいバージョンのARM Compiler 6 をインストールいただくことを推奨します。
ARM Compiler 6は、Microsoft Visual Studio 2013のランタイムライブラリがインストールされることを必要とします。プロダクトインストーラを使用するか、あるいはこのツールチェンがDS-5の一部としてインストールされるなら、ランタイムライブラリは製品と共にインストールされます。後からコピーあるいは別のPCへインストレーションを移動される場合、ランタイムライブラリがホスト上で利用可能であることを保証する必要があります。
[インストール後]
ARM Compiler 6.3 はライセンス管理される製品であり、DS-5 およびARM Compiler ライセンスの両方とともに動作します。
- DS-5 Ultimate ライセンスではすべての機能が使用できます
- DS-5 Professional または ARM Compiler ライセンスではARMv8 を除くすべての機能が使用できます
ライセンスの取得については弊社またはlicense.support@arm.com にお問い合わせください。
ARMLMD_LICENSE_FILE 環境変数がライセンスファイルを指すように設定して下さい。Windows 環境ではpath の設定にダブルクォートを含む必要がないことに注意してください。スペースを含むpath はダブルクォートがなくとも動作します。
[アンインストール]
ARM Compiler 6.3 をWindows 上からアンインストールするにはコントロールパネルの"プログラムと機能"の"プログラムのアンインストール"でARM Compiler 632 を選択してアンインストールボタンをクリックします。
ARM Compiler 6.3 をLinux 上からアンインストールするには、インストールディレクトリを削除します。
単純なプログラムのビルド
ベアメタルAArch64 システム用の非常に単純なプログラムをコンパイルするには:- (Unix) echo "int main() {}" > simple.c
- (Windows) echo int main() {} > simple.c
- (両システム) armclang --target=aarch64-arm-none-eabi simple.c -o simple
armclang --helpで、基本的なコマンドライオプションのヘルプを確認することができます。より詳細についてはarmclang Reference Guide をご参照ください。旧バージョンのARM Compiler からの移行に関する情報は、製品ドキュメントに含まれるMigration and Compatibility Guide をご参照ください。
ドキュメンテーション
以下のドキュメンテーションがARM Compiler 6.3 用に提供されます:- armar User Guide
- armasm User Guide
- armclang Reference Guide
- armlink User Guide
- fromelf User Guide
- ARM C and C++ Libraries and Floating-Point Support User Guide
- Errors and Warnings Reference Guide
- Getting Started Guide
- Migration and Compatibility Guide
- Software Development Guide
リリース履歴と変更点について
ARM Compiler 6.3 シリーズのリリース日付は以下の通りです。
各リリースにおける、新しい機能と修正された不具合を含むる変更点の概要は以下の通りです。特に指定がない限り、変更点は、それぞれのケースで、一つ前のリリースからリストされます。各変更点は、ユニークなSDCOMP-
ARM Compiler v6.3 での変更
変更点は、前の機能リリース:ARM Compiler 6.02からリストされます。ARM Compiler v6.3 での一般的な変更
- [SDCOMP-30316] Cortex-A35プロセッサに対するサポートが追加されました。Cortex-A35をターゲットとする場合、以下のオプションから選択してください。
armclang:
- --target=aarch64-arm-none-eabi -mcpu=cortex-a35 (AArch64ステート)
- --target=arm-arm-none-eabi -mcpu=cortex-a35 (AArch32ステート)
- --cpu=8-A.64 (AArch64ステート)
- --cpu=8-A.32 (AArch32ステート)
- [SDCOMP-30322] ARMv8.2アーキテクチャがアルファサポートとして追加されました。ARMv8.2Aをターゲットとする場合、以下のオプションから選択してください。
armclang:
- --target=aarch64-arm-none-eabi -march=armv8.2-a (AArch64ステート)
- --target=arm-arm-none-eabi -march=armv8.2-a (AArch32ステート)
- --cpu=8.2-A.64 (AArch64ステート)
- --cpu=8.2-A.32 (AArch32ステート)
- [SDCOMP-30320] ARMv8-Mアーキテクチャのサポートが追加されました。ARMv8-Mをターゲットとする場合、以下のオプションから選択してください。
armclang:
- --target=arm-arm-none-eabi -march=armv8-m.base (ARMv8-Mベースラインアーキテクチャプロファイル)
- --target=arm-arm-none-eabi -march=armv8-m.main (ARMv8-Mメインラインアーキテクチャプロファイル)
- --target=arm-arm-none-eabi -march=armv8-m.main+dsp (ARMv8-MメインラインアーキテクチャプロファイルおよびDSP拡張)
- --cpu=8-M.Base (ARMv8-Mベースラインアーキテクチャプロファイル)
- --cpu=8-M.Main (ARMv8-Mメインラインアーキテクチャプロファイル)
- --cpu=8-M.Main.dsp (ARMv8-MメインラインアーキテクチャプロファイルおよびDSP拡張
- [SDCOMP-30494] ARMv8-Mセキュリティ拡張を使用するセキュアアプリケーションをビルドするためのベータサポートが追加されました。ARMv8-Mのセキュアアプリケーションは、以下のオプションでビルドできます。
armclang:
- ARMv8-Mセキュリティ拡張のセキュアステート用のコード生成を有効にする -mcmse オプション
- 既存のインポートライブラリの読み出しと、インポートライブラリ内に与えられる同じアドレスへゲートウェイべニアを生成する --import_cmse_lib_in=filename オプション
- 特定のロケーションへインポートライブラリのセキュアコードを出力する --import_cmse_lib_out=filename オプション これらオプションに関する詳細な情報は、製品のドキュメンテーションを参照してください。
- [SDCOMP-30398] ARMv7-Mアーキテクチャのサポートが追加されました。ARMv7-Mをターゲットとする場合、以下のオプションを選択してください。
armclang:
- --target=arm-arm-none-eabi -march=armv7-m(ARMv7-Mアーキテクチャプロファイル)
- --target=arm-arm-none-eabi -march=armv7e-m(ARMv7-MアーキテクチャプロファイルおよびDSP拡張)
- --target=arm-arm-none-eabi -mcpu=cortex-m3 (Cortex-M3プロセッサ)
- --target=arm-arm-none-eabi -mcpu=cortex-m4 (Cortex-M4プロセッサ)
- --target=arm-arm-none-eabi -mcpu=cortex-m7 (Cortex-M7プロセッサ)
- --target=arm-arm-none-eabi -mcpu=sc300 (SC300プロセッサ)
- --cpu=7-M(ARMv7-Mアーキテクチャプロファイル)
- --cpu=7E-M(ARMv7-MアーキテクチャプロファイルおよびDSP拡張)
- --cpu=Cortex-M3 (Cortex-M3プロセッサ)
- --cpu=Cortex-M4 (Cortex-M4プロセッサ)
- --cpu=Cortex-M7 (Cortex-M7プロセッサ)
- --cpu=SC300 (SC300プロセッサ)
- [SDCOMP-30399] ARMv6-Mアーキテクチャのサポートが追加されました。ARMv6-Mをターゲットとする場合、以下のオプションを選択してください。
armclang:
- --target=arm-arm-none-eabi -march=armv6-m(ARMv6-Mアーキテクチャプロファイル)
- --target=arm-arm-none-eabi -mcpu=cortex-m0 (Cortex-M0プロセッサ)
- --target=arm-arm-none-eabi -mcpu=cortex-m0plus (Cortex-M0+プロセッサ)
- --target=arm-arm-none-eabi -mcpu=cortex-m1 (Cortex-M1プロセッサ)
- --target=arm-arm-none-eabi -mcpu=sc000 (SC000プロセッサ)
- --cpu=6-M(ARMv6-Mアーキテクチャプロファイル)
- --cpu=Cortex-M0 (Cortex-M0プロセッサ)
- --cpu=Cortex-M0plus (Cortex-M0+プロセッサ)
- --cpu=Cortex-M1 (Cortex-M1プロセッサ)
- --cpu=SC000 (SC000プロセッサ)
- [SDCOMP-29034] libc++ライブラリが完全にサポートされ、デフォルトで選択されるようになりました。Rogue Wave C++ ライブラリは、非推奨で将来のリリースでは削除される予定です。
- [SDCOMP-29737] 以前は、-fcommonコンパイラオプションがデフォルトで選択されていましたが、この振る舞いは変更されました。今、 -fno-commonがデフォルトとなりました。これらオプションに関する詳細は、ARM Compiler armclang Reference Guideをご参照ください。
- [SDCOMP-30401] 以前は、--vsnオプションは、例えば、Component: ARM Compiler 6.02 (build 6)のように、製品リリース名とビルド番号を報告していましたがこの振る舞いは変更されました。ビルド番号は、 例えば、Component: ARM Compiler 6.3のように、レポートされません。
機械可読形式のバージョン情報も変更されましたが、カレントリリースのメジャーバージョンおよびマイナーバージョンを決定する目的で以前のフォーマットと共に互換性のために残されています。機械可読なバージョン情報は、以下で使用されます。
- --version_number オプションの出力
- armclang の事前定義マクロ __ARMCOMPILER_VERSION
- armasm の事前定義マクロ ARMASM_VERSION
機械可読形式についての詳細は、 armasm User Guide、armclang Reference Guide、armlink User Guide あるいはfromelf User Guide内の --version_numberをご参照ください。 - [SDCOMP-30183] レガシーな、armdsp.hヘッダファイルは非推奨で、詳細のリリースでは削除される予定です。
ARM Compiler v6.3での拡張
- [SDCOMP-30326] -ffunction-sectionsコンパイラオプションが追加でサポートされました。このオプションは、ソースファイル内の各関数ごとに、一つのELFセクションを生成するようコンパイラへ指示します。
- [SDCOMP-29590] C++コード内で、明示的なreturnの記述を持たない戻り値のある関数をコンパイルするとき、以前はコンパイラが、warning: control reaches end of non-void function [-Wreturn-type]をレポートしました。これは、C++で定義されていない振る舞いで、生成されるコードは予期しない振る舞いを引き起こす可能性があります。C++コードとしてCコードがコンパイルされるとき、分かりやすい変換を提供するために、この振る舞いは変更されました。コンパイラは、 error: control reaches end of non-void function [-Werror,-Wreturn-type]を報告するようになりました。
- [SDCOMP-29022] -mfpu=noneコンパイラオプションが追加でサポートされました。このオプションは、ハードウェアベースの浮動小数点関数をコンパイラで使用することを阻止します。コンパイラはソースコード内に浮動小数点型を見つけると、ソフトウェアベースの浮動小数点ライブラリ関数を使用します。
armclangでは、ハードウェアおよびソフトウェアの両方の浮動小数点計算を除外するコマンドラインオプションはありません。ARM Compier 6は、ハードウェアおよびソフトウェアの両方の浮動小数点計算を除外するCおよびC++ライブラリを提供しません。 - [SDCOMP-28449] ARM C Language Extensions (ACLE)のリリース2.0で定義されている__fp16 半精度浮動小数点型のサポートを追加しました。__fp16型は全てのターゲットでサポートされました。
- [SDCOMP-28449] コンパイラオプション -march、-mcpuおよび -mfpuが拡張されました。
- サポートされているアーキテクチャをリストする -march=list
- サポートされているプロセッサをリストする -mcpu=list
- サポートされているFPUアーキテクチャをリストする -mfpu=list
- [SDCOMP-30245] __builtin_arm_ssat組込み関数をコンパイルするとき、コンパイラは誤って、組込み関数へ渡されるイミディエート引数から異なるイミディエート値のSSAT命令を生成することがありました。この問題は修正されました。
- [SDCOMP-29141] 以前はコンパイラは、-march および -mcpu オプションへの大文字を含む引数は拒否していました。これは修正されました。
- [SDCOMP-25912] Large Physical Address Extension (LPAE)を実装するターゲット用にアセンブルするとき、アセンブラは PAR、TTBR0 あるいは TTBR1 システムレジスタをMRSあるいはMSR命令のオペランドとして許しませんでした。これは修正されました。
- [SDCOMP-26082] アセンブラは、正しくない--listオプションの出力をまれに生成することがありました。これは修正されました。
- [SDCOMP-30273] ARMv8-A AArch64 をターゲットとしイメージのセクションあるいはエントリポイントが 0x0000FFFFFFFFFFFFよりも上位のアドレスに配置されるとき、リンカは、 Error: L6833E: Entry point address <address> lies outside of 48 bit address space available at reset および Warning: L6834W: Load region LOAD address <address> lies outside of 48 bit address space available at reset.を誤って報告することがありました。これは、EL1以降でのAArch64コードにおける一般的なアーキテクチャ上の制約ではありません。この不具合は修正されました。
- [SDCOMP-30033] --partialオプションと共にリンクされる特定の条件で、リンカは Internal faultを報告することがありました。この不具合は修正されました。
- [SDCOMP-29504] C++例外が有効でオブジェクト内にtry…catchブロックがないAArch64イメージを生成するとき、リンカは誤って Error: L6218E: Undefined symbol <symbol> (referred from <objname>).を報告することがありました。この不具合は修正されました。
- [SDCOMP-24767] STT_FUNC型のシンボルを含むデータセクションが見つかった場合、べニアを生成するとき、リンカは ARM Linker: Execution interrupted due to an illegal storage access を報告することがありました。この問題は修正されました。リンカは、今、Warning: L6171W: Code symbol <symname> defined in non executable section <secname> および Error: L6169E: Relocation #REL:<rel_number> in <secname> with respect to <symname>. Branch to code symbol defined in non executable section <secname>.を報告します
- [SDCOMP-17870] filename のファイルが書き込み用にオープンできない場合、 --list=filename オプションを使用してプログラムがリンクされるとき、リンカは Segmentation faultを報告することがありました。
- [SDCOMP-29972] %Cあるいは%hフォーマット指定子を使用したとき、Cライブラリ関数 strftime() が正しくない値を生成することがありました。これは修正されました。
- [SDCOMP-28709] stdoutがターミナルデバイスへアタッチされるとき、 _fisatty() ARM Cライブラリ関数は、1の代わりに0を誤って返すことがありました。これは修正されました。
- [SDCOMP-29875] ファイルシステム内に非常に古いタイムスタンプを持つファイルが存在する特定の条件で、コンパイラは、誤ってerror: System clock tampering detected. License checkout will fail.をレポートすることがありました。これは修正されました。
- [SDCOMP-17536] ツールはエラーをもたらしている ./../dir/input_fileフォームの相対パスが与えられるとき、入力ファイルの検出に失敗することがありました。これは修正されました。
- [SDCOMP-30562] ARMv8-Mセキュリティ拡張における、セキュア関数内で浮動小数点コードの使用はサポートされません。コンパイラは非セキュア状態へ戻るとき、浮動小数点レジスタがクリアされることを保証しません。
- [SDCOMP-30561] AArch64ターゲット用にコンパイルされたC++オブジェクトをリンクする特定の条件で、リンカは、誤ってWarning: L6806W: Relocation #RELA:<index> in <object1>(<section1>) with respect to [Anonymous Symbol]. Branch to untyped symbol in <object1>(<section2>), ABI requires external code symbols to be of type STT_FUNC. を報告することがあります。この警告は、 <section2>が <section1>からBL命令の範囲内なら、無視することができます。
- [SDCOMP-30415] --callgraph、--info=stackあるいは --info=summarystackオプションのいずれかを使用して AArch64イメージを生成するとき、リンカは、誤ったスタック情報あるいはInternal faultを報告します。この問題を回避するためには、AArch64では、 --callgraph、 --info=stackあるいは --info=summarystackを使用しないでください。
- [SDCOMP-30349] ARM Compier 6は、以下のARM Compier 5の組込み関数をサポートしません。
- __disable_irq
- __enable_irq
- __schedule_barrier
__disable_irq および __enable_irq の代わりに、インラインアセンブラを使用することができます。たとえば:<>br>- asm("CPSID i"); /* Disable IRQs for ARMv7-A/R and ARMv8-A AArch32 */
- asm("msr DAIFClr, #2"); /* Enable IRQs for ARMv8-A AArch64 */
ARMv6-M、ARMv7-MおよびARMv8-Mをターゲットとする場合、CMSIS-COREレジスタアクセス関数の使用を推奨します。
__schedule_barrierの代わりに、ARM C Language Extensions (ACLE)で定義されている __dsb、 __dmbあるいは __isb組込み関数を使用することができます。 - [SDCOMP-28246] Red Hat Enterprise Linuxにおいて、リンク時最適化機能を使用すると、ARM Linker: Execution interrupted due to an illegal storage access. メッセージを表示して32bit版のリンカが終了することがあります。
- [SDCOMP-25973] リンク時に --cpu=cortex-a5オプションが使用されるとき、リンカはError: L6366E: <object> attributes are not compatible with the provided cpu and fpu attributesを報告することがあります。コンパイル時に --target=armv7-arm-none-eabi -mcpu=cortex-a5オプションを指定されて生成されたオブジェクトは、VFPv4とNEONが有効なことを前提としていますが、 リンカオプション--cpu=cortex-a5は、VFPとNEONが無効なことを意図しています。この問題を回避するには、リンク時に --cpu=cortex-a5.neonオプションを使用してください。
- [SDCOMP-25971] AArch64では、long doubleはサポートされていません。
- [SDCOMP-25970] --cpu=cortex-a53あるいは--cpu=cortex-a57をリンク時に使用すると、リンカが誤ってFatal error: L3903U: Argument '<feature_name>' not permitted for option 'cpu'を報告することがあります。この問題を回避するには、リンク時には--cpuオプションを指定しないでください。
- [SDCOMP-25966] fromelf --fieldoffsets --expandarraysは、配列の各要素についての情報を表示することを期待しています。armclangを使用してコンパイルされたオブジェクトの場合、現在、配列の最初の要素についてのみ表示されます。
- [SDCOMP-25965] 複素数はサポートされません。
コンパイラと統合されたアセンブラ(armclang)
ARM Compiler v6.3で修正された不具合
コンパイラと統合されたアセンブラ(armclang)
古いアセンブラ(armasm)
リンカ(armlink)
ライブラリおよびシステムヘッダ
その他の不具合
ARM Compiler6.3の既知の不具合