Skip to main content

IAR Embedded Workbench for Arm 9.70.x

デバイスサポート

このセクションの内容:

製品開発を問題なく開始できるように、IAR製品のインストールには、広範囲のデバイス固有のサポートが提供されています。

注記

コンパイラが生成するオブジェクトコードは、コア間でバイナリレベルで互換性があるとは限りません。そのため、プロセッサを指定する必要があります。デフォルトコアはCortex-M3です。

32 ビット Arm デバイス

Armv4、Armv5、Armv6、Armv7、およびArmv8 世代に属するほとんどのコアおよびデバイスはサポートされています(Armv8.1-Mを含む)。

Arm アーキテクチャプロファイル

Armv7以降、Armアーキテクチャは3つのarchitectural profilesで構成されています。

  • Aプロファイル、AArch32と互換性のあるCortex-Aシリーズで実装されているapplicationプロファイル。

  • Rプロファイル、Cortex-Rシリーズで実装されるreal-timeプロファイル。

  • Mプロファイル、Cortex-Mシリーズのほとんどのコアで実装されるmicrocontrollerプロファイル。

32-bit Arm プロパティ
  • 32 ビットArmデバイス(Mプロファイル以外)には、 ユーザーモード、割り込み(FIQ, IRQ) モード、スーパーバイザーモードなどのCPU モードがあります。

  • 32ビットArmデバイスには、3つの命令セットがあります(すべてのコアには3つの命令セットはありません)。

    • Thumb (T)、16ビットワイド命令。コンパクトなコードに使用。

    • Arm (A32)、32ビットワイド命令。より速いコードに使用。

    • Thumb-2 (T32)、Thumb命令セット用に拡張した32ビットワイド命令。

  • アドレスは常に32ビットです。

  • レジスタセットは、13個の汎用32ビットレジスタから構成されます。

  • 32ビットArmデバイスには、VFP(ベクタ浮動小数点)やSIMD(シングルインストラクションの複数のデータ)などのコプロセッサがあります。コプロセッサには、16個の64ビットレジスタと32個の128ビットレジスタがあります。

  • 32ビットArmデバイスは、オブジェクトおよびイメージフォーマットとして、32ビットELFを使用します。

64 ビット Arm デバイス

  • Armv8.4-A以前のアーキテクチャをベースにした64ビットArmデバイス、およびArmv8-R AArch64をサポートしています。

  • Armv8-A/R 世代は2つの実行状態を定義します。AArch32およびAArch64です。(一部のコアは、両方の実行状態をサポートしていません。)

AArch32実行状態

32ビットAAarch32実行状態はArmv7-Aアーキテクチャと互換性があり、同じCPUモード、命令セット、レジスタセットなどがあり、VFPおよび高度なSIMDがあります。この実行状態では、CPUは常に32ビットモードで実行します(例外モード参照)。

AArch64実行状態
  • AArch64 は、4つのレベルの権限をサポートしています。

    • EL0、例外レベル0、ユーザーモード。

    • EL1、実行レベル1、OSモード。

    • EL2、例外レベル2、ハイパーバイザーモード。オプション。

    • EL3、実行レベル3、安全なモニターモード。オプション。

    CPUは高いELから低いELにトラバースすることができ、その間にAArch64からAArch32の実行状態に変更できます。

  • AArch64状態では、CPUは常に64ビットモードで実行します。例外モードを参照してください。

  • Arch64は、32ビット命令がある1つの命令セット、A64をサポートします。

  • アドレスは常に64ビットです。

  • レジスタセットは、31個の64ビットワイド汎用レジスタがあります。

  • A VFPおよびNEONモジュールは常に表示されます。モジュールには、128 ビットワイドの32個のレジスタがあります。

  • AArch64の定義されたデータモデルが3つあります。

    • ILP32。32ビットのlongおよびポインタ型、および32ビットwchar_t型があります。オブジェクトおよびイメージフォーマットとして、32ビットELFを使用します。

    • LP64。64ビットのlongおよびポインタ型、および32ビットwchar_t型があります。オブジェクトおよびイメージフォーマットとして、64ビットELFを使用します。

    • LLP64。32ビットのlong型、64ビットポインタ型、および16ビットwchar_t型があります。IAR Embedded Workbench for Armではこのデータモデルをサポートしていません

    注: ILP32データモデルを使用しているAArch64の生成したコードは、LP64データモデルを使用して生成したコードとリンクできません。AArch32とAArch64の生成されたコードは、どちらもともにリンクできません。

定義済みサポートファイル

IAR製品のインストールには、さまざまなデバイスをサポートするための定義済ファイルが含まれています。追加のファイルが必要な場合は、既存のファイルをテンプレートとして使用することにより、作成できます。

I/Oヘッダファイル

標準の周辺ユニットは、デバイス専用のI/Oヘッダファイル(拡張子はh)で定義されています。製品パッケージには、リリース時に入手可能なすべてのデバイス用のI/Oファイルが付属しています。これらのファイルは、arm\inc\<vendor>ディレクトリにあります。該当するインクルードファイルをアプリケーションのソースファイルにインクルードしてください。追加のI/Oヘッダファイルが必要な場合は、既存のヘッダファイルをテンプレートとして使用することにより、作成できます。ヘッダファイルの形式について詳しくは、arm\docディレクトリのEWARM_HeaderFormat.pdfを参照してください。

デバイス記述ファイル

デバッガは、使用可能なメモリエリア、周辺レジスタおよびこれらのグループの定義など、いくつかのデバイス固有の要件を、デバイス記述ファイルを使用して処理します。これらのファイルは、arm\configディレクトリにあり、そのファイル名拡張子はddfです。周辺レジスタおよびそのグループは、個別のファイル(ファイル名拡張子sfr)で定義できます。これは、ddfファイルに含まれています。これらのファイルの詳細については、arm\docディレクトリにあるデバイス記述ファイルの修正およびEWARM_DDFFORMAT.pdfを参照してください。

開発を開始するためのサンプルプロジェクト

アプリケーションのサンプルはIAR Embedded Workbenchに同梱されています。これらのサンプルを使用して、IARの開発ツールを使用する準備を行えます。また、これらのサンプルを基にして、アプリケーションプロジェクトを開始することもできます。

サンプルは現状のまま提供されます。既製のワークスペースファイルが、ソースコードファイルおよび関連する他のすべてのファイルとともに提供されます。サンプルプロジェクトを実行する方法については、サンプルプロジェクトの使用を参照してください。