コードフラッシュメモリの内容を読み出したい

お世話になります。うおちゃんと言います。

RL78L13を使用しています。実は、先日RLを使った製品が出荷後不良品として返却されてきまして、とりあえずコードフラッシュのチェックサムを確認すると

正しい値とは異なる値が表示され、何が書かれているのか確認したいと思っています。

ところが、ルネサスフラッシュプログラマではチェックサムは求められますが、書いてある内容を読み出してファイルに落としたりはできないようです。

何かしら手段はないでしょうか?ちなみにE1を使ってつなげています。

  • こんにちは

    開発はCS+を使われていましたか?E1が繋がるのでしたら開発した時のプロジェクトを開いてデバッグ・ツールに接続(※ファイルをダウンロードしないように要注意!)するとデバッグ・ツールからデータをアップロードしてファイルに保存ができるのではないでしょうか。

    開発したときのプロジェクトでなくてもターゲットデバイスを正しく設定しておけば新しいプロジェクトでもデバッグ・ツールに接続できると思うのでファイルのアップロードはできそうです。

    CS+のマニュアル抜粋:

  • うおちゃんさん
    何もせずにルネサスに解析依頼を出してみるのが良いと思います。
    下手にデバッガで触ってしまうとモニタコードが書き込まれたりフラッシュ消去が走って
    フラッシュの内容が変わってしまうので。

    一応、ブランクチェックコマンドで実はプログラムが書かれていなかったという可能性も確認した方がよいかと思います。

  • じまさん、はじめまして。早速の回答ありがとうございます。

    開発環境はCubeSuite+のほうを使っていますが、CS+と同様、同じ機能があることに気が付きましたので、両方で試すことにしました。
    しかし、E1を接続しようとすると、CubeSuite+でもCS+でも、

      デバッグ・ツールの開始に失敗しました。
      [エラーの直接原因]
      オンチップ・デバッグ・オプション・バイト制御値が不正です。起動前に、"起動時にフラッシュROMを消去する"を"はい"に設定してください。(E1202856)

    というエラーボックスが開いてしまいます。
    消してしまっては元も子もありません。何かしらほかに手立てはないものなのでしょうか?

    何かお気づきの点、教えていただければありがたいです。
  • Kiri.Nさん、初めまして。早々のご回答ありがとうございます。

    メーカー依頼は最後の手段と考えております。ちなみにチェックサムは違っていますがプログラムは動作します(というより、単に暴走しないというだけで、商品のSWを操作するとエラー表示を行って本来の動作が行われない)ことから、プログラムを書き込まずに出荷した!ということではないようです。

    何かまた、お気づきであれば、教えていただければありがたいです。
  • うおちゃんさん

    非破壊検査ですと、デバッグ時に使用していたコードを含め
    手持ちの全てのHEXとコンペアしてみるとかしか思い浮かばないかな。

    ・書き込んだデータに問題がある(間違ったHEXを書き込んだ)
    ・書き込み時の問題(書き込み電圧が不安定等)
    ・出荷後に書き換わった(セルフで書き換わった、誰かが意図的に書き換えた)

  • Kiri.Nさん

    今までリリースしたすべてのファイルのチェックサムと比べてみましたが、一致するものはありませんでした。
    デバッグで使用した版は用済み次第即削除しているので、混入はしていないと思います。
    また、プログラムを書き込んだ際にチェックサムを確認するように検査工程が組まれていますので、書いた直後は一致していたと思われます。途中で勝手にプログラムが変わるなんて恐ろしいことは考えたくないですし、今まで何万台か製造したうちの初期のころに製造した17台なので、多分、今後は出ないんだろうなぁと思っています。
    幸か不幸か、ベリファイすると、だいぶ後ろ(アドレスの大きい側)で引っ掛かりますので、1アドレスずつベリファイする範囲を変えていって、どこまで正常な値になっているかは見出せそうです。
  • うおちゃんさん
    17台も同様の現象がでているんですか?!
    怖いですね。

    NGアドレスが個体毎に違うかなどの情報も分かれば解析の一助になるかもしれません。

    追伸
    NGが17台ではなく、ロット17台のうちの一台NGということなんですね^-^

  • こんにちは

    資料をさがしてみたところ以下のFAQがありました。

    「FAQ 1010333 : 78K,V850,RL78マイコンで、E1またはE20エミュレータとRenesas Flash Programmerを使用して、フラュシュメモリに書き込んだデータを読み出したいのですが、メニューから選択する"読み出し(R)"コマンドがグレー表示になっていて選択できません。」

    記載されている以下の条件に合っていないとデバッガを使ってフラッシュデータをアップロードすることもできないようです。

    • オンチップ・デバッグ・オプション・バイトで "オンチップ・デバッグ動作許可"を設定している。
    • 設定しているオンチップ・デバッグ・セキュリティIDを把握している。

    またアップロードしたデータのデバッグモニタ領域はもともと書き込んだデータとは違う値に書き換わっているようです。

  • じまさん、ありがとうございます。

    検索ワードが悪いのか、検索してもヒットしなかったのでFAQにあるとは思いませんでした。
    製品なので、オンチップデバッグは不可に設定して出荷しています。
    やはりCS+では、ダメなんですね。

    フラッシュプログラマはベリファイ機能がありますので、それと似たようなことをやればマイコンから読み出せるはずで、ひょっとしたらそういったツールを独自で作った方がいればいいのになぁ~、いやそんなことしなくても、既存のツールで何とかなる方法があるのでは?と思い、質問した次第です。
  • Kiri.Nさん
    1ロット何台作っているかは知らないのですが、NGが17台なのです。怖いです。しかも生産始めたころに出た不具合で、それ以降は出ていないんです。ということはいつまた出るかわからないのです。恐ろしいです。
    (と思いつつ3年もたってしまいましたが)
    よくよくしらべてみると、チェックサムはブロックごと(大きさ1kb)にしか指定できず、アドレスで指定できませんでした。