私は i.MX RT1189 EVK に取り組んでおり、CM33 アプリケーションが CM7 アプリケーションをトリガーするマルチコア セットアップを検討しています。最初のテストとして、CM7 で簡単な LED 点滅プログラムを実行したところ、正常に動作しました。両方のイメージは外部 NOR フラッシュから実行されるため、XIP が有効になります。
ただし、CM7 アプリケーションを拡張してフラッシュ機能 (具体的には、フラッシュの初期化とベンダー ID の読み取り) を追加すると、CM7 アプリケーションは実行されなくなります。LED は点滅せず、実行が早期に停止したことを示します。MCUXpresso IDE を使用してデバッガーを接続すると、BusFault が表示されます。これは、フラッシュの初期化が干渉している可能性があることを示唆しています。
読み取り、書き込み、消去などのフラッシュ操作を実行する、メインの CM7 ベースのアプリケーションでも同じ動作が見られます。このアプリケーションもフラッシュの初期化を実行しますが、CM33 によって起動された場合、同様に実行に失敗します。
このユースケースはどのように処理すればよいでしょうか?
アプリケーション自体が XIP モードで実行されているときに、CM7 で外部フラッシュ操作を安全に実行するにはどうすればよいですか?
こんにちは@anand_s 、
この投稿 ( Re: RT1021: 同じフラッシュから XIP を実行しているときにフラッシュに書き込む - NXPコミュニティ) で述べたように、FlexSPI ドライバを RAM にロードし、FlexSPI 関連コードを同時に実行せずにフラッシュにアクセスすることで、この問題を回避できるはずです。RT1180-EVK の SDK のコード「 flexspi_nor_polling_transfer 」を参照してください。
BR、
エドウィン。