[H8-ML(3758)] Re: スタートアップルーチンのI/O定義
From: Kengo Jinno <kengo@xxxxxxxxxxxx>
Date: 2003年08月22日(金)11時42分36秒
神野です。

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>
スレッド概略
[3755(R)](起点)
 └[表示中]
   ├[3760(1)]
   └[3762(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]