RL78 F13/F14のオプション・バイトの機能について

RL78 セルフ・プログラミングライブラリにてブート・スワップをしようとしています。

以下お教え願えますでしょうか。

RL78 F13/F14のユーザーズマニュアル ハードウェア編 29.1章 オプション・バイト では
以下のように記載されています。
> セルフ・プログラミング時にブート・スワップ動作を使用する際には,
> 000C0H-000C3Hは020C0H-020C3Hと切り替わるので,
> 020C0H-020C3Hにも000C0H-000C3Hと同じ値を設定してください。

スワップするブート0、ブート1領域はそれぞれ00000H-00FFFH、01000H-01FFFH なのですが、
誤記ではなく、オプション・バイトだけそのような外れた所を参照する仕様なのでしょうか?

  • > スワップするブート0、ブート1領域はそれぞれ00000H-00FFFH、01000H-01FFFH なのですが、

    どこ情報ですか?
    『RL78/F13, F14 ユーザーズマニュアル ハードウェア編』を見ましたがブート・クラスタ 0と 1がそのアドレス範囲であるという記述は見つけられませんでした。
  • フクダさん

    メモリマップを見るかぎりクラスタ1は2000Hから始まるみたいですよ。

  • fujita nozomu様、Kirin様
    メモリマップは、RLフラッシュ・セルフ・プログラミング・ライブラリ ユーザズマニュアルのRL78/G13の例示
    を見てブート領域のサイズはこれと同じなのかと勘違いしておりました。
    その上で、そばにいる人に前記29.1章を見せられて020C0H-020C3Hの4バイトだけ別にマッピングする
    必要があるんじゃないの?と言われて不思議に思った訳ですが・・・
    変なプログラムを組む前に気づけて良かったです。

    ありがとうございました。
  • フクダさん
    020C0H-020C3Hの4バイトは別に書かなくても大丈夫です。
    新しいブートプログラムは2000h~書き込みする必要がありますけれども、
    2000h番地に書き込むためのブートプログラムをコンパイルする際にオプションバイトもくっついてくるので、
    いずれにしても2000h~に新しいブートプログラムを書き込むことで結果的に020C0H-020C3Hの4バイトに新しいオプションバイトが設定されてます。

    リセットが発生したタイミングで2000h~が0000h~に変更されて、新しいオプションバイトが読み込まれるので
    新しいブートプログラムを書き込むまでは20C0h~3hには何も書き込まれてなくても構いません。

     

    ちなみに、UMにはさらりと「 注意 ブート・スワップ時は,000C0Hと020C0Hが切り替わるので,020C0Hにも000C0Hと同じ値を設定してください。」とありますけれども
    現在設定されているオプションバイトと違う値を、新しく設定して内部リセットを使うと、暴走することがありますので注意してください。危ないのはC2h番地のクロック設定だけだと思いますけど。