2405781_ja-JP

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

2405781_ja-JP

2405781_ja-JP

S32K358:アプリケーションを直接フラッシュした際、電源オンリセット後にCore 0およびCore 2が実行されません

 S32K358デュアルコアアプリケーション(Core 0およびCore 2)に問題が発生しています 電源オン時のリセット時に。

  •  Core 0およびCore 2のアプリケーションコードを直接フラッシュすると、アプリケーションは正常に実行され、すべての機能が期待通りに動作します。
  • しかし、 電源オンリセット(POR) を実行した後、制御は コア0に到達しますが、アプリケーションは期待通りに実行できず、コア2は実行されていません。
  • この問題は、ブートローダーなしでアプリケーションを直接起動した場合、POR後に一貫して再現可能です。
  • 対照的に、 アプリケーションがブートローダー経由で起動 されると、Core 0とCore 2の両方が正しく実行され続け、その後のPOR後も同様に動作します。
  • したがって、この問題は POR後の直接アプリケーション起動 特定のものであり、ブートローダーを通じてアプリケーションを入力する際には観察されません。
Re: S32K358: Core 0 and Core 2 Fail to Execute After Power-On Reset When Application Is Flashed Dire

こんにちは、@ Julián_AragónM さん

現在、s32k358カスタムボードを使用していますが、POR後に制御がcore0に渡るものの、そこで停止してしまいます。これはアプリケーションを直接フラッシュしたときに起こります。

コア0からコア2を有効化します。

直接フラッシュ書き込みを行う際、CM7_0_VTOR_ADDRとCM7_2_VTOR_ADDRの両方が正しく設定されていますか?- はい、初めてアプリケーションをフラッシュしたときは両方のコアは動作しますが、問題はPORの後だけです。

あなたのリファレンスプロジェクトと比較したところ、System.cで唯一の違いが見られますファイル


/* サイズ:リンカーシンボルからの情報インポート、タイプ:ノーマル、インナーキャッシュポリシー:インナーライトバック、書き込み・読み込み割り当て、アウトドアキャッシュポリシー:アウトライトバック、書き込み・読み込み割り当て、共有可能:いいえ、特権アクセス:RW、非特権アクセス:RW */
 #if (defined(S32K396) || defined(S32K394)) & defined(MULTIPLE_IMAGE)
rasr[6]=((uint32)0x030B0001UL)|(((uint32)__RAM_CACHEABLE_SIZE - 1) << 1);
#else
/* サブリージョン7と8*を無効にしてください
rasr[6]=((uint32)0x030B0001UL)|(((uint32)__RAM_CACHEABLE_SIZE - 1) << 1)|(1<<15)|(1<<14);
#endif

Re: S32K358: Core 0 and Core 2 Fail to Execute After Power-On Reset When Application Is Flashed Dire

こんにちは、 @Indhumathi さん

これはNXPのEVB S32K358ですか?それともカスタムデザインですか?

この問題についてもう少し情報を教えていただけますか?「期待通りにアプリケーションを実行しない」とはどういう意味ですか?MCUがリセットされているのか、それともSWのどこかで閉じ込められているのでしょうか?

直接フラッシュ書き込みを行う際、CM7_0_VTOR_ADDRとCM7_2_VTOR_ADDRの両方が正しく設定されていますか?

起動時のIVTマーカー(CM7_2_ENABLE=1)でCM7_2を有効にしていますか?それともSW(MCU/電源ドライバー)で有効化していますか?

コア0からコア2を始めるシンプルなマルチコアプロジェクトがあります。リファレンスとして使って設定を点検・比較できるかもしれません。S32K358マルチコアはCM7_0からCM7_2を開始します

よろしくお願いします、
ジュリアン


Re: S32K358: Core 0 and Core 2 Fail to Execute After Power-On Reset When Application Is Flashed Dire

こんにちは、 @Julián_AragónM さん

POR後もコア0は動作していますが、コア2に切り替わりません。

問題解決のためにサポートしていただけませんか?

Re: S32K358: Core 0 and Core 2 Fail to Execute After Power-On Reset When Application Is Flashed Dire

こんにちは、 @Indhumathi さん

あなたが共有してくれたsystem.cのセクションはS32K358には関係ありませんが、S32K396には関係があります。おそらく、S32K358のMPU構成を共有したかったのだと思います。

POR後もコア0は動作していますが、コア2に切り替わりません。

プロジェクトのプリプロセッサ記号を調べてもらえますか?マルチコアプロジェクトでは、 MULTIPLE_COREマクロを定義する必要があります。単一のELFプロジェクトでない場合は、 MULTIPLE_IMAGEマクロも必要です。単一のELFプロジェクトの場合は不要です。

MULTIPLE_IMAGEが設定されていない場合、デバッガーが接続されている状態ではプロジェクトは正常に動作しますが、デバッガーが接続されていない状態ではハードフォルトが発生します。これは、起動コードがCore 2のRAM上でECC初期化を実行しないためです。

Julin_AragnM_0-1787172984643.pngJulin_AragnM_0-1787172984643.pngJulin_AragnM_0-1787172984643.png

Core 2を有効にするためにMCU/Powerドライバーを使っていると推測します。HLD(MCAL)を使っていますか、それともLLD(IP)を使っていますか?

Core 2にデバッガーを接続しようとした場合、Coreが初期化段階で停止しているのか、それともデバッガーが接続できないのかを確認できますか?

最後に、問題が再現できるような簡単なテストプロジェクト、または設定ファイルとルーチンを提供していただけますか?

よろしくお願いします、
ジュリアン

タグ(1)
評価なし
バージョン履歴
最終更新日:
16 時間前
更新者: