1373296_ja-JP

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

1373296_ja-JP

1373296_ja-JP

アプリケーションがSDRAM用にビルドされている場合のRT1170デバッグ

こんにちは、

私はMCUXpressoとそのSDKを使用してRT1170用のアプリケーションを開発しています。

提供されているサンプル プロジェクトはすべて、「DTC」 RAM を使用するように構築されているようです。他の多くのユーザーと同様に、私のアプリケーションは大きすぎてそこに収まらないため、「外部 SDRAM」を使用しようとしています。

他のフォーラム投稿で提案されている解決策をいくつか試してみました(特にhttps://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/mp/896979)これでプログラムを実行できるようになり、アプリケーションがフラッシュされていればプログラムをデバッグできます

ただし、 「アプリケーションを RAM にリンク」でビルドして実行すると、ブレークポイントに到達すると、通常、アプリケーションはそこで停止します。

これは SDRAM を正しく初期化しなかったことが原因であると推測します。前述の投稿では、デバッガーが SDRAM コントローラを初期化するための接続スクリプトとして「RT1050_SDRAM_Init.scp」を使用しています。このファイルを使用すると、当然ながら失敗します。

このスクリプトを RT1170 で動作するように適応させるアイデアが全くありません。これを実行した人はいますか、またはこれを生成する方法についてアドバイスをくれますか?

ご協力いただければ幸いです。

Re: RT1170 debugging when application is built for SDRAM

こんにちは@jingpan


提供されている手順に従い、RT1170_BriefOverview_v210.pdf に記載されている変更を加えて hello world をフラッシュすると、デバッグ モードで SDRAM を使用できるようになります。

しかし、この変更後、SDRAM もコードの保存に使用されるようになりました。


私のアプリケーションでは、コードをフラッシュ メモリに保存し、BOARD_SDRAM をヒープ セクションとスタック セクションにのみ使用したいと考えています。


アプリケーションをフラッシュ メモリにフラッシュし、そのアプリケーションはヒープ セクションとスタック セクションに BOARD_SDRAM を使用します。


SOのために必要な変更についてご指導ください。

Re: RT1170 debugging when application is built for SDRAM

ありがとう@jingpan

.scpを追加するだけで済みましたファイルとそれは機能しました。

ステップ 5、6、8 はすでに実行しましたが、他のステップも試してみます。

参考になればと思い、board.cに以下の変更を加えました。これは、< https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/mp/896979>で説明されているものと同等だと思います - RT1170_SDRAM_NOT_CACHED が定義されています:

#ifdef USE_SDRAM
#ifndef RT1170_SDRAM_NOT_CACHED
/* 領域 9 の設定: 通常タイプのメモリ、共有不可、外側/内側の書き戻し */
MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64MB);
#それ以外
MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_64MB);
#endif /* RT1170_SDRAM_NOT_CACHED */
#endif


Re: RT1170 debugging when application is built for SDRAM

こんにちは@robert_s

このスクリプトは RT1050/60 には適合しますが、RT1170/60 には適合しません。添付のスクリプトを使用CAN。スクリプト ファイルの他に、実行する必要がある手順が他にもあります。

 C/C++ ビルド > プロパティの MCU 設定のメモリ詳細で、BOARD_SDRAM を SRAM_DTC_m7 の上に移動します。

  1.  Connect スクリプトには RT1170_connect_M7_wake_M4_SDRAM_init.scp を使用します。
  2.  追加オプションに --cachelib libm7_cache.so を追加します。
  3. USB/イーサネット/SDHC を使用する場合は、DMA バッファをキャッシュ不可領域に配置してください
  4.  MCU C コンパイラ > プリプロセッサに USE_SDRAM を追加します。
  5.  プロパティ->設定->マネージリンカースクリプトでRAMへのリンクを選択します
  6.  プロジェクトが USB に関連付けられている場合は、MCU C コンパイラ > プリプロセッサに DATA_SECTION_IS_CACHEABLE=1 を追加します。
  7.  プロジェクトがフリートスのない USB ホストに関連付けられている場合は、ヒープを DTCM またはキャッシュ不可能な領域に配置します (bm)

よろしくお願いいたします。

ジン




タグ(1)
評価なし
バージョン履歴
最終更新日:
‎12-20-2025 02:37 AM
更新者: