NXPサポーターの皆様、こんにちは。LLD に基づいて S32K312 を使用してコード セットを構成しました。今、WKUP 機能を統合したいのですが、いくつか問題が発生しました。コードに次のコードを追加しない場合:
プログラムはスタンバイモードに入りますが、起動後に異常動作します。次のコードを追加すると:
ADC、PWMなどの他のペリフェラルインターフェースを呼び出してデータを取得すると、ハードウェアエラーが発生します。たとえば、Adc_Sar_Ip_GetConvData、Emios_Icu_Ip_StartSignalMeasurementなどです。
ペリフェラルを呼び出さなければ、プログラムは正常にスタンバイ モードに入り、起動することができます。その理由は何でしょうか?トラブルシューティングの方向性はどのようなものでしょうか?コードを共有できないことをお詫び申し上げます。ご返信をお待ちしております。
こんにちは@ZZZZZJH 、
はい、いくつか違いがあります。通常のスタンバイ終了では、HSE と sBAF の初期化コードと HSE_FW 検証の両方が実行されますが、高速スタンバイ終了では時間を節約するためにバイパスされます。また、高速スタンバイ終了はユーザー定義のアドレスに起動し、ユーザーは Reset_Handler を呼び出して MCU を完全に初期化する前に、いくつかの重要なタスクを実行できます。
詳細については、S32K3 リファレンス・マニュアルの第 41.2 章をご覧ください。
よろしくお願いします、
ジュリアン
こんにちは@ZZZZZJH 、
最初に切り取ったコードと 2 番目に切り取ったコードの違いはわかりませんが、POWER ドライバの構成がいくつか欠けているようです。コンポーネントが有効になっていない場合、それを初期化または使用しようとすると、ハードフォールトが発生します。
たとえば、RUN モードでは、McuPeripheral タブで ADC インスタンスと PWM インスタンスが有効になっているかどうかを確認します。
また、FastStandby または通常のスタンバイ終了を使用していますか?fast を使用する場合は、ウェイクアップ後にリセット ハンドラーにジャンプして MCU を正しく初期化する必要があります。
次のコミュニティ投稿にも、低電力の構成例がいくつか記載されています。
よろしくお願いします、
ジュリアン