2131629_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2131629_ja-JP

2131629_ja-JP

電源サイクル時の IPCF-(S32k358) 初期化に関する問題 (デュアルコア セットアップ)

電源サイクル時の IPCF 初期化に関する問題 (デュアルコア セットアップ)

2つのコア間でメモリを共有するためにIPCFを使用しています。基本的な検証のために、以下の2つの機能を実行しています。

  • コア0 :LED点滅
  • コア2eMIOSによるPWM生成

両方のコアはIPCFを正しく実行するように設定されています。システムをデバッグモードで実行すると、LEDの点滅とPWMはどちらも正常に動作し、すべてが期待通りに動作します。しかし、電源を入れ直す(ボードの電源をオフ/オンする)と、何も実行されず、LEDの点滅もPWMも動作しません。

これまで試してみたことは次のとおりです。



  • IPCF 初期化中の競合状態を回避するために、Core 2 に遅延を追加しました。
  • IPCF なしでシステムをテストしました。IPCF を削除した後、電源を入れ直した後やデバッグ モードでもすべて正常に動作します。これにより、IPCF が問題に関連していることが確認されます。


  1. 問題を次の行に絞り込みました:
    ipc_shm_init(&ipcf_shm_instances_cfg);

    この関数呼び出しの後に配置されたものは、電源サイクルでは実行されません。


  • 残留データが問題の原因である可能性があると疑い、使用前に共有メモリをクリアしようとしました。ただし、メモリのクリアを組み込むと、電源投入後にシステムが再び動作しなくなります (ただし、デバッグ モードでは引き続き動作します)。

共有メモリをクリアする方法は次のとおりです。

#IPCF_LOCAL_MEM_ADDR ((void *)0x20480000U) を定義します。
#IPCF_REMOTE_MEM_ADDR ((void *)0x20482000U) を定義します。
#IPCF_MEM_SIZE (0x2000U) を定義します

void clear_ipcf_shared_memory(void)
{
メモリセット(IPCF_LOCAL_MEM_ADDR, 0, IPCF_MEM_SIZE);
メモリセット(IPCF_REMOTE_MEM_ADDR, 0, IPCF_MEM_SIZE);
}
この問題の解決にご協力いただけませんか?参考までに、作業中のプロジェクトファイルも共有しました。

よろしくお願いします。

ガネーシュ・バグワット

Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)

こんにちは、ダニエル。

ご指導ありがとうございます。さらに調査を進めると、 startup_cm7.sファイルには共有メモリを初期化するためのセクションが含まれていますが、 #if defined(MULTIPLE_CORE) && defined(MULTIPLE_IMAGE)の下で条件付きでコンパイルされます。これらの定義を含むようにアセンブラ プリプロセッサを更新することで、問題を解決でき、電源を入れ直した後でも IPCF 初期化が正しく機能するようになりました。参考までに添付画像をご覧ください。

ご協力ありがとうございます!

よろしくお願いします、
ガネーシュ・バグワット

Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)

こんにちは@GaneshBhagwatさん

SRAM ECC のドキュメントについては、S32K3xx リファレンス マニュアルとこの AN13388 のみがあります: https://www.nxp.com/webapp/Download?colCode=AN13388

ただし、任意の RTD サンプル プロジェクトを参照することはCAN。

SRAM ECC は起動コードで初期化されます。

danielmartynek_0-1752577890061.png


よろしくお願いいたします。

ダニエル

NXPが提供するあらゆるサポート、情報、テクノロジー(以下「資料」)は、明示的または黙示的を問わず、いかなる保証もなく現状のまま提供され、NXPは、適用法で認められる最大限の範囲において、資料に関連する直接的および間接的な責任および損害を一切否認します。NXPは、アプリケーションまたは製品設計に関するいかなる支援についても責任を負いません。資料は、NXP製品に関連してのみ使用できます。資料に関してNXPに提供されたフィードバックは、NXPにより制限なく使用できます。

Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)スタートアップ コードで ECC 初期化を正しく実装する方法に関する詳細なドキュメントや例がどこで見つかるか教えてください。

また、ECC 関連の問題以外に、電源サイクル後に同様の HardFaults を引き起こす可能性のある他の一般的な原因はありますか?
Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)

こんにちは、ダニエル。

迅速なご対応に改めて感謝申し上げます。

参考までに、メモリ ビューのスクリーンショットを添付しました。1 つはデバッガーの起動直後に撮影したもので、もう 1 つは HardFault が発生したときに電源を入れ直した後にキャプチャしたものです。アドレス 0x20482008 には ?? が表示されませんが、この場所の値はデバッガー セッションと電源サイクル後とで異なることに気付きました。

今後とも変わらぬサポートを賜りますようお願い申し上げます。

よろしくお願いします、
ガネーシュ・バグワット

Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)

こんにちは@GaneshBhagwatさん

この問題は初期化されていない SRAM ECC によって発生している可能性があります。

通常、SRAM ECC はデバッガーによって初期化されます。デバッガーを使用しない場合、アプリケーションは起動コードで ECC 初期化を処理する必要があります。これを行わないと、初期化されていないメモリにアクセスするときに ECC エラーが発生する可能性があります。

これを確認するには、メモリ ビューでアドレス 0x20482008 (正確なバス エラーの BFAR 値) のメモリをチェックしてみてください。その住所に?? が見えますか?
SO、初期化されていないメモリによる ECC 障害を示している可能性があります。


よろしくお願いいたします。

ダニエル



Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)

こんにちは、ダニエル。

迅速なご対応ありがとうございます。

ご提案通り再度確認しました。リセットせずにデバッガーを再接続すると、コードは関数 void clear_ipcf_shared_memory(void) 内でHardFaultになります。

ただし、clear_ipcf_shared_memory() の呼び出しをコメント アウトすると、今度は ipc_shm_init() 内でHardFaultが発生します。

参考までに、両方の HardFault シナリオのスクリーンショットを添付しました。
これらの障害の原因を理解し、問題を解決する方法を教えていただけますか?

よろしくお願いします、
ガネーシュ・バグワット

Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)

こんにちは@GaneshBhagwatさん

デバッガーを (リセットせずに) 再度アタッチすると、ipc_shm_init() 内のルックでスタックしますか、それとも障害例外がありますか?



Re: Issue with IPCF-(S32k358) Initialization on Power Cycle (Dual-Core Setup)また、次のように IPCF で構成されたアドレスで memset を使用して共有メモリをクリアすることも試みました。

memset((void *)ipcf_shm_instances_cfg.shm_cfg[0].local_shm_addr,0、(size_t)ipcf_shm_instances_cfg.shm_cfg[0].shm_size);
memset((void *)ipcf_shm_instances_cfg.shm_cfg[0].remote_shm_addr,0、(size_t)ipcf_shm_instances_cfg.shm_cfg[0].shm_size);

しかし残念ながら、それでも問題は解決しませんでした。
标记 (1)
无评分
版本历史
最后更新:
‎11-21-2025 10:22 AM
更新人: