これは問題報告になる予定でしたが、なんとか理解できたので、代わりに、他の誰かのトラブルを救うための情報投稿を投稿しています。
私は、u-blox IRIS-W1 EVKでSDKサンプルを実行するのに苦労していました。これは、多くのスイッチとオプションのトレースカットを備えたボードであるため、ハードウェアで何かが正しく選択されていないと思いがちです。ユニットでフラッシュをプログラムすることはできましたが、プログラムをデバッグしようとすると、次のようにデバッガが「失われます」。
Debugger lost in a random part of RAMDebugger lost in a random part of RAMDebugger lost in a random part of RAMRAM のランダムな部分でデバッガーが失われました
私の問題は、プロジェクトに正しいフラッシュ構成データがないことでした。IRIS-W1(2023年第45週以降に製造されたユニット、日付コード「2346」以降)には、別の構成が必要なFidelex QSPIフラッシュパーツがあります。
短いバージョン:
それを行うと、デバッガは正常に動作し、MCU-Link仮想COMポートからのシリアル出力を確認できました。私は2つの異なるビルド構成を作ることをお勧めします。"Debug-FRDM" と "Debug-IRIS" の場合、プロジェクト内に両方の構成を含めることができます (例:"flash_config_frdm.c" と "flash_config_iris_fidelex.c") を作成し、そこにあるべきでないものをビルドから除外します。
「flash_drv」/「mflash.drv.c」もあります交換が必要なドライバーと、独自のIRISアプリケーションを構築する人のためのRF電力制限定義。
うまくいけば、これにより誰かが数時間頭を悩ませる必要がなくなります。
ダナ・M
すみません、勘違いしていたようです...私は自分自身の問題を解決したので、同じ問題に遭遇している他の人がそれを見つけることができるように、それについて投稿しました。
ダナ・M
もう一つ...MFlashドライバー(mflash_drv.c)を交換した場合そして、重要なことに、ドライバーの名前を変更すると、私が今発見したように、リンカファイルも変更する必要があります。プロジェクトには、次のリンカファイルが必要です(Wi-Fiの例などにあります)。
最初の3つ(main_*)は「mflash_drv.o」と言及しています。また、フラッシュ ドライバーが XIP フラッシュではなく RAM に存在することを確認します。これは、mflash_init() がフラッシュ ドライバーを呼び出すため、FlexSPI のセットアップ時にドライバー コード自体がフラッシュ内にあるとエラーが発生するため、重要です。
「mflash_drv.o」の言及を変更するだけですワイルドカードのアスタリスク (例: "mflash_drv*.o") を追加します。私のプロジェクトでは、mflash_drv_nxp_frdm.c(元の例からmflash_drv.cから名前が変更されました)とmflash_drv_ublox_iris_fidelex.cがあります(u-bloxのGitHubリポジトリからコピーされ、名前が変更されました)。変更されたリンカーファイルを使用すると、すべてがビルドされ、正常に実行されます。
main_data.ldt:
*mflash_drv*.o(.text .text* .rodata .rodata*)
*fsl_flexspi.o(.text .text* .rodata .rodata*)
*(.data*)main_rodata.ldt:
*(.rodata)
*(EXCLUDE_FILE(*mflash_drv*.o *fsl_flexspi.o).rodata.*)
*(.constdata .constdata.*)
. = ALIGN(${text_align});main_text.ldt:
*(EXCLUDE_FILE(*mflash_drv*.o *fsl_flexspi.o) .text*)これが皆さんのお役に立てば幸いです。
ダナ・M
こんにちは
これはu-bloxモジュールでこの問題に直面しているため、SDKサンプルの実行方法について詳しい情報を持っている可能性があるため、モジュールメーカーに連絡することを強くお勧めします。おそらくステップが欠落しています。
現在、これを複製するためのこのEVKはなく、FRDMボードとRDボードのみがあります。
モジュールメーカーから返信がない場合は、お知らせください。
よろしく
Daniel.
私はu-bloxフォーラムに投稿を書きましたが、それはまだ「レビュー待ち」です。この投稿は、NXPフォーラムで助けを求めている人々に役立つと思いました。他のサードパーティのRW612モジュール(AzureWave、Murataなど)を使用している人にも役立つ可能性があります。
ダナ・M
こんにちは
もしかしたら、このクエリですでにモジュールメーカーに連絡していますか?
よろしく
Daniel.
私も全く同じ問題に直面していますが、問題は既に正しい flash_config.c を使用していたことです。および mflash_drv.cGitHubリポジトリからのファイル。また、Fidelixを使用していることも確認しました。hello_worldのサンプルプログラムを書き込んで実行してみたところ、全く同じアドレスで全く同じデバッグ出力が得られました。ファイルスワップではないので、別の設定の問題に違いない。プロジェクトの設定をデフォルトから変更しましたか?GDB SEGGERとリンクサーバー、どちらを使用しましたか?ありがとう。
私はSEGGER J-Linkを使用しました。ここに記載した手順以外に、特に何もする必要はありませんでした。フラッシュドライバのソースファイルの名前を変更した場合は、それに合わせてリンカーファイルも変更するようにしてください。