1117129_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1117129_ja-JP

1117129_ja-JP

RT1050 のさまざまなメモリの起動時間<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

私が取り組んだ小さなプロジェクトは、RT1050の起動がさまざまなメモリタイプからどのように実行されるかを理解することでした。SDK の LED_blinky コードをベースラインとして使用し、EVKB ボードでいくつかのテストを実行しました。私が収集したデータと、より詳細なテスト手順を以下に説明します。

テスト手順

起動時間は、プロセッサが最初に電力を受け取る時間から、main() 関数からコードの最初の行を実行するまでの時間として定義されます。

オシロスコープ(Tektronix TDS 2014)を使用して、POR_B*信号の立ち上がりエッジから次の2点までの時間を測定しました。

  1. FlexSPI_CSアサート(ROMによるFlexSPIの最初の読み取り)**
  2. GPIOアプリケーションコード内のトグル(コード実行の開始を通知します)。

*POR_B信号は、ヘッダーJ26-1を介してスコープに使用できました

**FlexSPI_CS信号は、ボード上の小さなプルアップ抵抗R356を介して利用できます。この抵抗器の横に細いワイヤーをはんだ付けし、オシロスコープでプローブしました。

使用されたGPIOピンは、USER_LEDに接続したものと同じものでした(アクティブロー)。このピンは、ヘッダー J22-5 を介してスコープを設定できます。

TP 2、3、4、および5は、オシロスコープのプローブを接地するために使用されます。これはすべてEVKB評価ボードで行われました。

ここでは、テストの実行に関する注目すべき点をいくつか紹介します。

  1. このレポートでは、POR_B シグナルの上昇からコードの最初の行の実行までの時間を中心に強調しています。ただし、最初にボードに電源が供給されてからPOR_Bシステムが立ち上がるまでには時間があります。これはパワーエレクトロニクスの問題であり、ユーザーのアプリケーションや設計によって異なります。このため、このレポートではこれにあまり重点を置きません。
  2. アプリケーションの最初の実際のコード行は、実際にはプロセッサのいくつかのピンを構成しています。これらのピンが実行された後にのみ、GPIOがローに切り替わり、オシロスコープで時間が取得されます。ただし、これらのコンフィギュレーション コード行は非常に高速に実行されるため、テストの時間は無視されます。

クロック構成

ブート可能なイメージは、3 つのケースすべてで RT1050 にフラッシュされました。その後、MCUXpresso で、デバッガーは "Attach Only" を true に設定して構成されました。次に、デバッグ セッションが起動され、プロセッサがコードの実行を終了した後、RT1050 リファレンス マニュアルの第 18 章「CCM ブロック図」に従って一時停止し、レジスタ値が読み取られました。

ブート構成:

コアクロック (MHz) *

FlexSPIクロック(MHz)

SEMCクロック(MHz)

FlexSPI

130

99

SDRAMの

396

130

99

SRAM

396

130

99

*コア クロック速度は、クロック速度を 8 で割った出力として clko1 を構成することでも検証されています。この周波数はオシロスコープを使用して測定され、396MHzであることが確認されました。

実績

pastedImage_2.png

チップ選択ピンまでの時間は、RT1050プロセッサから最初のフラッシュ読み取りが発生する瞬間を表します。GPIO 出力までの時間は、起動時間を表します。

予想通り、XiP Hyperflashは他のメモリよりも高速に起動します。SRAM メモリと SDRAM メモリは、実行可能メモリにコピーする必要がありますが、これには時間がかかり、起動が遅くなります。

以下のセクションでは、これらのテストがどのように実行されたか、およびHyperflash XiPが最速であると予想される理由について、より詳細に説明します。

ハイパーフラッシュXiPの起動

以下は、Hyperflash XiPの起動プロセスがどのようになるかの手順の概要です。

  1. パワーオンリセット(J26-1)
  2. フラッシュメモリへのアクセス開始(FlexSPI_SS0)
  3. フラッシュでインプレース実行(XiP)
  4. コードの最初の行が実行されます (USER_LED)

MCUXpresso では、マップ ファイルには次のものが表示されていました。

pastedImage_3.png

オシロスコープの画像は次のとおりです。

 pastedImage_4.png

SDRAM の起動

プロセッサはROMから起動し、シリアルNORフラッシュメモリからSDRAMにアプリケーションイメージをコピーするように指示されます(シリアルNORフラッシュはハイパーフラッシュ通信を使用します)。RT フラッシュローダ ツールを使用すると、アプリケーションをフラッシュにロードして、メモリを SDRAM にコピーして実行するように設定できます。

 

SDRAM へのコピーは、コピー アクション全体を実行する必要があるため、Hyperflash からインプレースで実行するよりも遅くなることが予想されます。


SDRAM の起動プロセスは次のようになります。

  1. パワーオンリセット(J26-1)
  2. フラッシュメモリへのアクセス開始(FlexSPI_SS0)
  3. SDRAMへのコードのコピー
  4. SDRAMでインプレース実行(FlexSPI_SS0)
  5. コードの最初の行が実行される (USER_LED)

MCUXpresso では、マップ ファイルには次のものが表示されていました。

 pastedImage_5.png

このテストを実行するために、私は次の手順に従い ました: https://community.nxp.com/docs/DOC-340655.

pastedImage_6.png

SRAMの起動

SRAMについては、SDRAMと同様の処理が予想されます。プロセッサは最初に内部ROMから起動し、次にHyperflashに移動します。次に、Hyperflashから内部SRAM DTCメモリにすべてをコピーし、そこから実行します。

SRAM の起動プロセスは次のとおりです。

  1. パワーオンリセット(J26-1)
  2. フラッシュメモリへのアクセス開始(FlexSPI_SS0)
  3. SRAMへのコードのコピー
  4. SRAMでインプレース実行(FlexSPI_SS0)
  5. コードの最初の行が実行される (USER_LED)

 

MCUXpresso では、マップ ファイルには次のものが表示されていました。

 pastedImage_7.png

pastedImage_8.png

このドキュメントは、次の議論から作成されました: javascript:;

i.MXRT 105倍
Tags (1)
No ratings
Version history
Last update:
‎01-06-2026 02:24 AM
Updated by: