チュートリアル - 組込みソフトウェア入門(旧)

このチュートリアルは、C/アセンブリの基本知識をお持ちの方を対象としております。更に、Altium Designer 内では、含まれている TASKING 概要についても詳細説明はありません。このチュートリアルでは、エンベデッドプロジェクトにソースファイルの追加や作成そしてどの様に組込みアプリケーションを構築するかが記載されています。更にエンベデッドプロジェクトは、FPGA プロジェクトのサブプロジェクトとして扱われる為、ソフトプロセッサコアや実行ファイルを FPGA デバイスへダウンロードするする方法も記載されています。

このチュートリアルでは、C ソース内に Hello World のプログラムを使用したサンプルプロジェクトを使用します。他のサンプルプロジェクトは、Altium Designer インストールディレクトリ内の\Examples\NanoBoard Common\Processors Examples フォルダにありますのであわせてご参照ください。

組込みソフト開発ツール

Altium Designer に含まれる TASKING 組込みソフト開発ツールでは、TSK51x/TSK52x、TSK80x、TSK165x、PowerPC、TSK3000、MicroBlaze、Nios II と ARM などのソースコード記述、コンパイル、アセンブル、リンクといった工程を実行できます。下記図は、TASKING のツールセットのフローと各工程の入力と出力ファイルをあらわしています。

C コンパイラ、アセンブラ、リンカ、デバッガやライブラリアンは、対象のプロセッサコアに依存しています。図内で太字名は、ツールの実行されるツール名です。Substitute target with one of the supported target names, for example, cppc is the PowerPC C compiler, c3000 is the TSK3000 C compiler, as165x is the TSK165x assembler, etc.

ツールセットの概要

下記は、TASKING ツールセットにより使用されるファイルタイプのリストです。

拡張子

説明

ソース ファイル

 

.c

C コンパイラに入力される C ソースファイル

.asm

コード化された アセンブラ ソースファイル

.lsl

リンカ スクリプト ファイル

生成されるソースファイル

 

.src

マクロを含まない C コンパイラにより生成される アセンブラ ソースファイル

オブジェクト ファイル

 

.obj

Relocatable object file, generated by the assembler

.lib

Archive with object files

.out

Relocatable linker output file

.abs

IEEE-695 or ELF/DWARF 2 absolute object file, generated by the locating part of the linker

.hex

Absolute Intel Hex object file

.sre

Absolute Motorola S-record object file

List files

 

.lst

Assembler list file

.map

Linker map file

.mcr

MISRA-C report file

.mdf

Memory definition file

Error list files

 

.err

Compiler error messages file

.ers

Assembler error messages file

.elk

Linker error messages file

表1: ファイル拡張子

エンベデッドプロジェクトの作成

Altium Designer では、まず最初にプロジェクトの作成が必要です。プロジェクトを作成することでソースドキュメントの管理や実行ファイルなどの生成を行うことができます。組込みソフトのためには、エンベデッド プロジェクトの作成が必要になります。

新規でエンベデッド プロジェクトの作成方法

  1. メニューより、ファイル»新規»プロジェクト»エンベデッド プロジェクト を選択します。もしくは、Files パネルの 新規作成 欄で Blank Project (Embedded) をクリックします。もし、Files パネルが表示されていない場合は、Files タブをクリックしてパネルを表示させます。
  2. プロジェクトパネル内に 新規プロジェクトファイル Embedded_Project1.PrjEmb が表示されます。
  3. ファイル»プロジェクトに名前を付けて保存 を選択し、プロジェクト ファイル名を変更します(拡張子は、.PrjEmb)。保存先のディレクトリを指定し、ファイル名欄に GettingStarted.PrjEmb と入力し、保存 ボタンを押します。

プロジェクトに新規ソースファイルの追加

プロジェクトに新規ソース ファイル (C や アセンブリなどテキストファイル) を追加する場合は、下記手順を実行します。

  1. Projects パネル内で、GettingStarted.PrjEmb を右クリックし、新規ドキュメントをプロジェクトに追加»C File を選択します。Projects パネル内の エンベデッド プロジェクトの下にある Source Documents に新しい C ソースファイル (Source1.C) が追加されます。ソースコード入力する為にテキストエディタが同時にワークスペース上に開かれます。C ファイルではなく、Assembly File を選択した場合は、新しいテキスト ファイルが選択されます。
  2. 必要に応じてソースコードを入力します。このチュートリアルでは、下記コードを入力します。
