神野です。 Fri, 22 Aug 2003 10:04:43 +0900 ごろに <000501c36849$604f0ac0$3d02a8c0@c> の "[H8-ML(3755)] スタートアップルーチンのI/O定義" のメールで "Hiroshi Tada" <tada@xxxxxxxxxxxxxxxxxxxxxxx> さんは書きました。 > H8の動作モードをモード1または5の1Mバイトモードで使用する > 時は、スタートアップルーチンのI/Oアドレスの定義も変更する > 必要があるのでしょうか? > > 参考)SYSCR EQU H'FFFFF2 > ↓ > 変更)SYSCR EQU H'FFFF2 必要無い(はず)です。 H8/3048F をモード7(シングルチップアドバンストモード)で 使ったことがありますが、日立から提供されているヘッダー↓ #define SYSCR (*(volatile union un_syscr *)0xFFFFF2) /* SYSCR Address*/ をそのまま使いました。 > この辺の説明がイエローソフトのマニュアルには見受けられません > でしたので、もしかして何かの仕掛けがあって上記のような変更は > しなくても良いのかも?と勝手に思ったりもしているのですが.... 仕掛けがあります。 日立から提供されているハードウェアマニュアルを見てください。 手元にあるのは H8/3048F-ONE のですが、「2.3 アドレス空間」に | アドレス空間が1Mバイトモードの場合、実効アドレスの上位4ビットは | 無視され、20ビットのアドレスとなります。 とあります。 つまり、 SYSCR EQU H'FFFFF2 と書いても SYSCR EQU H'FFFF2 と書いても、1Mバイトモードなら同じことです。 -- 神野健吾 <kengo@xxxxxxxxxxxx>