こんにちは、
私はそれに関するたくさんの投稿を読みました。
DCM-DCRWP1 を変更するか、(より危険ですが) 各機能リセットの前に IPMC_RGM->FREC= 0xF をトリガーすることで、リセットを無効にすることができます。
しかし、RM 32.12 リカバリ モードから読み取ったところ、たとえば「SBAF がアプリケーションを起動しない」など、リストされている他のCASEでも、VTOR = 2040_0100 アドレスが発生することがわかりました。
このCASE、PC = 0x2040_012E とスタック ポインター SP= 0x2040_200 がすべて間違っており、SRAM メモリの中央にあることに気付きました。また、PC は 0x2040_012e で無限にループします。
2040_0100 に VT コードを入力する必要があるかどうかはわかりませんが、すべてが停止しています。
HSE はスキップされ、sbaf がアプリケーション コードを直接ロードします。
手伝ってもらえますか ?
よろしくお願いします
ファビオ
こんにちは@FabioG
これは JTAG ベースのリカバリ モードと呼ばれます。独自のコードを RAM にロードすることは想定されていません。WFI と無限ループは SBAF によってそこに書き込まれます。このリカバリ モードの目的は、ユーザーがデバッガーを接続して適切なアクション (アプリケーションの再プログラム、フラッシュの内容の確認、構成の変更など) を実行できる場合に、デバイスを何らかの定義済みの状態にすることです。
このような状況で独自のコードを自動的に実行したい場合は、HSE とそのセキュア リカバリ モードをCAN。詳細については、HSE ファームウェア リファレンス マニュアルを参照してください。
または同様に、アプリケーションが破損したときに特定のコードを実行する場合は、以下を参照してください。
https://community.nxp.com/t5/S32K/S32K3 で Hse-AB-SWAP のロールバック機能を有効にする方法/mp/2146151/highlight/true#M5...
よろしくお願いいたします。
ルーカス