AVR-StudioでH8クロスアセンブラを使う

2001/09/25更新


2001/09/25
 ちょっと手直しして、H8Tinyフラットキットに付属(2000円で別売もあり)しているCクロスコンパイラも使用できるようにしてみました。修正版はここです。
 アーカイブにはアセンブラ版とCコンパイラ版の設定ファイルが両方入っています。実際に使うときは[kickasm.ini]にリネームして下さい。

 とりあえずサンプルプログラム[Ctest.c]のコンパイルとリンクはできています。サンプルのままだとリンクでライブラリファイルが見つからないと言われるので、ライブラリファイルをフルパスで指定するように[Ctest.sub]ファイルを修正しました。それ以外はそのままです。

 何か問題がありましたら、メールか掲示板でお知らせ下さい。

2001/09/21
 秋月のH8Tinyキットに付属しているクロスアセンブラとリンカを、Atmel社がフリーで提供している統合開発環境AVR-Studioから使えるようにしてみました。

 AVR-Studioはもともとサードパーティー製のアセンブラやコンパイラも使えるように考えられていて、プロジェクト毎にアセンブラの実行ファイルを設定できるようになっています。しかし、H8クロスアセンブラAsm38を設定しても引数の順番が全く違うため、アセンブルすることができません。
 そこで、AVR-Studioからは一旦別なプログラムを呼び出し、そのプログラムで引数を並び替えてAsm38を呼び出すようにすれば、正しくアセンブルできるようになるのではないか?と考えました。

 パラメータの受け渡しを行うために作成したのが、このプログラムです。アーカイブを解凍したら、適当なフォルダへkickasm.exeと設定ファイルkickasm.iniを一緒に入れて下さい。あとはAVR-StudioのProject Setting->Assmbler locationでそのパスを指定しておけばOKです。


 プロジェクトにH8アセンブラのソースファイルを読み込み、そのファイルを右クリックしてAssembler entry fileに設定した後、F7キーを押せば自動的にアセンブルとリンクが行われます。
 アセンブル中にエラーが発生した場合は、リンクは行われません。


 アセンブル&リンクが正しく行われない場合は、Asm38.exeとLnk.exeがパスの通ったフォルダに置かれているかどうかを確認して下さい。パスが通っていないとアセンブラとリンカの実行ファイルが発見できず、処理が中断してしまいます。

 アセンブル中にエラーが発生した場合は、Project Outputウィンドウのエラー行をダブルクリックすることで、エラー行へ自動的にジャンプする事が出来ます。


 アセンブラとリンカの実行ファイル名および引数の並びについては、kickasm.iniファイルで設定するようになっています。
 設定を変更すれば、H8クロスアセンブラ以外のアセンブラを呼び出したり、アセンブル時のオプションを指定する事ができます。

[ASM]
ASSEMBLER = ASM38.EXE
ASMLIST_01 = @11
ASMLIST_02 = -CPU=300HN

 [ASM]セクションのASSEMBLERキーに設定されている値が、アセンブラの実行ファイル。その後のASMLIST_01〜ASMLIST_20が引数のリストです。引数リストに'@'+数字を設定すると、その場所にAVR-Studioから呼び出された時の、対応する引数が入ります。
 AVR-Studioからアセンブラを呼び出すときの、11番目の引数にはソースファイル名が入ります。従って'ASMLIST_01 = @11'は、Asm38の一番目の引数にソースファイル名を指定するという事になります。

[LNK]
LINKER = LNK.EXE
LNKLIST_01 = @11.OBJ

 '@'+数字+拡張子の形で引数を指定すると、拡張子を付け替えてアセンブラまたはリンカへ引き渡します。従って'LNKLIST_01 = @11.OBJ'は、ソースファイル名の拡張子を取って代わりに'.OBJ'を付けた名前ということになります。 

戻る
メインへ戻る


mailto:[tokoya][at][mars.dti.ne.jp]