2002/07/15 作成
新しいH8マイコン3069Fは今までH8マイコンとはちょっと違っています。それをちょびっと説明したいと思います。まずはH8/3069Fの動作モードをご覧ください。
リセット直後のMD2,MD1,MD0,FWE,NMIの状態によってCPUの動作モードが決定します。モード1〜7は普通にCPUが走るモードで、プログラミングモードは内蔵のフラッシュメモリを書き換えたり、消去したりできるモードです。*印は0でも1でもよい
モード名 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 * - - -
プログラミングモードは下記のように4種類あります。
■H8/3069Fのプログラミング・モード
3069Fには2種類のフラッシュメモリマットを持っています。名称が解りにくいです>日立さん
■ユーザブートマットは何のためにあるのか?
今までプログラムの書き換えはブートモードかユーザプログラムモードでしかできませんでした。ブートモードは一番原始的な書き込み方法で、SCI1を接続しないと書き込みができません。ということで制約が多い書き込みモードです。
ユーザプログラムモードは普通にCPUを動作させておいて、FWEを1にすることで内蔵フラッシュを書き換えることができるようになっています。書き換え手段はファームウェア次第(例えばUSBやイーサネットといったようなもの)で柔軟性が高い方法ではありますが、書き込むためにはRAM上でプログラムを実行させなくてはなりません。自分で自分を書き換えられないため。
書き換えに成功すれば問題ありませんが、途中で書き込み・消去に失敗してしまうと最悪、新しいプログラムも前のプログラムも動かなくなります。ブートモードで復帰するしかありません。
そういう問題を解決するのかユーザブードモードです。ユーザブートマットにあらかじめ、ユーザマット書き換えプログラムを入れておき、必要なときにユーザブートモードに変更することで、いつでもユーザマットを書き換えることができるようになります。ユーザブートマットにUSBとかイーサネットからダウンロードするプログラムをいれておけばいいのです。
もし、ユーザブートモード実行中に書き換えに失敗、暴走、リセットしても、ユーザブートマットは無傷ですから、何度でもトライできます。(ユーザブートマットはブートモードでしか書き込めない)
というわけで、人によっては便利なユーザブートマット・ユーザブートモードの紹介でした。
上記内容について、一部私の憶測もありますので違うところもあるかもしれません。違ってたら教えてください>日立さん
日立製作所 H8/3069 F-ZTATTM ハードウェアマニュアル 第2版Copyright (c) 2002 Masahiro Ochiai