データフラッシュライブラリ Type4 PFDL_ERR_PARAMETER について

RL78/G13(R5F100MF) にて、データフラッシュライブラリ Type4を使用しています。

データフラッシュの容量が、8K のマイコンです。

仕様としては、ブロックイレース⇒データ書き込みを、1ブロック分のデータ書き込み完了時次のブロックを消去して順次書き込みする形としています。

問題は、0(相対アドレス0)と1(相対アドレス0x400)の2ブロックまではうまくいくのですが、ブロック#2 相対アドレス0x800 のブロック消去(PFDL_OK)し、書き込みコマンドを実行すると、なぜか”PFDL_ERR_PARAMETER”(パラメータのエラー) が返ってきてしまいます。

ブロック0/1がうまくいっているので、何か 2ブロック以降の相対アドレスが書き込めない状況になっていると思われます。API引数が、アドレスとバイト数、配列だけなので、0x800以降が無視されるような根本的な問題のような気もします。

設定など、思い当たるところがないので、行き詰っています。アドバイスをいただきたいと思い、投稿していますのでよろしくお願いします。

Parents
  • ライブラリパッケージVer.は、2.00 で、e2studio + CCRL の環境です。この環境での データフラッシュの設定資料が見つけられないのですが、もしそれも知っている人がいたらご紹介いただけると助かります。 

  • Breezeさん、こんにちは。NoMaYと申します。

    > ライブラリパッケージVer.は、2.00 で、e2studio + CCRL の環境です。この環境での データフラッシュの設定資料が見つけられないのですが、もしそれも知っている人がいたらご紹介いただけると助かります。

    私は以下のドキュメントでよいと思うのですけれども、これは見付かりませんでしたのでしょうか?

    RL78 ファミリ データ・フラッシュ・ライブラリType04 日本リリース版
    R01US0049JJ0106 Rev.1.06 Pages 2018.10.31
    www.renesas.com/jp/ja/document/mat/rl78-family-data-flash-library-type04-users-manual
     

  • はい、これは持っておりますし、これに従って実装はして、ブロック#0と#1は動作しています。今回欲しい資料は、e2studio+CCRLのプロジェクト上の必要設定資料です。V2.00のパッケージ中の資料(R20UT0749JJ0105、Rev.1.05、2018.10.25)において、CubeSuiteなどの古い環境の設定資料しか、ありませんでした。e2studio になってから久しいと思うのですが、e2studio版が欲しい。

    ーー

    今回困っているのは、ブロック#2以降のアドレス指定時、関数戻り値のエラーとなり使えないので、推測の域を脱しないですが何らかのブロック設定(使用アドレス設定)等があるのではという推測に基づいています。資料が更新されてないなら、すでに設定している方にアドバイスをいただきたいという感じです。

  • Breezeさん、こんにちは。NoMaYです。

    以下でGoogle検索して最初の3ページにありませんので存在しないと思いますよ。私が思うに、もう皆さん、コード生成機能でデータフラッシュライブラリを使うよう設定して、いざビルドしてみると幾つかファイルが足りないことに気付いて、(憤慨しつつ)ファイルをネットで探してダウンロードして追加して、ビルドに成功したら、後は普通に使えている、という状況だと思うのですけれども。(たぶん、過去5年ぐらいでは、今回の案件に記憶が無いですので。それ以前となると、かふぇルネにお邪魔していませんでしたので、ちょっと分からないですけれども。)

    Google検索: RL78 データフラッシュ
    https://www.google.com/search?q=RL78+データフラッシュ

    ただ、あまりに簡単なテストプログラムだと、先程のドキュメントの以下の2つの注意事項の2番目に該当してしまうケースはあるようでした。(記憶があいまいですが、そんなことが私にもあった気がします。)

    2. 2. 2 セルフRAM
    2. 2. 4 スタック、データ・バッファ

  • 回答ありがとうございます

    セルフRAMのリスト(R20UT2943JJ0305)をみても、確保は不要なマイコン種となってます。スタックやバッファならば、ブロック位置に関係なくエラーになると思います。

    きっちり、ブロック#2(0x800)以降、コマンド受付エラーになるので、何か根本的な要素があるのかもしれないとは思っています。

Reply
  • 回答ありがとうございます

    セルフRAMのリスト(R20UT2943JJ0305)をみても、確保は不要なマイコン種となってます。スタックやバッファならば、ブロック位置に関係なくエラーになると思います。

    きっちり、ブロック#2(0x800)以降、コマンド受付エラーになるので、何か根本的な要素があるのかもしれないとは思っています。

Children