環境
MCU : RA6M3
FSP 2.4
お世話になっております。KT_です。
現在、内蔵のコードフラッシュにファームウェアを書き込む際に、高い頻度(10回に4回程度)で書き込みに失敗する問題が出ています。
調査を行ったところどうやらFACI.FSTATR.ILGCOMERRとFACI.FSTATR.ILGLERRが1になったことによって発生したエラーのようでエラーの要因としてはコマンドの不正ということだと考えられます。
ただし、偶発的に発生していることから、単に操作手順が間違っているのではなくパラメータやタイミングの問題だと考えています。
また、タイミングの問題であると考えられたのでflash_hp_write_data()内の> R_FACI_HP_CMD->FACI_CMD8 = FLASH_HP_FACI_CMD_PROGRAM;> R_FACI_HP_CMD->FACI_CMD8 = (uint8_t) (write_size / 2U);の間にif (1U == R_FACI_HP->FSTATR_b.ILGLERR){ __BKPT(1);}のようなコードを挿入すると改善しました(現状発生しなくなりました)。
あまりFSPのコードを変更して修正するという手段はとりたくないと考えておりますので、この問題の直接的な要因、ならびに修正方法などがありましたらご教示いただければと思います。
訂正 「高い頻度(10回に4回程度)」→「ファームウェアの更新回数10回につき4回程度(R_FLASH_HP_Write()の呼び出し回数とは異なる)」
KT_さん、 かふぇルネ(Rulz-Japanese)管理人です。 本件、回答できる方がおられないようですので、下記URLのルネサス技術サポート問合せへ問合せてみてください。 よろしくお願いします。 URL: https://ja-support.renesas.com/dashboard