使用CPU:R5F104JG(RL78/G14)
フラッシュセルフプログラミングライブラリType01を使っております。
目的の内容は以下のことです。
このとき、実行中プログラムはベクタ領域0x0000~と、プログラム領域0x3000~を使用しています。
別プログラムはセクション設定でプログラム領域を0x4000~に変更しました。
ここから質問になります。
誠に申し訳ありませんが、宜しくお願い致します。
miesuge2さん、こんにちは。NoMaYです。質問された内容を何度も読み返しているうちに、私が勘違いしたかも知れない気がしてきました。RL78マイコンで、ブートクラスタとか、各ブートクラスタのベクタ領域とか、ブートスワップとか、そういった言葉が出てくれば、『RL78/G13フラッシュ・セルフ・プログラミング実行編 』の内容をやろうとしているのだと予測してしまうのですが、実はそんな話ではなくて、RXマイコンでやっていた(RXマイコンでは何の苦も無くやれていた)ある手段を同じようにRL78マイコンでやろうとして、でもRL78マイコンでは出来無くて、苦肉の策でブートスワップ機能に辿り付いた経緯なのかな?という気もしてきました。(1) RXマイコンでは割り込みベクタテーブル(RXv1,v2,v3)と例外ベクタテーブル(RXv2,v3)の先頭アドレスをCPUのシステムレジスタであるINTBレジスタやEXTBレジスタで自由なアドレスに移せる。(2) そこで、起動時は、起動時に実行されるアプリA内のベクタテーブルを指すようにINTBやEXTBを設定して、アプリAを実行していた。(3) その後、アプリAがアプリB(もちろんアプリAが使っていないフラッシュメモリ領域に配置)をフラッシュメモリにダウンロードしてアプリBに制御を移す。(4) アプリBに制御が移った後は、アプリB内のベクタテーブルを指すようにINTBやEXTBを設定する。(5) なお、アプリAは書き換えることなく、同じものを使い続ける。(6) RL78にもINTBレジスタやEXTBレジスタに相当するものがあれば良かったのだが、そんなものは存在しておらず、RXマイコンでは何の苦も無くやれていた上記の手段がRL78ではやれなくなって、色々調べたところ、RL78マイコンではブートスワップ機能を使うとどうやら0番地と0x1000番地の2箇所にベクタテーブルを持たせることが出来るらしいということを知って、最初の投稿の質問に至った。ひょっとして、そういうことだったりしますか?