Renesas Flash Programmer V3.14.00 にて
RX24Tのプログラム書き込みをした時ブロック設定でData Flash1領域のselectチェックを外しているのに
Data Flash1 領域が0xffで消去されてしまうのですが、その他何かData Flash1 領域が消去されない設定箇所はあるのでしょうか?
現在の設定
①操作設定
・コマンドは消去、書き込み、ベリファイのみチェック
・消去オプションはブロック選択消去
・エラー設定はデバイス範囲外エラーを有効にするにチェック
②ブロック設定
・CodeFlash1のみチェック ※もちろんDataFlash1チェックは無し
③フラッシュオプションは何もしない
④ユニークコードはチェック無し(無効状態)
で、実際にスタートを押した時に出るステータスとしては
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
接続デバイス : RX200 Series
ツールに接続します。使用ツール : E1 emulator (2DS017397), インタフェース : FINEツール電圧 : 5.0V (USB VBUS)エミュレータのファームウェアバージョン : 3.01.00.000ターゲットデバイスに接続します。メインクロック : 32.000000MHzターゲットデバイスを設定します。警告(W0004004): IDコードプロテクトが無効です。通信速度 : 1,500,000 bpsSignature: Device: RX200 Series
選択されたブロックを消去します。 [Code Flash 1] 0xFFFC0000 - 0xFFFFFFFF サイズ : 256 K
書き込みを実行します。 [Code Flash 1] 0xFFFE0000 - 0xFFFF88FF サイズ : 98.3 K [Code Flash 1] 0xFFFFFF00 - 0xFFFFFFFF サイズ : 256
ベリファイを実行します。 [Code Flash 1] 0xFFFE0000 - 0xFFFF88FF サイズ : 98.3 K [Code Flash 1] 0xFFFFFF00 - 0xFFFFFFFF サイズ : 256
ツールから切断します。操作が成功しました。
/////////////////////////////////////////////////////////////////////////////////////////////////////////
と、DataFlash1領域を消去したステータスも出ていないのに、上記実施後、DataFlash1領域が0xffに消去されてしまっている状況です。
『警告(W0004004): IDコードプロテクトが無効です。』の警告が気になってますが、それが起因している問題なのかも良く分かりません。
(IDコードプロテクトをどのように設定すれば警告が消えるのかが?)
大変申し訳ありませんが、御教授頂けると幸いです。
https://www.renesas.com/jp/ja/document/apn/rx-family-how-prevent-chip-flash-memory-being-accessed-third-parties-or-being-accidentallyコードプロテクト時にIDコードが不一致の場合は消されると書いてありますね。
IDコード領域(ROMのFFFF_FFA0~)の制御コードを、0x45(もしくは0x52)にしておくと、コードフラッシュ書き込み時に、データフラッシュの消去が行われなくなります。
(0x45にした場合、IDを忘れても、意図的にIDを3回連続で間違えるとチップは全消去されます。0x52にした場合、IDを忘れると消せなくなります。)
0x45(もしくは0x52)以外の値(何もしないと通常は、0xFF)ですと、RFPから書き込み準備コマンドを送ったタイミングで、RX24Tのブートファームがデータフラッシュ含め全消去します。
ハードウェアマニュアルの36.9.1.1を読んでみてください。
デバッガと違ってプログラマツールでは、残っているデータを消さないように指示しないと消されます。プログラマツールの用途を考えれば想像が付くと思いますが、余計な場所に知らないうちに書かれているデータがあっては困るからです。消さないように指示する方法についてはこの辺りを参考にしてみてください。FAQ - フラッシュメモリデータの部分的書き換えとデータ保持https://ja-support.renesas.com/knowledgeBase/17797450消す/消さないをIDコードで指示するのも可能ですが、下手をすると本当に消せなくなってしまうので注意してください。
ターゲットが「RX24T」で、かつ「ブートモード」で書き込む場合は、IDコード(IDコード16バイトの先頭のID制御コード)を設定する「以外」の方法では、データフラッシュの保持はできない仕様だと思います。(データフラッシュを消去するのは、RX24T内蔵のファームの挙動のため)
皆様、ご回答有難う御座います。
やはりIDコード設定の所の要因だったのですね。
確認してみます。