H8/3069Fについて

2002/07/15 作成

 新しいH8マイコン3069Fは今までH8マイコンとはちょっと違っています。それをちょびっと説明したいと思います。まずはH8/3069Fの動作モードをご覧ください。

 
モード名
MD2
MD1
MD0
FWE
NMI
内蔵ROM
内蔵RAM
バスモード
初期状態
備考
動作モード
(普通に実行するモード)
モード1
0
0
1
0
*
無効
有効
8ビット
 
モード2
0
1
0
0
*
無効
有効
16ビット
モード3
0
1
1
0
*
無効
有効
8ビット
モード4
1
0
0
0
*
無効
有効
16ビット
モード5
1
0
1
0
*
有効
有効
8ビット
モード7
1
1
1
0
*
有効
有効
-
シングルチップモード
プログラミングモード ブートモード
0
*
1
1
1
-
-
-
 
ユーザプログラムモード
1
*
1
1
*
-
-
-
ユーザブートモード
0
*
1
1
0
-
-
-
PROMモード
0
0
0
1
*
-
-
-
*印は0でも1でもよい
 リセット直後のMD2,MD1,MD0,FWE,NMIの状態によってCPUの動作モードが決定します。モード1〜7は普通にCPUが走るモードで、プログラミングモードは内蔵のフラッシュメモリを書き換えたり、消去したりできるモードです。
 モード1〜7の違いは内蔵ROMやRAMが無効/有効だったり、初期のバスモードが8ビット/16ビットだったりします。それで6種類あります。

 プログラミングモードは下記のように4種類あります。

■H8/3069Fのプログラミング・モード

■フラッシュメモリマット

 3069Fには2種類のフラッシュメモリマットを持っています。名称が解りにくいです>日立さん

 上記、2つのメモリマットがあり、どちらにもプログラムを置くことができ、かつ実行することができます。切り替えはバンク切り替えになっていて、ユーザマットは0x000000〜0x07FFFFまで、ユーザブートマットは0x000000〜0x001FFFまでとなっています。リセット時にどちらがマップされるかはモードによって変わってきます。
 モード1〜7とユーザプログラムモードはユーザマット(512Kバイト)がマップされています。ユーザブートモードだけ、リセット時にユーザブートマットがマップされています。ともに0x000000のリセットベクタを読み取って実行を開始します。
 バンク切り替えというふうに説明した通り、実行中にバンクを切り替えてしまうことも可能です。ただ、コード領域がいきなり変わってしまうと暴走してしまうので、RAM上にプログラムを転送し、RAM上のプログラムを実行させておいて、切り替えます。割り込みも禁止にしないとだめでしょう。かなりアクロバットなことなので、まぁ普通はしないでしょうね。

■ユーザブートマットは何のためにあるのか?

 今までプログラムの書き換えはブートモードかユーザプログラムモードでしかできませんでした。ブートモードは一番原始的な書き込み方法で、SCI1を接続しないと書き込みができません。ということで制約が多い書き込みモードです。
 ユーザプログラムモードは普通にCPUを動作させておいて、FWEを1にすることで内蔵フラッシュを書き換えることができるようになっています。書き換え手段はファームウェア次第(例えばUSBやイーサネットといったようなもの)で柔軟性が高い方法ではありますが、書き込むためにはRAM上でプログラムを実行させなくてはなりません。自分で自分を書き換えられないため。
 書き換えに成功すれば問題ありませんが、途中で書き込み・消去に失敗してしまうと最悪、新しいプログラムも前のプログラムも動かなくなります。ブートモードで復帰するしかありません。

 そういう問題を解決するのかユーザブードモードです。ユーザブートマットにあらかじめ、ユーザマット書き換えプログラムを入れておき、必要なときにユーザブートモードに変更することで、いつでもユーザマットを書き換えることができるようになります。ユーザブートマットにUSBとかイーサネットからダウンロードするプログラムをいれておけばいいのです。
 もし、ユーザブートモード実行中に書き換えに失敗、暴走、リセットしても、ユーザブートマットは無傷ですから、何度でもトライできます。(ユーザブートマットはブートモードでしか書き込めない)

 というわけで、人によっては便利なユーザブートマット・ユーザブートモードの紹介でした。
 
 
 
 
 

上記内容について、一部私の憶測もありますので違うところもあるかもしれません。違ってたら教えてください>日立さん



参考文献
日立製作所 H8/3069 F-ZTATTM ハードウェアマニュアル 第2版
Copyright (c) 2002 Masahiro Ochiai