\#include void printloop(void) { int loop; for (loop=0; loop<10; loop++) { printf("%i\n",loop); } } void main(void) { printf("Hello World!\n"); printloop(); }
  1. ファイル»名前を付けて保存 を選択し、ファイルを保存します。保存先のディレクトリを指定し、ファイル名欄に hello.c と入力し、保存 ボタンを押します。
  2. Projects パネル内 GettingStarted.PrjEmb を右クリックし、プロジェクトの保存 を選択してプロジェクトを保存します。

現在、Altium Designer の画面はこのようになっているでしょうか。

プロジェクトに既存ソースファイルの追加

プロジェクトに既存ソース ファイルを追加する場合は、下記手順を実行します。

  1. Projects パネル内でプロジェクト名を右クリックし、既存ドキュメントをプロジェクトに追加 を選択します。Choose Documents to Add to Project ダイアログが起動します。
  2. プロジェクトに追加したいファイルを選択し、開く ボタンをクリックします。
  3. Projects パネル内でソースファイルが追加されリスト表示されます。ファイル名上をダブルクリックすることでテキストエディタが開き、ファイルを表示したり編集したりすることができます。
  4. プロジェクトを保存します。(Projects パネル内でプロジェクト名を右クリックし、プロジェクトの保存 を選択します)

エンベッデドプロジェクトのオプション設定

Altium Designer 内のエンベデッドプロジェクトには、関連するオプションのセットがあります。プロジェクトファイルを追加後、本チュートリアルでは、hello.c というようにアプリケーションを記述後、次のステップでは組込みアプリケーションの構築プロセスに移ります。

  • デバイスの選択 (関連するツールセットが選択されます)
  • ツールセットのオプション設定 (例えば、C コンパイラ、アセンブラ、リンカオプションなど)
    対象のツールセット毎に異なるオプションが用意されています。

デバイスの選択

エンベデッド プロジェクトの構築の最初には、デバイスの選択を行う必要があります。

  1. Projects パネル内で GettingStarted.PrjEmb を右クリックし、プロジェクト オプション を選択します。また、メニューから実行する場合は、プロジェクト»プロジェクト オプション を選択します。エンベデッド プロジェクトの為のオプション設定ダイアログが表示されます。
  2. コンパイラ オプション タブ内の デバイス を選択します。メーカベースやデバイスベースで選択ができます。メーカベースでデバイスを選択する場合は、自動的に適切なプロセッサが表示されるので選択します。デバイスベース (Generic) で選択する場合は、手動で対象のプロセッサを選択する必要があります。
    手動で対象プロセッサを選択する場合 (Generic から選択する場合)
  3. 左欄内の Processor を展開し、Processor Definition を選択します。
  4. 右欄内の General を展開し、Select processor を対象のプロセッサに設定します。
  5. OK をクリックします。

ツールオプションの設定

エンベデッド プロジェクトに含まれる全てのファイルを対象にしたオプションや特定ファイルに対するオプション設定が可能です。

プロジェクトに関わるオプション設定

  1. Projects パネル内で GettingStarted.PrjEmb を右クリックし、プロジェクト オプション を選択します。もしくは、プロジェクト»プロジェクト オプション を選択します。Options for Embedded Project ダイアログが表示されます。
  2. 左欄の C Compiler を展開します。C コンパイラの設定ページが複数あります。それぞれのツールエントリの Miscellaneous ページでは、Command line オプションでどのようにコマンドラインのオプションに変換されるかを示すことに注意してください。
  3. 右欄では、必要に応じて値などのオプションを設定してください。必要に応じて全てのページで設定を行ってください。
  4. アセンブラとリンカにおいても、手順 2 と 3 を繰り返し行います。
  5. OK をクリックし、新しい設定が確定します。
    エンベデッド プロジェクト オプションを元に、Altium Designer は、組込みアプリケーションを構築する為に使用する makefile を生成します。

ドキュメント毎のオプション設定

  1. Projects パネル内 hello.c を右クリックし、ドキュメント オプション を選択します。もしくは、プロジェクト»ドキュメント オプション を選択します。Options for Document ダイアログが表示されます。
    プロジェクトに関わるオプション設定の手順 2 から 5 を実行します。The Files With Options tab in the Options for Embedded Project dialog shows which files have deviating settings. If you right-click on a file in this tab, a menu provides you with functions to copy options quickly from and to other individual files.

組込みアプリケーションの構築

