これは、低レベルの(Linuxではない)マルチコアデバイスでの私の最初の経験なので、これは愚かな質問かもしれません...
「Getting Started with MCUXpresso SDK for MIMXRT1170-EVKB」のセクション 6.4 と 6.5 (Rev.0 — 31 December 2022)、これはSDKTOP/boards/evkbmimxrt1170/multicore_examples/hello_worldを指します。私はSDK-2-16-100_MIMXRT1170-EVKBを使用しています。また、EVKBの20ピンヘッダーにJLinkプログラマーを取り付けています。
私は初めてcm4 / cm7アプリケーションをビルド/ロード/実行することができましたが、指示が私には意味をなさないため、指示に完全には従わなかった(両方のコアでgdb / loadを実行する必要がありました)。
セクション 6.4 では、各アプリケーションを "ビルド" すると述べています。いいです;しかし、セクション6.5には次のように書かれています。プライマリ コア デバッガーは、プライマリ コア アプリケーションと補助コア アプリケーションの両方の SoC フラッシュ メモリへのフラッシュ処理を処理します。".それでよろしいですか。私は、何かを動作させるために、各コアに対して「ロード」操作(gdbを使用)を実行する必要があることがわかりました。
また、CM4のコードにマイナーチェンジをしてみましたが、プログラミングにはなっていないようです。gdbの "load"もプログラミング前にすべてを消去しますか?
ここでのご意見はいただければ幸いです。
ありがとうございます
さて、今はわかったと思います...
@Pavel_Hernandez、PDFは非常に便利でしたが、スレッドはIDEで押すべきボタンを指示する一連の命令にすぎません。物事を本当に理解しようとすると、あまり良くありません。
CM4の画像は、実際には「.core1_code」と呼ばれるセクションとしてCM7の画像に組み込まれていることがわかりました。CM7 のビルドは、以前にビルドされた CM4 イメージに依存するため、CM7 のビルド手順の 1 つは、CM4 イメージを CM7 のメモリ マップに組み込むことです。これは、cm4を使用してgdbで「ロード」を行うときに、実際のSPIフラッシュスペースにプッシュされていなかった理由を説明しています。私はこれが行われる方法があまり好きではありませんが、それは問題ありません。少なくとも今は理解しています。
どうもありがとう、大きな助け!
こんにちは、私の名前はPavelです、そして私はあなたのケースをサポートします、私はこれがデュアルコアプロセスについての詳細を理解するのに役立つことができるこのアプリのノートを見つけました、章2.1.2を参照してください詳細なブートフロー。
似たような議論がいくつかあり、理解するのに役立つかもしれません。
"..プライマリ コア デバッガーは、プライマリ コア アプリケーションと補助コア アプリケーションの両方の SoC フラッシュ メモリへのフラッシュ処理を処理します。"
たぶん、この他のスレッドはあなたがIDEでそれをテストするのを助けるかもしれません。
JLINKを使用してRT1170デュアルコアをデバッグする方法 - NXP Community
よろしくお願いいたします
パベル
まあ、これで問題が解決したとは言いたくありませんが、両方のコアでコードを実行することができました...
私はgdbがJLINKにフラッシュに書き込むように指示する方法に疑問を持っていたので、jlink gdbサーバーにフックされたgdbを使用する代わりに、各セクションを手動でロードする単純なjlinkスクリプトを作成しました(下記参照)。そのためには、 .elf から読み込み可能な各セクションを抽出する必要がありましたファイルを独自のバイナリファイルに入れます。
作成された各ファイルで、次のスクリプトを実行することができました。
EOEの1
デバイス=MIMXRT1176DVMAA_cm7
スピード4000
si SWDの
r
h
ロードビン elfsect_.flash_config.bin,0x30000400
ロードビン elfsect_.ivt.bin,0x30001000
ロードビン elfsect_.core1_code.bin,0x33fc0000
ロードビン elfsect_.interrupts.bin,0x30002000
ロードビン elfsect_.text.bin,0x30002400
loadbin elfsect_。ARM.bin,0x30008d00
ロードビン elfsect_.init_array.bin,0x30008d08
ロードビン elfsect_.fini_array.bin,0x30008d0c
ロードビン elfsect_.data.bin,0x30008d10
行く
出口
CM7をロードすると、うまくいきました。jlinkサーバーはダウンロードを確認したと言っていましたが、検証は失敗していたようです。
誰かが(NXPサポート)これを説明できますか?