組込みソフトウェア入門
このチュートリアルでは、Altium Designerを使って組込みプロジェクトを作成する方法を説明します。
TutorialTU0122 (v2.0) April 21, 2008
このチュートリアルはCとアセンブラのプログラミングの経験があり、組込みソフトウェアの基本的な知識がある方を対象として作成されています。 このチュートリアルはAltium Designerに含まれる組込み開発用ツールであるTASKINGツールの概要に続き、組込みプロジェクトへ新規または既存のソースファイルを追加、編集、ビルドする方法を説明します。 組込みソフトウェアプロジェクトは、一般にFPGAプロジェクトのサブプロジェクトとして使用され、ビルド後にFPGAデバイスにダウンロードされ実行されます。
このチュートリアルで使用する例題はCのHello Worldプログラムです。 他のサンプルは、 \Examples\NanoBoard Common\Processors Examples フォルダに保存されています(インストールされたフォルダからの相対パス)。
組込みソフトウェアツール
Altium DesignerのTASKINGでは、TSK51x/TSK52x、TSK80x, TSK165x、PowerPC、TSK3000、MicroBlaze、Nios II、ARMなどをターゲットにして、アプリケーションを作成/コンパイル/アセンブル/リンクすることができます。
なお、アルティウムの組込みソフトウェア開発ツールセット、TASKINGで使用するファイルの種類は次のとおりです。
拡張子 | 説明 |
---|---|
ソースファイル |
|
.c | C ソースファイル |
.asm | ユーザの作成したアセンブラ・ソースファイル |
.lsl | リンカ・スクリプトファイル |
ツールにより生成されるソースファイル |
|
.src | Cコンパイラにより作成されるアセンブラ・ソースファイル(マクロを含まない) |
オブジェクトファイル |
|
.obj | アセンブラより出力されるリロケータブル・オブジェクトファイル |
.lib | オブジェクトファイルのアーカイブ |
.out | リンカで作成されるリロケータブルファイル |
.abs | リンカの一部であるロケータで作成されるIEEE-695 または ELF/DWARF 2 アブソリュート・オブジェクトファイル |
.hex | インテルHexフォーマットのアブソリュート・オブジェクトファイル |
.sre | モトローラSフォーマットのアブソリュート・オブジェクトファイル |
リストファイル |
|
.lst | アセンブラ・リストファイル |
.map | リンカ・マップファイル |
.mcr | MISRA C レポートファイル |
.mdf | メモリ定義ファイル |
エラーリストファイル |
|
.err | コンパイラ・エラーメッセージファイル |
.ers | アセンブラ・エラーメッセージファイル |
.elk | リンカ・エラーメッセージファイル |
表1: ファイル拡張子
組込みプロジェクトの作成
Altium Designerを使用するにはまずプロジェクトを作成する必要があります。 プロジェクトにより、ソースファイルや出力されたファイルを楽に管理することができます。 組込みソフトウェアの場合Embedded Software projectを作成する必要があります。
組込みソフトウェアプロジェクトを作成するには:
1.メニューからFile » New » Project » Embedded Project を選択するかFilesパネルのNewの項目でBlank Project (Embedded)をクリックします。 このパネルが表示されていない場合は、デザイン・マネージャパネルの下にあるFilesタブをクリックしてください。
2. Projectsパネルが新規のプロジェクトファイルEmbedded_Project1.PrjEmbを表示します。
3. File » Save Project Asを選択して、新規のプロジェクトファイル(拡張子.PrjEmb)の名称を変更します。 ハードディスク内のプロジェクトの保存先を指定します。ファイル名GettingStarted.PrjEmbを入力し、Saveをクリックします。
新しいソースファイルをプロジェクトに追加
あたらしいソースファイル(C、アセンブラ、その他のテキストファイル) をプロジェクトに追加するには下記の手順で行います。
アセンブラファイルの時はC Fileの変わりに Assembly File 、テキストファイルのときは Text Documentを選択してください。1. ProjectsパネルのGettingStarted.PrjEmbを右クリックして、Add New to Project » C Fileを選択します。 新しいCソースファイルSource1.CがProjects パネル内の Source Documentsというフォルダの下で、Embedded Software projectに追加されます。 テキストエディタが開き入力ができる状態になります。
2.必要なソースコードを入力します。 このチュートリアルでは下記のコードを入力します。
#include <stdio.h> void printloop(void) { int loop; for (loop=0; loop<10; loop++) { printf("%i\n",loop); } } void main(void) { printf("Hello World!\n"); printloop(); }
3. File » Save Asを選択して、ソースファイルを保存します。ハードディスク内の適当な場所に移動し、ファイル名を入力する場所にhello.cとタイプしてSaveをクリックします。
4. Projects パネルでプロジェクトGettingStarted.PrjEmbを右クリックし、Save Projectでプロジェクトを保存します。
プロジェクトは次のように表示されます。
既存のファイルをプロジェクトに追加
既存のファイルをプロジェクトに追加するには下記の手順で行います。
1. Projectsパネルでプロジェクト名を右クリックし、Add Existing to Projectを選択。Choose Documents to Add to Projectダイアログが表示されます。
2.追加したいファイルを選択し、Openをクリックします。
3.ソースファイルがプロジェクトに追加され、Projectsパネルに表示されます。 ファイル名をダブルクリックするとテキストエディタでファイルの中身を確認したり編集したりすることができます。
4.プロジェクトを保存します。(Projectsパネルのプロジェクト名を右クリックしSave Projectを選択します。
組込みプロジェクトオプションを設定する
Altium Designerの組込みプロジェクトには組込みプロジェクトの一式があります。 プロジェクトにファイルを追加しアプリケーションを作成 (この例ではhello.c)したら、次のステップでプロジェクトをビルドします。
- デバイス(ターゲットプロセッサ)の選択(その結果としてのツールセットの選択)
- ツールセット内のCコンパイラ、アセンブラ、リンカなどのツールオプションを指定 (異なるツールセットは異なるオプションを持つことがあります)。
デバイス(ターゲットプロセッサ)の選択
組込みプロジェクトでは、最初に組込みプロジェクトをビルドしようとするデバイスを指定する必要があります。
1. ProjectsパネルのGettingStarted.PrjEmbを右クリックして、Project Optionsを選択します。 または、Project » Project Optionsをメニューから選択します。
Options for Embedded Project ダイアログが表示されます。
2. Compiler OptionsタブでDeviceを選択します。 製造ベンダに基づいて選択できます。互換製品を選ぶこともできます。 製造ベンダからデバイスを選んだ場合は、正しいプロセッサタイプが自動的に選択されます。 互換製品を選んだ場合は、ターゲットプロセッサのタイプは手入力してください。
ターゲットプロセッサのタイプを手入力は、以下のとおりです(互換デバイス)。
3.ダイアログ左側のProcessor の項目を広げProcessor Definitionを選択します。
4.パネルの右側のGeneralを広げ、Select processor でターゲットプロセッサを選択します。
5. OKをクリックして、新しいデバイスを選びます。
ツール・オプションの選択
プロジェクト内のファイルに共通なオプションとファイル毎のオプションを設定することが出来ます。
プロジェクト内のファイルに共通のオプション
1. ProjectsパネルのGettingStarted.PrjEmbを右クリックして、Project Optionsを選択します。 または、Project » Project Optionsをメニューから選択します。
Options for Embedded Project ダイアログが表示されます。
各ツールの MiscellaneousページのCommand line optionsフィールドでオプションの設定がどのようにコマンドラインに変換されたか確認することができます。
2.パネルの左側のC Compilerを広げます。 ここには、いくつかのページがあり、Cコンパイラの設定ができます。
3.ダイアログの右側で各オプションの値を設定します。 これをすべてのページで行います。
4.アセンブラとリンカも2 と3 を繰り返し設定します。
5.設定が終了したらOK をクリックします。
Altium Designerは組込みプロジェクトのオプションに基づき、組込みアプリケーションをビルドするときに使用されるmakefileを作成します。
個々のファイルのオプション
1. Projectsパネルのhello.cを右クリックして、Document Optionsを選択します。 または、Project » Document Optionsをメニューから選択します。 Options for Document ダイアログが表示されます。
ステップ2から5まではプロジェクト・オプションと同じです。 Options for Embedded ProjectのFiles With Optionsタブで、どのファイルがプロジェクト・オプションと違う設定をしているか表示されます。 このオプションタブのファイル名を右クリックすると、個々のファイルに設定したオプションを他のファイルにコピーしたり、削除したりすることのできるメニューが表示されます。
組込みアプリケーションのビルド
以上でビルドの準備ができました。
1. Project » Compile Embedded Project GettingStarted.PrjEmb を選択するか、 ボタンをクリックします。
TASKING プログラム・ビルダは組込みプロジェクト内で、時間が無効か、前回のビルドから変更があったファイルのコンパイル、アセンブル、リンクとロケートを行います。 生成されるファイルはアブソリュート・オブジェクトファイルGettingStarted.absです。
2. Output パネル(View » Workspace Panels » System » Output)にビルド結果が表示されます。
Compiling a single source file
単一のソースファイルをコンパイルしたいときは下記の手順で行います。
1.コンパイルしたいソースファイル(hello.c)名を右クリックしCompile Document hello.c を選択するか、テキストエディタを開いてProject » Compile Document hello.cを選択します。
2.Messages パネルを開いて、コンパイル中に発生したコンパイル・エラーを確認します。View » Workspace Panels » System » Messagesを選択するか、System » MessagesをPanelsから選択します。
3.エラーがあれば修正し、ファイルを保存します。
プロジェクト全体のリビルド
個々のファイルの日付と無関係に組込みプロジェクト全体をビルドしたいときは下記の手順で行います。
1. Project » Recompile Embedded Project GettingStarted.PrjEmbを選択します。
2.TASKING プログラム・ビルダは組込みプロジェクトのすべてのソースファイルのコンパイル、アセンブル、リンクとロケートを行います。
以上でオブジェクトファイルGettingStarted.absのデバッグを行うことができます。
組込みアプリケーションのデバッグ
組込みプロジェクトのビルドが終了したら、完成したアブソリュート・オブジェクトファイルをシミュレータでデバッグすることができます。
デバッグを開始するには、1つまたはそれ以上のソース行を実行しなくてはなりません。
- ソースレベルまたはインストラクションレベルのstepオプション(Debug » Step Into, Step Over) を選択し、ソースをステップさせるか、Debug » Runを選択して、シミュレーションの起動します。
青の行は現在の実行位置を表します。
レジスタ、ローカル変数、メモリ、ブレークポイントをなど調べるパネルを開くには、
- View » Workspace Panels » Embedded » ({}a_panel(パネルの名前) )を選択します。
デバッグを終了するには
- Debug » Stop Debuggingを選択します。
ブレークポイントの設定
ソース行が開かれている状態でブレークポイントを設定することができます。 ブレークポイントを設定することのできる行には小さい青い点が表示されています。
- ソース行の左の余白をクリックすることでブレークポイントをオン/オフすることができます。
ブレークポイントには赤い十字の入った丸印が表示され行が赤でマークされます。
ブレークポイントのプロパティを変更するには、
- ブレークポイントを右クリックしてBreakpoint Properties...を選択します。
ブレークポイントを無効(disable)、または有効(enable)にするには、
- ブレークポイントを右クリックしDisable Breakpoint (Disableされているときは Enable Breakpoint)を選択します。
Disableされているブレークポイントは緑でマークされます。
Breakpoint PanelでDisableされているブレークポイントも含めすべてのブレークポイントとそのプロパティを確認することができます。
- View » Workspace Panels » Embedded » Breakpointsを選択します。
式の評価
Evaluate パネルを使用して式の評価を行うことができます。
1. View » Workspace Panels » Embedded » Evaluateを選択しEvaluateパネルを開きます。
式の評価方法はオブジェクトファイルに含まれるデバッグ情報の量に大きく依存します。 また、最適化のレベルはデバッグのやりやすさに大きく影響します。2.左上の入力欄に評価したい式を入力してEvaluateをクリックします。
式とその値がEvaluate パネルに表示されます。 コード中の変数が変更されるたびにEvaluateボタンをクリックします。
式を連続してウォッチするには、watchを設定してください。
3. Add Watchを選択します。
新しい式とその値がWatches パネルに表示されます。 Watchesパネルの値が、コードの実行に従って連続的に更新されます。
もうひとつの方法:: Debug » Add Watchを選択し、式を入力してOKをクリックします。
出力の確認
組込みアプリケーションによって生成された出力を表示することができます。 必ずデバッグモードになっている必要があります。 Output パネルを開くには、
- View » Workspace Panels » System » Outputを選択します。
Output パネルが開き、組込みアプリケーションの出力が表示されます。
メモリの確認
デバッグモードではいくつかのメモリ・ウインドウを開きメモリの内容の確認をすることができます。 必ずデバッグモードになっている必要があります。 開くことのできるメモリ・ウインドウは選択しているターゲット・プロセッサにより異なります。
プログラムメモリ・ウインドウを開く手順は以下のとおりです。
1. View » Workspace Panels » Embedded » Mainを選択します。
Program Memory windowが開きコード・メモリの内容を表示します。
2.一番上の編集フィールドに確認したいメモリの先頭アドレスを入力します。