”かふぇルネ“はルネサス製品に関してユーザ同士が自由に会話をするツールであり、回答者はルネサス社内外の方たちとなります。ルネサス製品やソリューションに関して正式な回答をご希望の場合は、ルネサス技術サポート問合せをご使用ください。

RX231でのコードフラッシュ書換え

はじめまして、HYMと申します。

現在、R01AN3294JJ0106の「RXファミリ USB CDC経由内蔵FlashROM書き換えプログラム」を参考に、RX231を搭載した自社製基板でファームウェアの更新用にRX231のデータフラッシュの書換え機能を作成しています(開発環境はCS+です)。

更新用データの通信部はR01AN3294JJ0106を参考にUSBからSCI12に変更し、フラッシュの書換え処理はR01AN3294JJ0106をほぼそのまま組み込みました。

セクションの設定については、「RXファミリ フラッシュモジュール Firmware Integration Technology」を参考にRAM領域に”RPFRAM”セクションを追加し、コードフラッシュのセクション(PFRAM)のアドレスをRAMのセクション(RPFRAM)のアドレスにマッピングするため”PFRAM=RPFRAM”を追加しています。

書換え処理を実行すると、fu_main():r_usb_pcdc_updater.cに入って書換え処理を行うようになっているのですが、fu_main()からfu_create_writedata():r_fwupdater_apl.c->fl_rom_write():r_flash_apl.c->fl_set_access_window():r_flash_apl.cの順に呼び出されていくと、fl_set_access_window()の呼び出しで応答がなくなりフリーズしてしまいます。

fu_main()が呼び出される前にSCI12の通信は止めているため、fu_main()処理中に通信割り込みが入ることはないようにしています。

このような状況で、それぞれのドキュメントなどを確認しながら調査をしているのですが、なぜfl_set_access_window()の呼び出しでフリーズが発生しているのかわ分からず、非常に困っています。

有識者の方で、何らかの設定や処理が足りないなど原因が分かりましたら、ご教示いただきたく。

よろしくお願いします。

  • こんにちは、HYMです。

    セクションの設定を見直したところ、フリーズ解消しました。

    (別の問題が発生しましたが、そこは別途調査するとして。)

    お騒がせしました。