組込みアプリケーションの構築の準備が出来ました。

  1. プロジェクト»Compile Embedded Project GettingStarted.PrjEmb を選択、もしくは ボタンをクリックします。
    TASKING プログラム ビルダがコンパイル、アセンブル、リンクを実行し、以前に実行されたファイルを置き換えます。結果として実行ファイル GettingStarted.abs が生成されます。
  2. アウトプット Paneru でビルドの結果を見ることができます。(表示»ワークスペース パネル»System»アウトプット)

一つのソースファイルをコンパイル

一つのソースファイルをコンパイルする手順を以下に示します。

  1. ファイル (hello.c) を右クリックし、Compile Document hello.c を選択します。もしくは、対象となるテキストエディタを開いた状態で プロジェクト»Compile Document hello.c を選択します。
  2. コンパイル中に 表示»ワークスペース パネル»System»Messages を選択することでエラーなどが Message パネルで表示されます。もしくは、Panel タブで System»Messages を選択します。
  • ソースファイルのエラーを修正し、プロジェクト ファイルを保存します。

アプリケーションの再構築

組込みアプリケーションを再構築したい場合は、再コンパイルを実行します。

  1. プロジェクト»Recompile Embedded Project GettingStarted.PrjEmb を選択します。
  2. TASKING プログラム ビルダは、コンパイル、アセンブル、リンクなど無条件に全てのファイルを置き換えます。
    生成された実行ファイル GettingStarted.abs を使用してデバッグを行うことができます。

組込みアプリケーションのデバッグ

組込みアプリケーション構築時に、シミュレータを使用し、実行ファイルでデバッグを行う事ができます。

デバッグを開始するには、1つもしくはそれ以上のソールを実行する必要があります。

  • ソースレベルもしくは命令レベルのステップ実行が可能です。その際は、デバッグ»ステップインステップオーバー を選択するか、デバッグ»実行 を選択することでシミュレーションによりデバッグが可能です。青ラインは、現在実行中の行を示しています。

レジスタやローカル変数、メモリ、ブレークポイントなど詳細情報をモニタしたい場合は、ワークスペース内でパネルを開きデバッグ可能です。

  • 表示»ワークスペース パネル»Embedded»(各パネル) を選択します。

デバッグ セッションの終了は、

  • デバッグ»デバッグ終了 を選択します。

ブレークポイントの設定

ファイルを開いている場合、ブレークポイントを設定できます。ブレークポイントを設定した行に青いポイントが表示されます。

  • クリックする毎にブレークポイントのOn/Offが切り替わります。

ブレークポイントの行は、赤い×マークが表示されます。

ブレークポイントのプロパティを変更する場合は、

  • ブレークポイントを右クリックし、ブレークポイントのプロパティ を選択します。

ブレークポイントの有効/無効の設定を行うには、

  • ブレークポイントを右クリックし、 Disable Breakpoint (もしくは現在、ブレークポイントがディセーブルの場合は、Enable Breakpoint) を選択します。ブレークポイントを無効にするとマークが緑色になります。

ブレークポイント パネルは、全てのブレークポイント (無効のものも含む) のプロパティを含め表示します。

  • 表示»ワークスペース パネル»Embedded»ブレークポイント を選択します。

評価とウォッチ

The way an expression is evaluated, depends strongly on the amount of debug information in the object file. Also the optimization level influences the ease of debugging. You can examine the value of expressions in the Evaluate panel.

  1. Open the Evaluate panel by selecting View»Workspace Panels»Embedded»Evaluate.
  2. In the edit field enter the expression you want to evaluate and click Evaluate. The expression and its value appear below in the Evaluate panel. Click on the Evaluate button every time the variable in the code is modified.
    To watch an expression continuously, you can set a watch:
  3. Select Add Watch
    The new expression and its value appear in the Watches panel. The values in the Watches panel are updated continuously when the code is executing.
    Alternatively: Select Debug»Add Watch; enter an expression and click OK.

Viewing output

It is possible to view the output generated by your embedded application. Remember, you must be in debugging mode. To open the Output panel:

  • Select View»Workspace Panels»System»Output.

The Output panel opens showing the output of the embedded application.

Viewing memory

It is possible to view the contents of the memory. You can open several memory windows. Remember, you must be in debugging mode. The type of memory windows you can open, depends on the selected target processor.

To open for example the Main memory window:

  1. Select View»Workspace Panels»Embedded»Main. The Main memory window opens showing the contents of the memory.
  2. In the edit field you can specify the address you want to start viewing from.

さらに

You are reporting an issue with the following selected text and/or image within the active document: