【ビルドの役割】
MPLAB IDEで入力したプログラムの「ソースファイル」をアセンブルまたはコンパイルして
実行可能な「オブジェクトファイル」を生成する作業を「ビルドする」と言います。
ビルドを実行すると一連の流れでソースファイルからオブジェクトファイルが生成されます。
このときの流れは作成したプログラムが単純な1つのファイルで構成されているか
リロケータブルな複数のファイルで構成されているかにより変わってきます。
【単純なプログラムの場合】
単純なプログラムの場合というのは、アセンブラ言語の場合1つのファイルで構成されていて
絶対アドレスで構成されているものをいいます。
この場合のビルド作業の流れは下記のように実行されます。
(1) 入力したソースファイルをMPASMでアセンブルし、直接オブジェクトファイルを
生成する。
このとき生成されるオブジェクトファイルは2種類で、プログラマで書き込むための
HEX形式(インテルヘキサ形式)のファイルと、シミュレーションデバッグに使うための
CODファイルです。
(2) CODファイルでシミュレーションデバッグをする
シミュレータを使ってパソコン上でPICをシミュレートしてデバッグする。大部分の
デバッグがシミュレータで可能なので、まずこのシミュレーションデバッグを使う。
(3) HEXファイルをプログラマでPICに書き込む
HEXファイルから直接プログラマが書き込みます。
アセンブルに使用したり、アセンブルした結果生成されるファイルには、上記のオブジェクト
ファイル以外に下記のようなファイルがあります。
拡張子 ファイル名称 ファイル内容 .inc インクルードファイル ヘッダーファイルで、SFRの名称定義や
コンフィギュレーションのパラメータが定義されている.lst リストファイル アセンブラがアセンブルした結果の内容を表示
したリストファイルで、プログラムメモリ内容がわかる.err エラーファイル アセンブラが検出したエラーのリスト .hex
.hxl
.hxhHEXファイル
(インテルヘキサ)アセンブラが生成したオブジェクトファイル
プログラマで書き込むためのファイル.xrf クロスリファレンスファイル アセンブラが生成したクロスリファレンスのファイル .cod シンボルでデバッグ用ファイル シンボルリストとデバッグ用の情報ファイル .cof デバッグ用ファイル リロケータブルの場合にMPLINKが生成する
デバッグ用ファイル.o リロケータブルオブジェクト
ファイルアセンブラが生成するリロケータブルな
オブジェクトファイル
【リロケータブルな場合】
複数のファイルに分割してリロケータブル形式のソースファイル記述とすることで、
それぞれ独立に記述しアセンブルしたあと、リンカを使ってひとつのプログラムとして
構成することができます。
リロケータブルなソースプログラムの作り方は、MPASMの「リロケータブルな書き方」の
ページを参照して下さい。
この場合のビルドの流れは下図のようになります。
(1) リロケータブル形式のソースファイルを作成し、それぞれアセンブルする
まず複数のリロケータブルなソースファイルを作成し、それらをアセンブルします。
このとき作成されるオブジェクトはリロケータブルオブジェクトで拡張子が「.O」と
なります。
(2) リンカーでリンクする
このあとMPLINKのリンカーが、それぞれのリロケータブルオブジェクトと、指定されて
いれば、ライブラリ内の指定されたプログラムをひとつに結合して、実行オブジェクトと
デバッグ用オブジェクトを生成します。
(3) 生成されたデバッグ用オブジェクトでシミュレーションデバッグを行います。
まずはシミュレーションでデバッグします。
(4) できあがった実行ファイルをプログラマを使ってPICに書き込みます。
【ライブラリの作成方法】
上記で使用することができるライブラリは、MPLIBというライブラリアンを使って独自の
ライブラリを作成することも可能です。
この場合には、複数のリロケータブルなオブジェクトを登録することが可能で、
使う場合には、指定されたプログラムだけが自動的に選択されてリンクされるように
なっています。
MPLIBの使い方は、MPLIBがコマンドラインプログラムとなっていますので、
Windowsのアクセサリ内にある、「コマンドプロンプト」を使って起動します。
(1)MPLIBの扱うファイル
まずMPLIBがライブラリとして扱うのは、MPASM,MPASMWIN,MPLAB-C
が生成する、「リロケータブルオブジェクトを対象とします。(拡張子.o)
(2)実行方法
MPLIBはコマンドプロンプトで下記コマンドで実行する必要があります。
実行のコマンドは下記フォーマットです。
mplib [/q] /{ctdrx} LIBRARY [MEMBER・・・・]
LIBRARY:MPLIBで生成するライブラリファイルの名前
拡張子は .lib となります
MEMBER :ライブラリ化するオブジェクトファイル
(拡張子は .o)
(3)q,c,t,d,r,xのパラメータの意味は下記。
Option
機能、動作
/q quiet mode
実行中何も表示しないという指定/c create library
ライブラリファイルの新規作成の指定
組み込む中身はMEMBERで指定する/t list member
LIBRARYに含まれているMEMBERの
リストを作成する。/d delete member
指定したLIBRARYから指定したMEMBER
を削除する。指定したMEMBERが含まれて
いない時は何も変化なし/r add/replace member
指定したMEMBERをLIBRARYに追加する
既にMEMBERが含まれている時は置き換える/x extract member
指定したMEMBERを取り出す
指定MEMBERが無い時は全部を取り出す
《コマンド例》
下記はコマンドの実例です。
mplib /c dsp.lib fft.o fir.o iir.o
fft.o と iir.o という2個のオブジェクトファイルをライブラリ化
して、dsp.lib という名前のライブラリを作成する。