開発環境について

PUPPYにはCコンパイラ,アセンブラ,リンカが付属しています。・・・が開発環境はあるもののどれをどのように使用すればいいのか筆者も含めマイコン初心者の方にはとっつき難いところもあると思います。ここでは自分のプログラムをビルドする(マイコンに書き込む形のファイルを作る)のに最低限必要な豆知識について書きたいと思います。より高度な操作をお求めの方は付属のマニュアルをご覧ください。注:コンパイラ等のマニュアルはPUPPY\TOOL\Manualの中にあります

図1

図1はPUPPY付属の開発環境のイメージを表したものです。ユーザプログラムはC言語、アセンブリ言語で記述することができ、マイコンに書き込む形式のhktファイルを作成するためにコンパイラ,アセンブラ,リンカ,コンバータを通します。PUPPYのサンプルプログラムをビルドする際にmake.batを実行するように取扱説明書で書きましたが、このmake.batを実行すると表1のような流れでPUPPYのサンプルプログラムをビルドするのに必要な一連の作業をワンタッチで行うことができます。

main.c コンパイル main.obj リンク puppy.abs
acrobat.c コンパイル acrobat.obj
init.c コンパイル init.obj コンバート
sci.c コンパイル sci.obj
start.c アセンブル start.obj puppy.hkt

表1

make.batは右クリックしてコンテキストメニューの中から[編集]をクリックすると中身を見ることができます。(リスト1)

リスト1 make.batの中身

make.batの中身について簡単に説明していきます。

3行目:コンパイラ・リンカ・アセンブラのある場所を指定します。make.batを実行した現在のディレクトリは\PUPPY\SAMPLEの中なので、相対パスで..\..\TOOL\binの位置になります。

5行目:コンパイラ[ch38.exe]を起動します。

コンパイラオプションについては\PUPPY\TOOL\manualの中にあるコンパイラユーザーズマニュアルの[1.2コンパイラオプション]に詳しく載っています。

6行目:コンパイルエラーが発生した場合、37行目の:ERRORにジャンプします。

17行目:アセンブラ[asm38.exe]を起動します。ファイル名の後はコンパイラ同様、アセンブラオプションです。クロスアセンブラシステムユーザズマニュアルの[クロスアセンブラ編-4.オプション一覧]に詳しく載っていますのでそちらをご覧ください。

20行目:リンカ[link.exe]を起動します。 -sub=puppy.sub はリンカオプションの一種でpuppy.subに書かれているものがリンカオプションになります。puppy.subについては後ほど触れます。

23行目:コンバータ[abs2hkt.exe]を起動してリンカが出力したabsファイルを書込み形式ファイルhktに変換します。

25〜29行目:コンパイラやアセンブラが出力したobjファイルはリンクが完了した時点で必要がなくなるので消去します。

33行目:コンパイル、アセンブル、リンクの各段階でエラーが発生した場合、エラーが発生した旨表示しビルド情報が書かれているerr.txtをdos画面上に表示します。

38行目:PAUSE で処理を一時ストップし、ユーザからのキー入力を待ちます。

次にpuppy.subについてです。puppy.sub(リスト2)の中にはリンカオプションが書かれています。

リスト2

1行目:リンクするobjファイルを指定する。

3行目:デバッグ情報を出力する。

4行目:リンカの出力ファイル名をPUPPY.absとする。

5行目:リストファイルを出力する。

6行目:ライブラリファイルを指定する。

7行目:ROM領域の初期化データを変更できるように同一サイズのRAM領域を確保

8行目:セクション先頭アドレス/結合順序の指定

9行目:リンカ終了

リンカオプションについて詳しくはクロスアセンブラシステムユーザーズマニュアルの[リンケージエディタ編-2.オプション/サブコマンド]をご覧ください。

ココまでがPUPPYのサンプルプログラムをビルドする際のmake.bat,puppy.subの中身です。自分の作ったプロうグラムをビルドする場合、最初のうちはバッチファイル(make.bat)やサブファイル(puppy.sub)の中身を自分の作ったソースファイル名等に変更するなどして、慣れてきたら自分なりにカスタマイズして使うと良いと思います。