エンベディッド・バリューのriffraff:フリースケールi.MX RTyyyyシリーズMCUのハードウェアこれらのもの(2.2) - シリアルNORフラッシュXIPデバッグの原則


  みなさん、こんにちは、私は、暴漢規模午前技術riffraffにまとも従事されています。今日riffraffバランスが紹介するフリースケールのi.MX RTyyyyシリーズ原則のEVKシリアルNORフラッシュデバッグを

  この記事はi.MXRT二続編、EVK-ボードデバッガの使用に説明するために、第2の暴漢のバランスに集中まずそれらのもののハードウェアのシリーズである、手にデバッガを使用して、試運転から、心配しないでください。ターゲットカテゴリアップポイントは、一般的にデバッグにSRAMおよびFlashでデバッグデバッグに分割されたメモリデバッグコードから。SRAMのデバッグに実装は比較的簡単ですが、プログラムは直接JTAG / SWDポートからRAMにそれらを注ぐことができる、ダウンロードが成功した後、試運転までのFlashダウンロードアルゴリズムを持っているあなたの最初の必要があるため、Flashでのデバッグ、比較的複雑です。
  Cortex-Mコア従来のMCUは、一般的に埋め込まれたパラレルNORフラッシュ、NORフラッシュの平行が、これは直接知らコアのCortex-M-パフォーマンスAHBバス、IDEにリンクされている場合、このサポートMCU、統合にも対応するフラッシュをダウンロードする一方アルゴリズムは、ユーザーが独自の外部フラッシュを必要とXIPフラッシュおよびデバッグにIDE内で直接コードをダウンロードするようにユーザーを容易にするが、内部フラッシュをi.MXRTませんでした、そして、どのようにしますか?オンラインXIPはそれをデバッグすることができますか?心配しないで、i.MXRTはNORパラレル外部シリアルとをサポートすることができNORピン数を節約の観点から、XIPを達成するため、最も一般的な方法は、シリアルNORフラッシュi.MXRT FlexSPIバス、FlexSPIサポートXIP特性にハングアップすることで、したがって、原則的には、外部シリアルフラッシュのデバッグにi.MXRTにバランスの原理を紹介するオンライン・デバッグ、ラフィアン今日を達成することができます:

、ARMのCoreSightデバッグアーキテクチャ

  シリアルフラッシュのデバッグを実現するために、すべての最初には、カーネルをデバッグすることができるようにします。i.MXRTチップはもちろんのCortex-Mコア、およびコアのCortexデバッグおよびトレースに基づいており、不可分のCoreSightは、ARMは、2004年に新しいデバッグアーキテクチャ、コア任務のも一部を、それを導入しています。
  CoreSightのは非常に強力です、それはデバッグコンポーネント(すなわち、プロトコル)、から次の図の多く含まれているパンフレットなどのCoreSightテクノロジーを、のCoreSightデバッグアーキテクチャにおけるさまざまなコンポーネント間のリンクのマーキング、突然のすべては非常に多くのコンポーネントを参照してくださいそれは我々がこれらのコンポーネントの機能に応じてグループ化されたならば、彼らは、次の3つのグループに分けることができ、少しめまいになります。

  • ソース手段(ソース):ATB(AMBAトレースバス)送信トレース・データを生成するために、チップ上のソースデータを追跡します。例えば、STMおよびETMは、すべてのソースの一部です。
  • アクセス制御手段(シンク):モジュールからのソースデータ上に維持することができるもの、すなわち、構成および制御データフローを生成するが、データストリームを生成しません。そのようなDAPとECT(CTIとを含むCTM)としてシンク部に属します。
  • 収束点(リンク):シンクの間のチャンネル同様の役割ソースからモジュールを案内するためのチップ上のデータ・トラックの終わり。例えばTPIU、ETBとSWOは、ランデブーポイントに属します。

  本論文では、外部シリアルフラッシュのデバッグにi.MXRT原則への導入の概要であると、私たちが知っている必要がありますためのでCoreSightの、のCoreSightの詳細な分析をしたくない、それは主要な試運転作業を完了し、唯一のCoreSightを確保することにある依存しているということですシステムバスと(外部シリアルフラッシュで、コースのコードを含む)周辺レジスタに実メモリアクセスからDAP成分によってAMBA。

