アプリケーションプロジェクトの作成
新しいプロジェクトの設定
ワークスペースの作成
新しいプロジェクトの作成
プロジェクトへのファイルの追加
プロジェクトオプションの設定
アプリケーションのコンパイルとリンク
ソースファイルのコンパイル
リストファイルの表示
アプリケーションのリンク
マップファイルの表示
このチュートリアルでは、IAR Embedded Workbench®統合開発環境(IDE)について説明します。チュートリアルでは典型的な開発サイクルのデモを行い、コンパイラとリンカを使用して、使用しているデバイス向けの小さなアプリケーションを作成する方法を示します。ここでは、開発サイクル、ワークスペースの作成、Cソースファイルを含むプロジェクトの設定、アプリケーションのコンパイルとリンクについて説明します。
新しいプロジェクトの設定
IDEを使用すると、高度なプロジェクトモデルを設計できます。まずワークスペースを作成します。ワークスペースには、1つ以上のプロジェクトを追加します。アプリケーションプロジェクトとライブラリプロジェクトのそれぞれについて、すぐに利用できるプロジェクトテンプレートが用意されています。プロジェクトには、ソースファイルがまとめられたグループを階層的に作成できます。また、プロジェクトには、1つ以上のビルド構成を定義できます。プロジェクトモデルの設計について詳しくは、『ARM®用IDEプロジェクト管理およびビルドガイド』を参照してください。
このチュートリアルでは、使用するファイル数が非常に少ない単純なアプリケーションを扱っているので、高度なプロジェクトモデルを使用する必要はありません。
プロジェクトを作成する前に、ワークスペースを作成する必要があります。
ワークスペースの作成
最初の手順では、チュートリアルアプリケーション用の新しいワークスペースを作成します。IDEを初めて起動したときは、既製のワークスペースが開いているので、それをチュートリアルプロジェクト用に使用できます。そのワークスペースを使用する場合は、この最初の手順は無視してください。
ファイル>新規作成>ワークスペースを選択します。プロジェクトを作成してワークスペースに追加する準備はこれで完了です。
新しいプロジェクトの作成
チュートリアルに必要なファイルはすべてarm\tutorディレクトリにあります。tutorディレクトリをprojectsディレクトリにコピーしてください。
Note: チュートリアルを開始する前に、arm\tutorディレクトリからすべてのファイルをコピーした場合、projectsディレクトリにはプロジェクトファイルがすでに存在しています。この既成のファイルを使用することも、独自のファイルを作成することもできます。
1
新しいプロジェクトを作成するには、プロジェクト>新規プロジェクトの作成を選択します。新規プロジェクトの作成ダイアログボックスが表示されます。このダイアログボックスでは、プロジェクトテンプレートを使用して、新しいプロジェクトを作成できます。
2
ツールチェーンドロップダウンリストから、使用しているツールチェーンを選択し、[OK]をクリックします。
3
このチュートリアルでは、プロジェクトテンプレート空のプロジェクトを選択します。このプロジェクトは、デフォルトのプロジェクト設定を使用する空のプロジェクトを単純に作成します。
4
標準の名前を付けて保存ダイアログボックスが表示されるので、プロジェクトファイルを保存する場所、つまり新しく作成したprojectsディレクトリを指定します。ファイル名ボックスに「project1」と入力して、保存をクリックし、新しいプロジェクトを作成します。
[ワークスペース]ウィンドウにプロジェクトが表示されます。
デフォルトで2つのビルド構成が作成されます。DebugとReleaseです。このチュートリアルではDebugだけを使用します。ビルド構成は、ウィンドウ上端のドロップダウンメニューから選択します。プロジェクト名にアスタリスクが付いている場合は、そのプロジェクトが変更され、その変更が保存されていないことを示します。
Note: このチュートリアルでは、printfライブラリ関数を呼び出します。この関数では、C-SPYシミュレータで機能する低レベルのwrite関数を呼び出します。実際のハードウェアでリリース構成のチュートリアルを実行する場合、ご使用のハードウェアに適合した独自のwrite関数を用意する必要があります。
プロジェクトファイル(ファイル拡張子ewp)が、projectsディレクトリに作成されます。このファイルはすぐには作成されず、後でワークスペースを保存するときに作成されます。このファイルには、ビルドオプションなど、プロジェクト固有の設定に関する情報が保存されます。
5
ファイルをプロジェクトに追加する前に、ワークスペースを保存してください。ファイル>名前を付けてワークスペースを保存を選択して、ワークスペースファイルを保存する場所を指定します。このチュートリアルでは、新しく作成したprojectsディレクトリに保存します。ファイル名ボックスに「tutorials」と入力して、保存をクリックし、新しいワークスペースを作成します。
ワークスペースファイル(ファイル拡張子eww)が、projectsディレクトリに作成されます。このファイルには、ワークスペースに追加するすべてのプロジェクトがリストされます。ウィンドウの配置やブレークポイントなど、現在のセッションに関する情報は、projects\settingsディレクトリに作成されるファイルに保持されます。
プロジェクトへのファイルの追加
このチュートリアルでは、Tutor.cUtilities.cの2つのソースファイルを使用します。
*
Tutor.cアプリケーションは、C言語の標準関数だけを使用した単純なプログラムです。配列をフィボナッチ数列の最初の10個の数値で初期化して、結果をstdoutに出力します。
*
Utilities.cアプリケーションには、フィボナッチ数列を計算するためのユーティリティルーチンが含まれています。
複数のグループを作成すると、ソースファイルをプロジェクトの必要性に応じて論理的に分類し、編成することができます。ただし、このプロジェクトでは2つのファイルしか使用しないので、グループを作成する必要はありません。複雑なプロジェクト構造の作成方法の詳細については、「ARM®用IDEプロジェクト管理およびビルドガイド」を参照してください。
1
[ワークスペース]ウィンドウで、ソースファイルの追加先としてグループかプロジェクトを選択します。この例では、直接プロジェクトに追加します。
2
プロジェクト>ファイルの追加を選択して、標準の参照ダイアログボックスを開きます。Tutor.cUtilities.cの2つのファイルを探して、ファイル選択リストで選択します。開くをクリックして、それらのファイルをproject1プロジェクトに追加します。
プロジェクトオプションの設定
次に、プロジェクトオプションを設定します。アプリケーションプロジェクトの場合、ノードのすべてのレベルでオプションを設定できます。まず、このチュートリアルのプロセッサ構成に合せて一般オプションを設定します。一般オプションはビルド構成全体で同一である必要があるので、プロジェクトノードで設定する必要があります。
1
[ワークスペース]ウィンドウでプロジェクトフォルダアイコン[プロジェクト1 - デバッガ]を選択して、[プロジェクト]>[オプション]を選択します。
一般オプションカテゴリのターゲットオプションページが表示されます。
以下の設定が使用されていることを確認します。
2
カテゴリリストでC/C++ コンパイラを選択して、コンパイラのオプションページを表示します。
3
 
