RX65シリーズのデュアルバンク機能を使い、プログラムの遠隔書き換えをしたいですが
バンク切り替えがうまくっておりません。
プログラム上で下記①と②を動作させたいです。
①新しいプログラムデータを受け取りながら、現在起動バンクでない領域に書き込む
②起動バンクを切り替えて再起動
開発環境がCS+にCC-RX、マイコンはRX651(フラッシュ2M)を利用しています。
②について下記のコードを書いています。
//起動バンクを逆転する OFSM.BANKSEL.BIT.BANKSWP = !(OFSM.BANKSEL.BIT.BANKSWP & 0x7); //WDTから再起動する while(1){}
起動バンク選択レジスタBANKSWPについて、ハードウェアマニュアルには読み取り専用とありますが
フラッシュマニュアルにはいったんこれを読んで、反転書き込みとあります。
なのでそのようにコードを書いたつもりですが、このコードではBANKSWPが変更されていないようです。
FACIコマンドではハードウェア操作が必要なので遠隔アップデートには使えません。
このレジスタを書き換える方法やもっと読んでおくべきマニュアルがあれば教えていただけないでしょうか、
よろしくお願いいたします。
※追記
エミュレータはE1と少々古いものを利用しています。
エミュレータからの書き込み時に下記エラーを吐くので、何か関係があるかもしれません。
ダウンロードが完了しましたが、以下の問題がある可能性があります。
[警告の直接原因]
Warning: MDEレジスタのBANKMDビットへのライトデータをデバッガ起動時に指定された内容に変更しました。
(W1811343)
NoMaYさま、シェルティさま
結論からいうとFITモジュールを導入して、バンクスワップできるようになりました。
FITモジュール導入に手間取ったのですが..
私のHEWから移行してきた環境ではflash関連のAPIははじめ準備されておりませんでした。
また、スマートコンフィグれーたのコンポーネント追加にもそれらしきものがありません。
なのでFITモジュールをダウンロードした中から、下記の1ファイル・1フォルダを
プロジェクトに導入&ファイルフォルダにコピーしました。
・r_flash_rx_config.h (r_configフォルダ下へ)
・r_flash_rx (Smart Configuratorフォルダ下へ)
あとはインクルードをうまく調整してあげれば今のところ動いています。
FITDemosはプロジェクトファイルが見当たらず?すみません、e2studioは不慣れなのでなんとかします。
いろいろとご教示いただきありがとうございます! 無事動いておりますご報告でしたm(_ _)m