S32K344 にブートローダーを実装していますが、アプリケーション ファームウェアに移行した後にいくつかの問題が発生しています。
1 - ジャンプが正しく行われていることを確認しましたが、MCU の初期化中に問題が発生し、HardFault が発生します。ただし、これは常に発生するわけではなく、多くの場合、製品版ファームウェアへの移行は問題なく行われます。この問題が発生するのは、MCU 初期化の次のセクションです。
ブートローダの初期化で使用されるペリフェラルは次のとおりです。
MCU、OsIf、Siul2_Port_Ip_Init、IntCtrl_Ip、Gpt、Spi、Sbc_fs26、Wdg_43_fs26、Lpuart_Uart、flash_c40。
ブートローダーの deinit 関数:
MCU 関数で初期化解除を実行するにはどうすればよいですか?
追加で必要な手順はありますか?おそらく.mexでしょうか?
2) PTE13 ポートを入力として使用します。私はすでに LMBCTLEN レジスタを無効にする解決策を使用しており、製品版ファームウェアでは機能しました。ただし、製品版ファームウェアがブートローダによって初期化されると、このレジスタは選択されたままになります。つまり、製品版ファームウェアで Mcu_Init / Mcu_InitClock / Mcu_SetMode を呼び出しても、ブートローダ内の MCU 初期化は再実行されません。何をすればいいのでしょうか?
3) 質問 2 と同様に、PTA24 ピンと PTA25 ピンでも同じ問題が発生しています。生産ファームウェアでは、これらは正しく構成されており、正常に動作します。ただし、ブートローダによって初期化されると、SOSC ソース構成は失われます。何をすればいいのでしょうか?
遅くなって申し訳ありません。
解決策は、ブートローダ fw の .mex から同じ構成をアプリケーション fw に配置することでした。アプリケーション FW で MUC を初期化せず、ブートローダ FW でのみ初期化します。
ヒント: Startup_Code に最適化を適用しないでください
こんにちは、 @danielmartynek
ご返信ありがとうございます。
1.障害例外を特定中です。特定できましたら、こちらに返信いたします。
2 & 3. RTD 5.0
こんにちは@myst 、
1.
障害例外を識別することが重要です。根本的な原因は多数CAN。
次のドキュメントに従ってください。
https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-...
https://community.nxp.com/t5/S32K-Knowledge-Base/S32K14x の障害処理/ta-p/1114447
2と3。
これはどの RTD リビジョンですか?
ありがとうございます
BR、ダニエル