TOP > ソフトウェア > AKI-H8/3052F用モニタプログラムの作り方「設定編」
 ■ 設定

 ルネサステクノロジよりダウンロードしてきたファイルを、自分の使いたいCPU用に設定を書き直さなければ動きません。設定の変更方法は、過去に日立のサイトで公開されていた方法を使います。
 しかし、現在のファイルは新しい物であり、前の方法が全て通用するわけではありません。設定変更するファイルは、「batフォルダ」に入れた「MONITOR.SUB」の内容を変更するだけなので、そんなに難しくはありませんので、ご安心を。


 ▼ ステップ1

まず、全ての行は使わないので、削除してしまってください。

 次に、ダウンロードしたフォルダ内の、存在する全てのファイル名を「MONITOR.SUB」へ書き込む訳ですが、最終的には以下の文を入力することになります。

INPUT monitor
INPUT       cmd02,      cmd04,cmd05,cmd06,cmd07,cmd08,cmd09,cmd10
INPUT cmd11,      cmd13,cmd14,      cmd16,cmd17,      cmd19,cmd20
INPUT cmd21,            cmd24,cmd25,      cmd27,cmd28,      cmd30
INPUT cmd31,cmd32,cmd33,cmd34,cmd35,cmd36,cmd37,cmd38
INPUT dmy01,dmy03,dmy12,dmy15,dmy18,dmy23,dmy26,dmy29,dmy39,dmy41
INPUT mod01,mod02,mod03,mod04,mod05,mod06,mod07,mod08,mod09,mod10
INPUT mod11,mod12,mod13,mod14,mod15,mod16,mod17,mod18,mod19,mod20
INPUT mod21,mod22,mod23,mod24,mod25,mod26,mod27,mod28,mod29,mod30
INPUT mod31,mod32,mod33,mod34,mod35,mod36,mod37,mod38,mod39
INPUT advanced
INPUT cpu01,cpu02,cpu03,cpu04
 これらの名前はなんなのか説明していきます。

cmdXXというファイル名の物は、「ADVCMDフォルダ」
dmyXXというファイル名の物は、「ADVDMYフォルダ」
modXXというファイル名の物は、「ADVMODフォルダ」
advancedというファイル名の物は、「ADVSRCフォルダ」
cpu0Xというファイル名の物は、「ADVTIPフォルダ」の対象CPUフォルダ

 このようになっています。つまり、それぞれのフォルダ内のファイル名を書き出して行けば良いという訳です。簡単ですね。

 また、各種ファイルは読みやすいように、10個ずつに区切っています。
ところで、「ADVTIPフォルダ」の対象CPUフォルダとは何の事かというと、3052Fを使うなら「3052フォルダ」、3048Fを使うなら「3048フォルダ」という事です。

 HEWバージョンの違うファイルは微妙に違うので、ダウンロードしたファイルごとに上記のファイル名は変更してください。基本的に上記のファイル名を変更するだけで動くようです。


 ▼ ステップ2 通信速度設定

 次に「DEFINE $BRR(19)」という行を入れます。これはモニタプログラムにデータ転送する時のシリアル通信スピードを設定する部分です。19という数字の部分がそうです。この部分にはビットレートの数字を16進数で変換した値を入れる必要があります。 以下に、搭載クリスタルが16MHzと25MHz時の表を掲載します。
ビットレート16MHz25MHz
960051(33)80 (50)
1920025(19)40 (28)
3840012(0c)19 (13)
576008(08)13 (0d)
1152003(03) 6 (06)
※()内の数字は16進数変換された数字です。
57600以降の設定は計算によって求めた物であり、3048Fの動作は未確認です。

 詳しくは、H8/3052のハードウェアマニュアルには、410ページ(13.2.8 ビットレートレジスタ)に記載されています。上記の表に当てはまらない場合はこちらを参照してください。
 また、計算方法は、412ページに記載されています。

今回は38400bpsに設定するので、「13」を記入します。
ビットレート25MHz
3840019 (13)
※AKI-H8/3052は25MHzなので、「13」です。

DEFINE $BRR(13)

 ▼ ステップ3 スタックポインタ設定

 次の行はSPを設定する部分です。「DEFINE $STACK(0FFFF00)」

 今回は内臓RAMを使用するので、上記の設定で問題ありません。ただし決まり事として、ここの値も16進数です。先頭のアドレスがアルファベットの場合は0を追加しないといけないそうです。

本当ならH'FFFF00
   ↓
