お世話になっています。
よしとです。
r_fwup Rev.1.06 を使って RX66N のセルフアップデート動作を組み込んでいましたが、r_fwup Rev.2.00 でシリアルポートの制御がユーザアプリケーション側で設定できるようになったため、r_fwup Rev.2.00 への移行を検討しています。
以下の条件で初期書き込みファイルを生成して Renesas Flash Programmer で書き込んだ後、bootloader のエリア(128kB) だけを消去して上書きする設置で bootloader のプロジェクトをデバッグしています。
【条件】
MCU :RX66N デュアrモード(R5F566NNDxBD_DUAL)
エンディアン:Big
bootloader サイズ:128kB(ボードの初期化処理が必要なため、64kB では厳しい)
メインエリア:0xFFE00000 ~ 0xFFFDFFFF
bootloaderエリア:0xFFFE0000 ~ 0xFFFFFFFF
バッファエリア:0xFFC00000 ~ 0xFFDFFFFF
認証方式:sha256-ecdsa
hash_sha256() 関数で読み込まれる st_fw_desc_t 構造体部分のデータは下記の様になっています。
n の値は 2 であるはずだと思うのですが、0x02000000 となっており、とんでもなく大きな値になってしまって、
hash_sha256() の検証ループから延々抜け出せないような状況になってしまっていました。
r_fwup Rev.2.00 のアプリケーションノートには、動作確認環境として「リトルエンディアン」と明記されていますが、
ビッグエンディアンのプロジェクトは考慮されていないのでしょうか。
或いは Renesas Image Generator で初期書き込みファイルを生成する時にビッグエンディアンのプロジェクトの場合
指定すべきオプションが存在するのでしょうか?
何かとんでもない間違いをしでかしているような気もしますが、ご教授頂ければ幸いです。
以上、よろしくお願いいたします。
自己レスをお許しください。
Renesas Image Generator の Python ファイル image-gen.py 内に有る little の文字列を全て big に書き換えて
初期書き込みファイルを生成し直してそれを書き込みましたところ rsu ヘッダ内の情報はビッグエンディアンのバイト配置で
出力され、dc に読み込んだデータも正しくなり、R_FWUP_VerifyImage(FWUP_AREA_MAIN) での検証をパスするようになりました。
取り敢えずこれでデバッグを続けることにします。