こんにちは、
私は、外部 NOR フラッシュを搭載し、外部 RAM のない RT1021CAG4B を搭載したカスタム ボード用の簡単なプロジェクトを作成しようとしています (SDRAM チップは搭載されていますが、RT1020 と互換性がないことがわかりました)。目標は、点滅例のようなシンプルなビルドを作成し、それを RT1020CAG4B にロードして、いくつかの追加機能を証明し、新しい外部 RAM 構成を作成する間のテストを支援することです。
これまでに次のことを行いました。
これを実行するとビルドはできるようになりますが、デバッグしたりコードを直接起動しようとすると、ResetISR に到達する前に何らかの原因で PC が異常終了します。デバッグすると、デバッガーはすぐに実行を開始し (停止しません)、一時停止すると 0x002XXXXX のどこかになります。あるいは、flashloader と blhost を使用してコードをフラッシュにロードし、blhost を使用して resetIRS から直接実行すると、コードは正常に実行されます。
ボード上の外部メモリに問題があり、SDRAM 構成中に問題が発生している可能性があるため、これは DCD の問題ではないかと疑っていました。`image_vector_table` で DCD アドレスを NULL に設定したり、DCD 内のすべての SEMC コマンドを消去したりするなど、複数の場所で DCD を削除しようとしましたが、どちらも違いはありませんでした。
外部メモリの参照や構成を削除するために再構成する必要がある何かが欠けているのでしょうか?私がやっていること(外部 NOR flexSPI フラッシュから起動し、内部メモリのみを使用するシンプルな RT1021CAG4B プロジェクトの作成)を実行するためのより良い方法はありますか?私の知る限り、RT1021 とフラッシュ メモリは問題なく動作しており、問題は SDRAM のみです。
現在の構成を詳しく説明するのに役立つ情報があればお知らせください。
ありがとう、
ロブ
こんにちは、foned6199さん。素早い返信とご提案に感謝します!
結局、この投稿https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-XIP-no-FlexSPI-transactions/mp/1628013を見つけて、問題の解決策を見つけることができました。使用しているフラッシュチップがevkボードから変更されたことに気付かなかったため、フラッシュ構成、具体的にはQEビットレジスタが間違っていました。もっと早く兆候に気づくべきでした。フラッシュではなく内部メモリから実行できたので、ようやくすべてが理解できました。
改めて、サポートに感謝します!ありがとう!
こんにちは!
RT1021 の問題は、EVK の例に残っている SDRAM 参照から発生します。SDRAM 設定を削除しても、IVT が引き続き DCD セクションを指し、リンカー/デバッガー スクリプトがデータを配置したり、外部 RAM を初期化しようとしたりする可能性があります。これを修正するには、IVT dcdAddress を 0x00000000 に設定し、すべてのコード、データ、スタックが内部 RAM のみを使用するようにリンカー スクリプトを調整し、デバッガー設定で SDRAM init を無効にします。これらの変更により、Blinky プロジェクトは内部メモリのみを使用して外部 NOR フラッシュから正常に起動するはずです。