二、i.MXRT FlexSPIペリフェラル機能

  シリアルFlashでどこからでもリアルタイムに命令とデータをフェッチすることができるようにコードが続くのFlashデバッグシリアル、(場所で実行)シリアルFlashでXIP、すなわちCPUを達成するために。本明細書で一般的にシリアルフラッシュを話す指すNORフラッシュ、SPI SPIインタフェースモードは、シングル/デュアル/クワッド/オクタルであってもよいです。SPIモードのいずれかで、すべてのアドレスとデータラインは共有だけでなく、シリアルだけでなく、このインタフェースの性質にシリアルフラッシュフラッシュに属します。そして一般的に理解さに応じて、XIPを実現することができるように、フラッシュパラレルバスインタフェースはAMBAに掛けなければならない、パラレルバスは、フラッシュの大きさに対応する幅を有する別個のアドレスおよびデータ線とアドレス線を有するべきです。なぜi.MXRTにXIPシリアルフラッシュ、それを達成することができますか?答えはFlexSPI周辺機器です。
  左側のブロック図は、内部バス接続でFlexSPI i.MXRTシステムであり、右は外部シリアルフラッシュFlexSPIと信号接続のブロック図である、あなたはFlexSPI下のブロック図を参照することができ、FlexSPI周辺部を見つけ、のは、RT1050のリファレンスマニュアルを開いてみましょう、バス接続ポイント2、すなわち32ビットIPS BUS(すなわち、マニュアルトランスミッションフラッシュFlexSPI読み出しおよび書き込みコマンドレジスタ)、64ビットAHBバス(及び自動的FlexSPIフラッシュライトアクセスアドレス変換AHBによって対応するコマンドを送信する)に、シリアルフラッシュ謎はXIPすることができるであろうAHBバスFlexSPIは、周辺機器を接続します。

  この64ビットのAHBバス接続について、我々は、メモリ内のFlexSPIプロパティは、より詳細な情報を見つけるために、AHBバス列での読み取り/書き込みアクセスをマッピングされたことができます。CPUはFlexSPI AHBアドレスマッピング空間をフェッチするシステムメモリ(XIPをデバッグするための主アクセスを読み取られる)FlexSPI AHB周辺アクセスアドレスマッピングに割り当てi.MXRT、FlexSPI周辺外側列から自動的に行わフラッシュライン指示データが、読み出し動作、及びAHB RXバッファ内の命令データ(合計8個)、実行するための命令でAHB RXバッファから直接CPUを格納するために、AHB RXバッファは、待ち時間が効果的に低減することができる読み取ります。

  • AHB RX Buffer implemented to reduce read latency. Total AHB RX Buffer size: 128 x 64 Bits
  • 16 AHB masters supported with priority for read access
  • 8 flexible and configurable buffers in AHB RX Buffer
  • AHB TX Buffer implemented to buffer all write data from one AHB burst. AHB TX Buffer size: 8 x 64 Bits
  • All AHB masters share this AHB TX Buffer. No AHB master number limitation for Write Access.

  关于FlexSPI AHB地址映射,可见下面的RT1050 memory map表,AHB映射起始地址为0x60000000,最大支持504MB的空间(适用RT1010/RT1020/RT1050/RT1060)。如果是RT1064,AHB映射起始地址改为0x70000000;如果是RT1170,除了0x60000000映射地址外还新增了0x30000000的地址映射。FlexSPI AHB映射地址读访问包含以下特点:

  • Cachable and Non-Cachable access
  • Prefetch Enable/Disable
  • Burst size: 8/16/32/64 bits
  • All burst type: SINGLE/INCR/WRAP4/INCR4/WRAP8/INCR8/WRAP16/INCR16

三、串行NOR Flash下载算法

  要实现在串行Flash调试,最后要确保代码被成功下载到串行Flash中。串行Flash的读写不像访问RAM那样简单,是需要一套专门的FlexSPI NOR Flash驱动的,即所谓的Flash下载算法。
  串行Flash种类很多,虽然大多都符合JESD216标准,但是具体到某个厂家生产的Flash,还是有细微区别的。有的Flash下载算法力求支持尽可能多的Flash,而有的Flash下载算法则仅针对某个系列Flash。不管是哪种Flash下载算法,对于i.MXRT这样没有内部Flash的芯片而言,Flash下载算法都是要跟具体的i.MXRT开发板相关联的,因为开发板决定了Flash连接的pinmux,Flash下载算法里FlexSPI管脚初始化要与开发板相匹配。
  每个IDE的Flash下载算法设计不尽相同,本文暂不详细介绍具体Flash下载算法,后续文章会对常见IDE的Flash下载算法设计进行详解。

四、在串行Flash调试过程

  CoreSight架构,FlexSPI特性,NOR Flash下载算法都介绍过了,在串行Flash调试的充分条件都有了。现在痞子衡为大家综合介绍一下调试过程。下面是痞子衡特地画的简图,其实调试过程概述起来并不复杂,当你启动IDE调试时,预先放在IDE里的Flash下载算法(可执行文件)会首先通过调试器下载到i.MXRT内部FlexRAM中运行,并完成FlexSPI外设初始化和应用程序下载工作(将应用程序可执行文件下载进串行Flash中),应用程序下载完成之后,便由CoreSight开始接管调试工作,此时CPU已经可以通过AHB总线访问挂在FlexSPI外设上的串行Flash里的代码,所以CoreSight当然可以完成实时代码运行控制与跟踪,你在IDE里也就可以进行单步调试啦。

  至此,飞思卡尔i.MX RTyyyy系列EVK在串行NOR Flash调试的原理痞子衡便介绍完毕了,掌声在哪里~~~

おすすめ

転載: www.cnblogs.com/henjay724/p/11791498.html