レベル: なし
リストファイルの出力
アセンブラニーモニック
4
[OK]をクリックして、指定したオプションを設定します。
これで、プロジェクトをビルドする準備ができました。
アプリケーションのコンパイルとリンク
次は、アプリケーションをコンパイルして、リンクします。また、コンパイラリストファイルとリンカマップファイルが表示されます。
ソースファイルのコンパイル
1
Utilities.cをコンパイルするには、[ワークスペース]ウィンドウでそのソースファイルを選択します。
2
プロジェクト>コンパイラを選択します。
別の方法として、ツールバーのコンパイルボタンをクリックするか、[ワークスペース]ウィンドウで選択したファイルを右クリックして表示されるコンテキストメニューでコンパイルコマンドを選択することもできます。
進捗状況は、[ビルド]メッセージウィンドウに表示されます。
3
同じ方法でTutor.cをコンパイルします。
IDEによって、プロジェクトディレクトリに新しいディレクトリが作成されます。現在はビルド構成Debugを使用しているため、Debugディレクトリが作成され、その下にListObjExeの各サブディレクトリが作成されます。
*
Listディレクトリには、リストファイルが保存されます。リストファイルの拡張子はlstです。
*
Objディレクトリには、コンパイラとアセンブラが生成したオブジェクトファイルが保存されます。オブジェクトファイルの拡張子はoであり、ILINKリンカの入力として使用されます。
*
Exeディレクトリには、実行可能ファイルが保存されます。実行可能ファイルの拡張子はoutであり、IAR C-SPY®デバッガの入力として使用されます。このディレクトリは、オブジェクトファイルをリンクするまでは空であることに注意してください。
[ワークスペース]ウィンドウでプラス記号をクリックして、ツリーを展開します。[ワークスペース]ウィンドウにはIDEによって作成された出力フォルダのアイコンが表示されています。このフォルダには、生成された出力ファイルが保存されます。同様に、インクルードされているすべてのヘッダファイルも表示され、ファイル間の依存関係を示しています。
リストファイルの表示
ここでコンパイラリストファイルを開いて、これから説明するように最適化レベルを変更して生成されるコードサイズが受ける影響を調べるにあたって、その内容がどのように自動更新されるかに注目します。
1
[ワークスペース]ウィンドウでリストファイルUtilities.lstをダブルクリックして開きます。リストファイルを開きます。以下に示す情報が記述されています。
*
ヘッダには、製品バージョン、ファイル作成日時、使用されたコンパイラオプションのコマンドラインバージョンが記述されています。
*
リストファイルの本体には、文ごとに生成されたアセンブラコードとバイナリコードが記述されています。さらに、さまざまなセクションへの変数の割当ても示されます。
*
リストファイルのフッタには、スタック、コード、データの必要メモリ量の他、エラーメッセージやワーニングメッセージが生成された場合はそれらのメッセージが記述されます。
ファイルの最後に生成されたコードの量が記述されているので注意してください。ファイルは開いたままにしておきます。
2
ツール>オプションを選択してIDE オプションダイアログボックスを開き、エディタタブをクリックします。更新ファイルをスキャンオプションを選択します。このオプションは、リストファイルなど、エディタウィンドウで開かれているファイルの自動更新を有効にします。
[OK]ボタンをクリックします。
3
[ワークスペース]ウィンドウでUtilities.cファイルを選択して、右クリックしてコンテキストメニューを開き、オプションを選択して、C/C++ コンパイラのオプションのダイアログボックスを開きます。継承した設定をオーバライドオプションを選択します。最適化タブをクリックして、最適化のレベルとしてを選択します。[OK]をクリックします。
[ワークスペース]ウィンドウで、ファイルノードで優先されるオプションが赤い点で示されていることに注意してください。
4
Utilities.cファイルをコンパイルします。ここで、次の2点に注目します。最初に、更新ファイルをスキャンオプションが選択されているために、開かれているリストファイルが自動更新されていることに注意してください。次にリストファイルのフッタを参照して、最適化レベルを高めたことによるコードサイズの変化に注意してください。
5
このチュートリアルでは、最適化レベルなしを使用するため、アプリケーションをリンクする前にデフォルトの最適化レベルに戻します。[ワークスペース]ウィンドウで選択したファイルを右クリックして、C/C++ コンパイラオプションダイアログボックスを開きます。継承した設定をオーバライドオプションを選択解除して、[OK]をクリックします。Utilities.cファイルを再コンパイルします。
アプリケーションのリンク
ここでは、リンカで使用するオプションを設定します。
1
[ワークスペース]ウィンドウでプロジェクトフォルダアイコンproject1 - デバッガを選択して、プロジェクト>オプションを選択するか、右クリックしてコンテキストメニューからオプションを選択します。続いて、カテゴリリストでリンカを選択して、リンカのオプションページを表示します。
このチュートリアルではデフォルトの出荷時設定を使用します。ただし、リンカ設定ファイルの選択には注意してください。
出力形式
リンカでは、ELF形式(デバッグ情報用のDWARFを含む)の出力ファイルを作成します。ELF形式ではなく、MotorolaまたはIntel-standard形式のファイルが必要な場合(ファイルをPROMメモリにロードする場合など)、ファイルを変換する必要があります。IAR Embedded Workbenchで提供される変換機能を使用できます。
リンカ構成ファイル
プログラムコードとデータは、リンカ設定ファイル(ファイル名拡張子icf)に基づいて、メモリに配置されます。セクションをメモリに配置する方法の構文について理解していることが重要です。
詳細については、『ARM®用IAR C/C++開発ガイド』を参照してください。
添付されたリンカコ設定ファイルの定義は、特定のハードウェアに依存しません。製品に付属するリンカコ設定ファイルのテンプレートは、シミュレータで使用する場合と同様に使用できますが、ターゲットシステムで使用するときに、実際のハードウェアメモリレイアウトに合せた調整が必要な場合があります。一部の評価ボードのリンカ設定ファイルは、src\examplesディレクトリにあります。
このチュートリアルでは、デフォルトのリンカ設定ファルを使用します。このファイルは、設定ページで参照できます。
リンカ構成ファイルを開く場合は、IAR Embedded Workbenchエディタなどの適切なテキストエディタを使用するか、ファイルの内容を印刷して、定義されている内容が要件に適合していることを確認します。あるいは、編集ボタンをクリックしてリンカ設定ファイルエディタを開きます。
リンカマップファイル
デフォルトでは、リンカマップファイルは生成されません。リンカマップファイルを生成するには、リストタブをクリックしてオプションリンカマップファイルの表示を選択します。
2
[OK]をクリックして、リンカオプションを保存します。
次に、オブジェクトファイルをリンクして、デバッグ可能なコードを生成します。
3
プロジェクト>作成を選択します。進捗状況は、[ビルド]メッセージウィンドウに表示されます。リンクした結果、Debug\Exeディレクトリにあるデバッグ情報付きのコードファイルproject1.outDebug\Listディレクトリにあるマップファイルproject1.mapが生成されます。
マップファイルの表示
ファイルproject1.mapを調べて、セクションがどのようにメモリに配置されるか確認してください。
マップファイルの詳細については、『ARM®用IAR C/C++開発ガイド』を参照してください。
これで、project1.outアプリケーションをC-SPYで実行する準備ができました。