0FFFF00


 ▼ ステップ4 出力ファイルの設定

 次に以下の2行を追加してください。
PRINT MONITOR.MAP
OUTPUT MONITOR.ABS


 ▼ ステップ5 各種アドレスの設定

 いよいよ、最後の行がやってきました。次の2行が終われば設定は完了です。

VECTOR(0),ROM(100),RAM(20FE84),USER(200000),SCI(0FFFFB0)
EXIT


VECTOR(0) : CPUの先頭アドレス
ROM(100) : プログラムの先頭アドレス
RAM(20FE84) : ユーザベクトル領域を除いたRAM領域
USER(200000) : ユーザベクトル領域
SCI(0FFFFB0) : シリアルポートを決める部分

上記の設定を次のように変更します。

※AKI-H8/3052の設定(内臓RAM領域が8KBのため)
RAM(0FFDF10) : この部分に各種設定が書き込まれます。内臓RAMの先頭アドレスを設定。
USER(0FFE000) : ユーザーのプログラムを実行する先頭アドレスを設定します。
SCI(0FFFFB8) : SCI1の方を使うことになるので、チャンネル1に設定。

※AKI-H8/3048の設定(内臓RAM領域が4KBのため)
RAM(0FFEF10) : この部分に各種設定が書き込まれます。内臓RAMの先頭アドレスを設定。
USER(0FFF000) : ユーザーのプログラムを実行する先頭アドレスを設定します。
SCI(0FFFFB8) : SCI1の方を使うことになるので、チャンネル1に設定。

※SCI0で通信したい場合は、SCI(0FFFFB0)に設定。

 これで、全ての設定は終了なのですが、Cygwin配布以前の秋月製Cコンパイラを使用している方は、次の設定も忘れずに行ってください。


 ▼ ステップα 秋月の製Cコンパイラを使用している場合の追加修正

 Cygwin配布以前の秋月製Cコンパイラを使っている場合、困った事にこのままモニタプログラムを作成しても、 チェックサムエラーが出てしまい、プログラムを実行できません。
この修正は一箇所だけなので、最初に作られる方はこのままお付き合いください。

修正するのは、「300hmoniフォルダ」内の「ADVCMDフォルダ」の中にある「CMD24.SRC」です。
この100行目辺りに「BNE ERR11 ; Check Sum Error」という部分があります。

NOT.B R6H ; Test Check Sum
BNE ERR11 ; Check Sum Error

この「BNE」を「BRN」に変更してください。こうすることで、チェックサムエラーが出なくなります。

NOT.B R6H ; Test Check Sum
BRN ERR11 ; Check Sum Error

これで、設定は本当に終了です。お疲れ様でした。m(_ _)m


 ▼ Final File


INPUT monitor
INPUT       cmd02,      cmd04,cmd05,cmd06,cmd07,cmd08,cmd09,cmd10
INPUT cmd11,      cmd13,cmd14,      cmd16,cmd17,      cmd19,cmd20
INPUT cmd21,            cmd24,cmd25,      cmd27,cmd28,      cmd30
INPUT cmd31,cmd32,cmd33,cmd34,cmd35,cmd36,cmd37,cmd38
INPUT dmy01,dmy03,dmy12,dmy15,dmy18,dmy23,dmy26,dmy29,dmy39,dmy41
INPUT mod01,mod02,mod03,mod04,mod05,mod06,mod07,mod08,mod09,mod10
INPUT mod11,mod12,mod13,mod14,mod15,mod16,mod17,mod18,mod19,mod20
INPUT mod21,mod22,mod23,mod24,mod25,mod26,mod27,mod28,mod29,mod30
INPUT mod31,mod32,mod33,mod34,mod35,mod36,mod37,mod38,mod39
INPUT advanced
INPUT cpu01,cpu02,cpu03,cpu04
DEFINE  $BRR(13)
DEFINE  $STACK(0FFFF00)
PRINT   MONITOR.MAP
OUTPUT  MONITOR.ABS
START   VECTOR(0),ROM(100),RAM(0FFDF10),USER(0FFE000),SCI(0FFFFB8)
EXIT
以上のようになっていればOKです。


履歴 2005年 4月 3日 通信速度設定に追加 2005年 4月 3日 公開 2005年12月15日 印刷しやすい様にレイアウトを修正

[TOP] [ソフトウェア] [準備編へ] [設定編へ] [作成編へ] [実行編へ] [ハイパーターミナル編へ] [HTerm編へ]
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送