DROのが一区切りしたところで(まだ旋盤へのスケールの装着という大作業が残っ
ているけれど)、開発機のH8/3052用のロムモニタを作りはじめました。今迄、
ルネサスのモニタを使っていたのだけど、コンパイルするのに秋月のコンパイ
ラを使うのでWindowsで作業しないといけないし、もっと自由自在にいろいろフッ
クしたいし、カーネルが共通になるので、テストプログラムはオーバーレイの
形にできればロード時間が短かくてうれしい。ということで。
メモリに余裕はないので、モトローラSフォーマットのローダで。これはロード すべきアドレスとそのデータを延々とつなげて、最後にスタートアドレスが入 るという形で、ほとんどメモリを占拠せずにロードができる。
このローダをどこに置くかだけれど、.textはROMなのでいくらでも置ける。 .dataと.bssとスタックは外部拡張RAMの一番上の4KBに入れました。
ここでちょっとはまった。今迄スタックは常に内部RAMに置いていた。しかし外 部RAMに置いたことで、外部RAMを有効にする処理をスタックを使う前にしない といけなかったのだ。
そして、外部拡張RAMが8bit3ステートアクセスなのが、また問題に。外部拡張 RAMに.text、スタックともに置くと、ポーリングでもシリアルを取りこぼして しまう。3倍遅いからね...。なんとか本番の.textは内部ROM(16bit 2ステート アクセス)の状態では115200bpsでも問題ないので一安心。
後は割込みベクタの引き渡しだ。
メモリに余裕はないので、モトローラSフォーマットのローダで。これはロード すべきアドレスとそのデータを延々とつなげて、最後にスタートアドレスが入 るという形で、ほとんどメモリを占拠せずにロードができる。
このローダをどこに置くかだけれど、.textはROMなのでいくらでも置ける。 .dataと.bssとスタックは外部拡張RAMの一番上の4KBに入れました。
ここでちょっとはまった。今迄スタックは常に内部RAMに置いていた。しかし外 部RAMに置いたことで、外部RAMを有効にする処理をスタックを使う前にしない といけなかったのだ。
そして、外部拡張RAMが8bit3ステートアクセスなのが、また問題に。外部拡張 RAMに.text、スタックともに置くと、ポーリングでもシリアルを取りこぼして しまう。3倍遅いからね...。なんとか本番の.textは内部ROM(16bit 2ステート アクセス)の状態では115200bpsでも問題ないので一安心。
後は割込みベクタの引き渡しだ。
