Skip to main content

IAR Embedded Workbench for Arm 9.70.x

ビルドプロセス—概要

このセクションの内容:

このセクションでは、ビルドプロセスの概要について説明します。つまり、個々のビルドツール(コンパイラ、アセンブラ、リンカ)がどのように組み合わさり、ソースコードから実行可能イメージに移行するかについて説明します。

実際のプロセスをより理解できるように、IARインフォメーションセンタで使用できるチュートリアルをご覧ください。

変換プロセス

アプリケーションソースファイルを中間オブジェクトファイルに変換するツールはIDEに2つあります。C/C++ コンパイラとIAR アセンブラです。これらのいずれも、デバッグ情報用のDWARFフォーマットを含む、業界標準のフォーマットELFで再配置可能オブジェクトファイルを生成します。

注記

コンパイラは、Cソースコードをアセンブラソースコードに変換するときにも使用できます。必要に応じて、オブジェクトコードにアセンブルできるアセンブラソースコードを修正できます。IARアセンブラの詳細については、『アセンブラのユーザードキュメント』を参照してください。

以下の図は、変換プロセスを示しています。

Compiling 70 percent.png

変換後は、任意の数のモジュールを1つのアーカイブ、つまりライブラリに圧縮することができます。 ライブラリを使用する重要な理由は、ライブラリの各モジュールが条件付きでアプリケーションにリンクされるということです。すなわち、オブジェクトファイルとして提供されたモジュールによって直接的または間接的に使用されるモジュールのみアプリケーションに含まれることになります。また、ライブラリを作成してから、IARユーティリティiarchiveを使用することもできます。

リンク処理

IARコンパイラおよびアセンブラにより生成されるオブジェクトファイルおよびライブラリの再配置可能モジュールは、そのまま実行することはできません。これらが実行可能なアプリケーションとなるには、リンクが必要です。

注記

別のベンダのツールセットにより生成されたモジュールもビルドに含めることができます。ただし、AEABI準拠でない場合、同じベンダのコンパイラユーティリティライブラリが必要な点に注意してください。

最終的なアプリケーションのビルドには、IAR ILINKリンカ (ilinkarm.exe) が使用されます。通常は、リンカは入力として以下の情報が必要になります。

  • いくつかのオブジェクトファイル、場合によっては特定のライブラリ

  • プログラムの開始ラベル(デフォルトで設定)

  • ターゲットシステムのメモリ内でのコードおよびデータの配置を記述したリンカ設定ファイル

以下の図は、リンク処理を示しています。

Link process 70 percent.png

注記

標準のC/C++ライブラリには、コンパイラ用およびC/C++標準ライブラリ関数の実装用のサポートルーチンが含まれています。

リンク中、リンカはエラーメッセージおよびログメッセージをstdoutおよびstderrに生成することがあります。このログメッセージは、アプリケーションがなぜそのようにリンクされたかを理解する場合、たとえば、モジュールが含まれた理由やセクションが削除された理由を理解するときに役に立ちます。

リンクプロセスの詳細については、リンクプロセスの詳細を参照してください。

リンク後

IAR ILINKリンカは、実行可能イメージを含むELFフォーマットの絶対オブジェクトファイルを生成します。リンク後、生成された絶対実行可能イメージは以下のことに使用できます。

  • IAR C-SPYデバッガ、またはELFやDWARFを読み取るその他の互換性のある外部デバッガへのロード。

  • フラッシュ/PROMプログラマを使用したフラッシュ/PROMへのプログラミング。これを実現するには、イメージの実際のバイトを標準のMotorola 32-bit S-recordフォーマットまたはIntel Hex-32フォーマットに変換する必要があります。この変換には、ielftoolを使用します(IAR ELFツール — ielftool参照)。

以下の図は、絶対出力ELF/DWARFファイルで可能な使用方法を示します。

Elf output 70 percent.png