2157509_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2157509_ja-JP

2157509_ja-JP

NXP S32k312 HSEリセット問題の理解

こんにちは、 @lukaszadrapa

解決済み: Re: NXP s32k312 HSE リセット問題 - NXP コミュニティ

現在、RTD 4.0.0 を使用しており、新しいバージョンにアップグレードするオプションはありません。デバッガ接続なしで発生するHSEリセットの問題を解決するために、次のことを実装しました。 解決策1 以前のご提案に基づいて:

解決策1:

/* HSE_CLKを設定し、CONFIG_REG_GPRレジスタにアクセスする前に、
ドライバは、セキュアBAFがWFI状態に入るのを待つ必要があります。
PRTN0_CORE2_STATレジスタ。*/
する {
WfiStatus = (BOARD_MC_ME->prtn0_core2_stat & MC_ME_PRTN0_CORE2_STAT_WFI_MASK);
} while (WfiStatus != MC_ME_PRTN0_CORE2_STAT_WFI_MASK);


このソリューションは、デバッガーなしで適切なリセット動作を確保するために、クロックの初期化中に実装されます。

ただし、NXP コミュニティは別のアプローチも提案しています。

解決策2:

#MU_FSR_ADDRESS (揮発性 os_uint32_t*)0x4038c104U を定義します
#HSE_INIT_OK_SHIFT 24U を定義します
#UTEST_HSE_ENABLED_ADDRESS (揮発性 os_uint32_t*)0x1B000000U を定義します
#UTEST_HSE_ENABLED_DEFAULT 0xFFFFFFFFU を定義します

(UTEST_HSE_ENABLED_ADDRESS != UTEST_HSE_ENABLED_DEFAULT)の場合
{
ボードのHSEinitを待機します。
}

void board_waitforHSEinit(void)
{
揮発性 os_uint32_t* Mu_FSR_アドレス = MU_FSR_ADDRESS;
(((*Mu_FSR_Address >> HSE_INIT_OK_SHIFT) & 0x01) != 0x01U の間);
}


どちらの解決策もデバッガなしでリセットの問題を解決しますが、 解決策 2 : HSE ステータス ビットが予期せず破損したり、まったく設定されていない場合 (たとえば、ハードウェア障害が原因)、ソフトウェアが while ループ内で無期限に停止する可能性があります。

デバッガーのサポートなしで HSE リセットの問題を処理する場合、これら 2 つのアプローチのどちらがより適切かつ堅牢であるかを教えてください。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-22-2025 08:35 AM
更新者: