NXPチームの皆様、こんにちは。
バックグラウンド:
詳細な調査報告書はPDFファイルで添付されています。
主な争点
ソフトウェアがクラッシュし、MCUはClock_Ip_DistributePll()でリセットされます。さらに、デバッガーが接続できない場合もあります。
デバッガをホットアタッチしようとした際、リセット理由としてHSE_CLK_FAILが報告されることがありました。
上記の手順、IVTおよびDCFの記録を確認し、この問題がなぜ起こっているのか、その解決策についてもご確認いただけますか。追加情報が必要な場合はお知らせください。
HSEの設置手順、IVTの設定、DCF記録を確認し、なぜこの問題が発生しているのか、またどのように解決できるのか教えていただけますか?
追加情報が必要な場合はお知らせください。
よろしくお願いします、
シュバム・パルデシ
70秒と20秒は、リセットからHSE_STATUS_INIT_OKまでの時間です。つまり、基本的に起動時間だけが含まれているということですね?
どのデバイスでも同じように動作しますか?
こんにちは、 @davidtosenovjan
当社のソフトウェアはFBLとAPPLで構成されており、どちらも同じ機能リセット機構を使用しています。
APPLがリセットを開始すると、この問題は発生しません。
FBLがリセットを開始すると、Clock_Ip_DistributePll()内でAPPL起動時にソフトウェアがクラッシュします。
当初は、Mcu_InitClock() の後、Mcu_DistributePllClock() の前に HSE_STATUS_INIT_OK のチェックを追加しました。これにより墜落は回避された。しかし、HSE_STATUS_INIT_OKが設定されるまでには約20秒かかり、その後、実際のAPPLの起動が続行されました。
本日、添付のスクリーンショットに示すように、HSE_STATUS_INIT_OK チェックを APPL の Mcu_Init() より前の段階に移動しました。
この手順を実行すると、HSE_STATUS_INIT_OKがほぼ即座に設定され、クラッシュは発生しなくなります。
以下の点を明確にしていただけますか?
FBLとAPPLは同じリセットメカニズムを使用しているにもかかわらず、なぜこの問題はFBLによってリセットが開始された場合にのみ発生するのでしょうか?
Mcu_InitClock() の後に HSE_STATUS_INIT_OK をチェックすると約 20 秒かかるのに、Mcu_Init() の前にチェックするとほぼすぐに利用可能になるのはなぜですか?
FBLではHSE_STATUS_INIT_OKチェックが不要なのに、APPLの起動時には必要となるのはなぜですか?
明確な根本原因の説明と推奨される初期化手順を提示してください。現在のソリューションが堅牢であり、本番環境で問題を引き起こさないことを確認する必要があります。
追加の詳細情報や時計の設定に関する詳細情報が必要な場合はお知らせください。
よろしくお願いします、
シュバム・パルデシ