当社は NXP S32K312 MCU を使用しており、現在 HSE ファームウェアに問題が発生しています。
1.HSE ステータス レジスタ値が破損しているようです (0x4038C107)。
2.このステータス破損のため、HSE API にアクセスできません。
3.HSE ファームウェアの消去または再フラッシュの試みが失敗しました。
4.MU0_TR1 レジスタまたはメモリに書き込んで消去/リセット コマンドをトリガーすることはできません。
5. デバッガーがコネクテッドされているときに、単一の外部リセット中に複数のソフトウェア リセットが観察されました。
支援の要請:
1.S32K312 の HSE ファームウェアを消去して再フラッシュするための正しい推奨手順を教えてください。
2. 現在の破損状態のために HSE ファームウェアの再フラッシュが不可能な場合、HSE を回復したり、ステータス レジスタの破損を解決したりするには、どのような手順を実行すればよいですか。
3. デバッガーを接続した状態でハードリセットを実行すると、複数のリセットが発生することが知られていますが、これに関する既知の問題や回避策はありますか?
4.破損した HSE ステータス レジスタの問題を解決し、HSE API へのアクセスを回復するにはどうすればよいですか?
私たちが従ったHSEファームウェアのフラッシュのプロセス。
ステップ 1: 提供された PINK ファイルを、IVT なしで、デモ アプリケーションおよびセキュア ブート アプリケーションの ELF ファイルとともにフラッシュしました。
ステップ2:リセット完了
ステップ3: HSE位置0x005d4000とDCMレジスタに??マークが観測される
ステップ4: アドレス0x00400000のブートローダーとアドレス0x00442000のアプリケーションを再フラッシュしました。
ステップ5:デバッガをコネクテッドした状態でハードリセットを実行すると、外部リセットコマンドを1つだけ発行したにもかかわらず、ソフトウェア側から複数のリセットがトリガーされることが観察されました。
スクリーンショットは参考としてご覧ください
@lukaszadrapaこれらの問題を解決するのを手伝ってください
まあ、こんなことは起こるはずはない。いくつか質問があります。
SBAFのバージョンは何ですか?0x4039_C020 で CAN 読み取ることができます。説明は、HSE FW リファレンス・マニュアル rev. の表 141 に記載されています。2.5.
どのバージョンの HSE FW をインストールしましたか?それは AB_SWAP バージョンですか、それとも FULL_MEM バージョンですか?
どのようなインストール方法を使用しましたか?フラッシュにアプリケーションがロードされていますか?もしSOなら、クロックはどのように設定されていますか?
また、UTEST の HSE 機能フラグがプログラムされると、HSE ファームウェアのフラッシュ内の対応する領域がメモリ マップから永久に削除されることに注意してください。HSE ファームウェアが消去されると、この領域に再度アクセスできなくなります。AB_SWAP バージョンがインストールされているCASEも同様です。このCASE、HSE ファームウェア用に 2 つの領域が予約されており、1 つはアクティブ ブロックに、もう 1 つはパッシブ ブロックにあります。AB_SWAP がインストールされると、HSE OTA フラグが UTEST にプログラムされる。SO、両方の領域が HSE ファームウェア用に永久に予約されます。
こんにちは、
新しいハードウェア プラットフォームに HSE ファームウェアを再インストールしようとしました。最初、HSE ステータス レジスタには、ビット「0」(HSE ファームウェアの存在を示す) が正しく設定されていることが示されます。ただし、機能リセットを実行すると、このビットはクリアされ、割り当てられたメモリはそのままのように見えても、HSE ファームウェアにアクセスできなくなります。
機能リセット後の HSE ステータス レジスタの予想される動作を明確にしていただけますか?さらに、リセット後も HSE ファームウェアにアクセスできるようにするために推奨されるリセット処理手順は何ですか?
HSE ファームウェア リファレンス マニュアルは、このページの [ドキュメント] -> [セキュア ファイル] セクションからダウンロードできます。
https://www.nxp.com/products/S32K3#ドキュメント
表示されない場合は、アクセス権を要求する必要がある可能性があります。
https://www.nxp.com/support/support/secure-access-rights:SEC-ACCESS
MU FSR レジスタ (0x4038C107) の内容に基づくと、HSE ファームウェアは存在しません。つまり、HSE サービスを実行できないということです。最初の回答で書いたように、0x4039_C028 の HSE GPR レジスタを確認してください。ビット 0 がクリアされている場合、HSE ファームウェアはインストールされていません。
ファームウェアをインストールするには、デフォルトの場所、IVT 経由、または MU 経由の 3 つの方法があります。これらはすべて、HSE ファームウェア リファレンス マニュアルに記載されています。
よろしくお願いいたします。
ルーカス
こんにちは、
返信ありがとうございます。
現在、HSEファームウェアを消去できません。以前提案された方法(RAMに0x57を書き込み、TR[1]メカニズムを使用する方法)を試しましたが、メモリの消去は成功しませんでした。さらに、HSEファームウェアAPIが応答せず、期待どおりに動作しません。図に示すように、HSEファームウェアの再インストールで問題が発生しています。
HSE ファームウェアを強制的に消去またはリセットするための代替方法または更新された方法を提供していただけますか?
HSEファームウェアリファレンスマニュアルのダウンロード方法
こんにちは@Anitha7
これが重要なポイントのようです:
「ステップ 1: 提供された PINK ファイルを、IVT なしで、デモ アプリケーションおよびセキュア ブート アプリケーションの ELF ファイルとともにフラッシュしました。」
「デフォルトのアプリケーション NVM の場所」経由のインストール方法 (IVT でピンク色のファイルへのポインターが定義されていない) は、フラッシュに有効な IVT がない場合にのみ機能します。ピンク色のファイルを 0x400000 にロードし、有効な IVT を持つ他のアプリケーションをフラッシュにロードした場合、HSE ファームウェアはインストールされません。
スクリーンショットによると、0x5D_4000 の領域は HSE ファームウェア用に予約されているため、0x1B00_0000 の HSE 機能フラグはすでにプログラムされています。最も簡単な解決策 - フラッシュ全体 (データ フラッシュを含む) を消去し、0x40_0000 のピンク色のファイルのみをロードします。デバイスをリセットすると、HSE ファームウェアがインストールされます。
次に、0x4039_C028 の HSE GRP レジスタを CAN します。ビット 0 が設定されている場合、HSE ファームウェアがインストールされています。
よろしくお願いいたします。
ルーカス