090124

|



DROのが一区切りしたところで(まだ旋盤へのスケールの装着という大作業が残っ
ているけれど)、開発機のH8/3052用のロムモニタを作りはじめました。今迄、
ルネサスのモニタを使っていたのだけど、コンパイルするのに秋月のコンパイ
ラを使うのでWindowsで作業しないといけないし、もっと自由自在にいろいろフッ
クしたいし、カーネルが共通になるので、テストプログラムはオーバーレイの
形にできればロード時間が短かくてうれしい。ということで。

メモリに余裕はないので、モトローラSフォーマットのローダで。これはロード すべきアドレスとそのデータを延々とつなげて、最後にスタートアドレスが入 るという形で、ほとんどメモリを占拠せずにロードができる。
このローダをどこに置くかだけれど、.textはROMなのでいくらでも置ける。 .dataと.bssとスタックは外部拡張RAMの一番上の4KBに入れました。
ここでちょっとはまった。今迄スタックは常に内部RAMに置いていた。しかし外 部RAMに置いたことで、外部RAMを有効にする処理をスタックを使う前にしない といけなかったのだ。
そして、外部拡張RAMが8bit3ステートアクセスなのが、また問題に。外部拡張 RAMに.text、スタックともに置くと、ポーリングでもシリアルを取りこぼして しまう。3倍遅いからね...。なんとか本番の.textは内部ROM(16bit 2ステート アクセス)の状態では115200bpsでも問題ないので一安心。
後は割込みベクタの引き渡しだ。