トップページ | H8 | 開発環境 |
開発環境 | |
はっきり言ってしまうと、昔のMS-DOSで開発していた時代に逆戻りです。Visual C++などの統合環境からスタートした方はあまりの不便さに当惑するかもしれません。(^_^;) コマンドプロンプト(まるで昔のMSーDOSの世界ですね)でキャラクユーザータインターフェースによりキーボードを叩いて作業をします。 まずはフォルダーの作成します。 フォルダーは任意の名前でかまいません。 C:\akic とします。 このフォルダーにCコンパイラ、アセンブラ、リンカーなどファイルをコピーします。 次にパスをセットして、Cコンパイラなどがどこのフォルダーからも使えるようにPATHを設定します。PATHの設定はつぎのようになります。 set path=%PATH%;c:\h8\akic; これをコマンドプロンプトを起動した後に、キーボードから打ち込めばいいのですが面倒です。そこでこの内容をバッチファイルに記述して少ないキー入力ですませます。 当ホームページに公開しているサンプルプログラムにpt.batがあります。 pt とキー入力すればパスの設定がされます。 次はプログラムの作成についてです。 いちいちCコンパイラやアセンブラのキーインをするには面倒です。本当はmakeのようなものかあれば便利なのですが、前年ながらないようです。そこでバッチファイルを作成します。当ホームページに公開しているサンプルプログラムに収録してあるバッチファイルはcc.batです。内容は、 cc38h -cpu=300ha -include=c:\h8\akic MyOS.c a38h start.asm l38h -subcommand=MyH8.sub c38h MyH8 cc38h -cpu=300ha -include=c:\h8\akic MyOS.c CコンパイラでMyOS.cをコンパイルします。 -include=c:\h8\akicはインクルードファイル(拡張子が*.h)がどこにあるかをコンパイラに教えます。 a38h start.asm アセンブラでアセンブルします。 l38h -subcommand=MyH8.sub リンカーでコンパイラ、アセンブラで作成されたOBJファイルを結合して実行できる機械語にします。-subcommand=MyH8.subはリンクするファイルやどこのアドレスから始めるのかを指定します。MyH8.suの内容は、 OUTPUT MyH8 PRINT MyH8 INPUT start,MyOS LIB c:\h8\akic\c38hab START R(0FFDF10),P(200) ROM (D,R) EXIT OUTPUT MyH8 PRINT MyH8 は完成したプログラムの名称を書きます。何でもかまいません。 NPUT start,MyOS は必要なOBJファイルです。 LIB c:\h8\akic\c38hab はライブラリーの指定です。 秋月のキット付属のサンプルプログラムでは START R(0FFEF10),P(200),D(8000),C(9000) となっています。どういうことなのか調べてみました。 C(9000) Cで static const int g_nVal = 0; と定義したデータが指定ROMアドレスから配置される。 C(9000)を定義すると、 static const int ????がないエラーになる。 Cでプログラムを書くのに、データを特定アドレスに 指定する必要はないので不要である。 D(8000)はアセンブラで配置するアドレスの指定。 アセンブラで .SECTION D,DATA と指定する。Linkは問題ないが, ROM (D,R) でDを指定しないとROMデータができない。 とりあえず不要と思われるがつけておく。 R(0FFEF10)はRAMの先頭アドレスを指定。 .SECTION D,DATA などの記述とは関係ない。 P(200)はコードの先頭アドレス指定。 .SECTION P,CODE,ALIGN=2 と記述する。これをしないとRAM領域に配置されてしまう。 最終的に START R(0FFDF10),P(200) としました。 ROM (D,R) はリンカーが作成した機械語を、3052のフラッシュROMへRS-232Cで転送するためのテキストファイルを作成します。拡張子MOTファイルが作成されます。 |