アップデートリリースをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v5.06 update1 (build 61)
ARM Compiler 5.06は、ARM Compiler 5の最終リリースのシリーズであり、ARM Compiler 6へ継承されます。通常のARM Compiler 5.06のメンテナンス期間が終了した後、それ以上のサポートとメンテナンスはARM Compiler 拡張保守(Extended Maintenance)を通して利用可能です。ARM Compiler 5.06の拡張保守(Extended Maintenance)リリースは、ARM Compiler Qualification Kitによってサポートされます。
詳細な情報は、以下のリンクをご参照ください。
ARM Compiler 5.06 update 1 (build 61)は、ARM Compiler 5.06のアップデートリリースであり、以下の使用を意図しています。
- DS-5 Professional Edition あるいは DS-5 Ultimate Editionと共に使用
- Keil MDK Standard Edition あるいは Keil MDK Professional Editionと共に使用
- スタンドアロンでのツールインストレーション
ライセンスについてのご質問は購入元あるいは license.support@arm.comへのメールで行ってください。
フローティングライセンスをご使用の場合は、armlmdおよびlmgrdをversion 11.12.1.0以降にアップデートする必要があります。
https://silver.arm.com/browse/BX002 からダウンロード可能です。(登録およびログインが必要です)
インストレーション指示
ARM Compiler 5.06 update 1 が、ツールキット(DS-5あるいはKeik MDK)の一部として含まれている場合、ツールキットのインストーラがインストレーションプロセスを処理します。ツールキットのインストレーション指示を参照してください。
その他のケースの場合、ARM Compiler 5.06 update 1をどのように使用するかに依存して適切なインストレーションの場所を選択する必要があります。
- DS-5 5.20 以降に統合する
- Keil MDK 5.12 以降に統合する
- スタンドアロン製品として使用
DS-5 5.20 以降に統合する場合
ARM Compiler 5.06 update 1 は、DS-5製品のインストレーションの外であるなら、デフォルトの場所を含み、任意の場所にインストールすることができます。
インストール後、http://ds.arm.com/developer-resources/tutorials/adding-new-compiler-toolchains-to-ds-5/のチュートリアルで示す方法に従って、DS-5 5.20以降のツールチェーンに統合することができます。
DS-5 Eclipse IDE あるいは DS-5 Command PromptからARM Compiler 5.06 Update1 を使用することをおすすめします。これら環境の外でツールチェーンを使用するとき、以下の環境変数の構成が必要となります。
- DS-5インストレーション内の sw/mappings ディレクトリへのパスをARM_PRODUCT_PATHにセットします
- DS-5 Ultimate Editionを使用する場合、ARM_TOOL_VARIANT=ultをセットします
Keil MDK 5.12 以降に統合する場合
ARM Compiler 5.06 update 1は、Keil MDKインストレーションのARMサブディレクトリの下にインストールする必要があります。たとえば、Keil MDKインストレーションが C:Keil_v5ならば、C:Keil_v5ARMARM_Compiler_5.06u1にインストールすることをおすすめします。
インストール後、 http://www.keil.com/appnotes/docs/apnt_267.aspで利用可能なアプリケーションノートの指示に従って、MDKプロジェクトへツールチェーンを統合することができます。
スタンドアロン製品としての使用について
ARM Compiler 5.06 update 1は、DS-5製品およびKeil MDK製品のそれぞれのインストレーションの外であるなら、デフォルトの場所を含み、任意の場所にインストールすることができます。
ライセンスファイルあるいはライセンスサーバの場所を指定するARMLMD_LICENSE_FILE環境変数をセットしてください。Windows上ではダブルクォーテーションをこのパス内に含めないでください。パス内の空白はクォーツなしで、動作します。
DS-5のアップデートリリースの入手について
DS-5のアップデートリリースは、ARM社のWebサイトよりダウンロード可能です。
https://silver.arm.com/browse/DS500
このアップデートは、最新のコンパイラおよび、リンカ、アセンブラ、 fromelf、およびarmarの実行可能形式と、インクルードファイルおよびC / C++ ライブラリから構成されています。
サポートされるOSプラットフォーム
Windows XP Professional SP3 (32-bit only)(非推奨) Windows Server 2012 (64-bit only) Windows Server 2008 R2 (非推奨) Windows 7 Enterprise Edition SP1 Windows 7 Professional Edition SP1 Windows 8.1 (64-bit) RedHat Enterprise Linux 6 Desktop and Workstation option, Standard RedHat Enterprise Linux 5 Desktop and Workstation option, Standard (非推奨) Ubuntu Desktop Edition 14.04 LTS (64-bit only) Ubuntu Desktop Edition 12.04 LTS (非推奨)
Linux の場合
Installer/setup.shを実行し、画面の指示に従ってください。
インストールされたいくつかのツールが32bitシステムライブラリに依存します。
ARM Compiler 5.06 update 1 を64-bit Linuxホストプラットフォームで使用するとき、32-bit互換のライブラリがインストールされていることを確認してください。 32-bit互換ライブラリがインストールされていない場合、ARM Compiler 5.06 update 1 ツールは、ライブラリが見つからず実行が失敗するあるいはエラーをレポートします。インストールに必要なライブラリは、ご使用のプラットフォームで管理者権限で適切なコマンドを実行して確認してください。
Red Hat
yum install glibc.i686
Ubuntu
apt-get install lib32stdc++6
Windows の場合
Installersetup.exeを実行し、画面の指示に従ってください。
32-bitのインストーラのみ提供されます。ツールパッケージは、64-bitホストプラットフォーム向けに、個別に64-bit版のarmlinkを含むバイナリセットを含みます。詳細は、ドキュメンテーションをご参照ください。
ドキュメンテーションについて
ARM Compiler v5.06リリースシリーズの以下ドキュメントが利用可能です。
- armar User Guide
- armasm User Guide.
- armcc User Guide.
- armlink User Guide.
- fromelf User Guide.
- ARM C and C++ Libraries and Floating-Point Support User Guide.
- Errors and Warnings Reference Guide.
- Getting Stated Guide.
- Migration and Compatibility Guide.
- Software Development Guide.
これ以上の情報は、ARM InfocenterのARM Compiler 5 documentationをご参照ください。
v5.06 update 1での全般的な変更
- [SDCOMP-29957]組込み関数__sync_*ファミリは、以前はコンパイル時に[maroon]--gnu[/maroon]が指定されGNUモードのときのみ利用可能でした。これらは、すべての言語モードで利用可能となりました。
v5.06 update 1 で修正された不具合
Compiler(armcc)
- [SDCOMP-29910] Cortex-Mプロセッサ以外の全てのプロセッサでコンパイルされるとき、ARM Compiler 5.06 (build 20)は__irqキーワードで修飾される関数で正しくないコードを生成しました。生成されたコードは、全てのレジスタを保存するのではなく、AAPCSで保持することが求められているレジスタのみを保存していました。これは修正されました。
- [SDCOMP-29862] 特定の条件で、後のコードで下位32bitのみ使用されるとき、コンパイラは、64-bit volatile変数の上位半分のロードに失敗することがありました。
- [SDCOMP-29798] -O3 -Otimeを使用する特定の条件で、コンパイラは誤って、等式あるいは比較演算子の結果をintの代わりにunsinged intとして取り扱うことがありまいた。これは修正されました。
- [SDCOMP-29797] -O3 -Otimeを使用する特定の条件で、戻り値を受け取る式がより大きな整数型を持つとき、コンパイラは符号付整数を返す関数の戻り値の符号拡張に失敗することがありました。
- [SDCOMP-29796] -O3 -Otimeを使用する特定の条件で、コンパイラは誤って、多次元配列における要素の値が、初期値から変化しないものと想定することがありました。これは、正しくないコードをもたらすことがありました。これは修正されました。
- [SDCOMP-29795] -O1以上が指定されたまれな条件で、コンパイラは、後に続くフラグをリードする命令で必要となるフラグを壊す、フラグをセットする命令が誤って使用されるコードのシーケンスを生成することがありました。これは修正されました。
- [SDCOMP-29794] インライン関数あるいはインラインクラスメンバ関数内のstatic変数がセクション属性を持つとき、この属性が無視され、変数は属性によって与えられる名前から異なる名前でセクションへ配置されることがありました。これは、Internal faultを同様に起こすことがありました。これは修正されました。
- [SDCOMP-29767] -O3 -Otimeを使用する特定の条件で、C99指示付きの初期化子が使用されるとき、コンパイラは正しくないコードを生成することがありました。これは修正されました。
- [SDCOMP-29585] -O3 -Otimeを使用する特定の条件で、コンパイラは、ループカウンタが最も内側のループの中で代入文の一部として使用される入れ子形ループを処理するとき、正しくないコードを生成することがありました。これは修正されました。
- [SDCOMP-29487] -O3 -Otimeを使用する特定の条件で、コンパイラは、ポインタをインクリメントしメモリアクセスを行うループで正しくないコードを生成することがありました。これは修正されました。
- [SDCOMP-29431] 特定の条件において、コンパイラは、部分的に構造体を初期化するとき、初期化定数のリードオンリーのデータと関連した #pragma arm section指令を無視することがありました。これは修正されました。
- [SDCOMP-29383]例外がディスエーブルで、クラスメンバー用の中括弧の初期化リストを含んでいる C++11コードをコンパイルするとき、コンパイラはInternal faultを起こすことがありました。これは修正されました。
Libraries
- [SDCOMP-29799] %Cと%hフォーマット指定子を使用するとき、C++ライブラリ関数strftime()が、正しくない結果を生成することがありました。これは修正されました。
その他の不具合
- [SDCOMP-29876] 特定の条件で、ファイルが非常に古いタイムスタンプを保持するファイルシステム内のファイルの場合、コンパイラは正しくないError: C9558E: System clock tampering detected.を生成し、ライセンスのチェックアウトに失敗することがありました。これは修正されました。