精品国产一区在线_av无码中文字幕无码王_天海翼三点刺激高潮不停_好硬好大好爽视频_欧美高清一区三区在线专区_香蕉黄色片

i.MXRT在串行NOR Flash XIP調試原理

本文詳細介紹了EVK板載調試器用法,有了調試器在手,從此調試不用愁。從調試代碼所在目標存儲器類別上來分,調試一般分為在SRAM調試和在Flash調試。在SRAM調試實現比較簡單,程序直接從JTAG/SWD口灌進RAM即可;在Flash調試,則相對復雜一點,因為首先需要有Flash下載算法,下載成功后才能調試。  

通常的Cortex-M內核MCU一般都會內嵌并行NOR Flash,這個并行NOR Flash是直接掛在Cortex-M內核高性能AHB總線上的,知名IDE如果支持這款MCU,也都會同時集成對應Flash的下載算法,方便用戶直接在IDE里下載代碼進Flash和XIP調試,但是i.MXRT內部并沒有Flash,用戶需要自己外接Flash,那該怎么辦?還能在線XIP調試么?別著急,i.MXRT可以支持外接并行NOR和串行NOR實現XIP,從節省管腳數的角度,最常見的做法是將串行NOR Flash掛在i.MXRT FlexSPI總線上,FlexSPI支持XIP特性,所以原理上可以實現在線調試,今天痞子衡就為大家介紹i.MXRT上在外部串行Flash調試的原理:

一、ARM CoreSight調試架構

要實現在串行Flash調試,首先要能對內核進行調試。i.MXRT芯片是基于Cortex-M內核的,而Cortex內核的調試和跟蹤,當然離不開CoreSight,它是ARM公司于2004年推出的一種新的調試體系結構,也是內核授權的一部分。  

CoreSight功能非常強大,其包含了很多調試組件(即各種協議),下圖來自于 CoreSight技術簡介手冊,圖中標出了CoreSight架構下的各種調試組件之間的聯系,這么多組件一下子看起來會有點暈,如果我們按功能將這些組件分組,它們可以被分成如下三組:

源部件(Source):芯片上跟蹤數據的來源,產生跟蹤數據發送到ATB(AMBA Trace Bus)。比如STM和ETM都屬于Source部分。

控制訪問部件(Sink):配置和控制數據流的產生,但是不產生數據流,即那些可以保持從Source過來數據的模塊。比如DAP和ECT(包含CTI和CTM)都屬于Sink部分。

匯聚點(Link):芯片上跟蹤數據的終點,用于引導從Source到Sink過程中的類似于通道作用的模塊。比如TPIU、ETB和SWO都屬于匯聚點。

本文主要是概述性地介紹i.MXRT在外部串行Flash調試的原理,并不想深入探析CoreSight,因此對于CoreSight,我們只需要知道是它完成了主要的調試工作,而CoreSight唯一的依賴就是要保證能通過DAP組件從AMBA總線實時訪問系統內存和外設寄存器(當然包括外部串行Flash中的代碼)。

二、i.MXRT FlexSPI外設特性

要實現在串行Flash調試,其次是代碼要能在串行Flash中XIP(原地執行),即CPU要能實時從串行Flash中任意位置取指令和數據。本文講的串行Flash一般指SPI接口的NOR Flash,SPI模式可以是Single/Dual/Quad/Octal。無論是哪種SPI模式,這種接口的Flash本質上都屬于串行Flash,地址線和數據線不僅共享而且是串行的。而按照通常的理解,要能夠實現XIP,Flash應該是并行總線接口掛在AMBA上,這個并行總線應有獨立的地址線和數據線,且地址線寬度跟Flash大小相對應。那么串行Flash為什么能在i.MXRT上實現XIP呢?答案就是FlexSPI外設。  

讓我們打開RT1050參考手冊,找到FlexSPI外設章節,可以看到如下FlexSPI模塊框圖,框圖右邊是FlexSPI與外部串行Flash的信號連接,框圖左邊是FlexSPI與i.MXRT系統內部總線連接,總線連接分為兩種,分別是32bit IPS BUS(即手動操作FlexSPI寄存器發送Flash讀寫命令),64bit AHB BUS(由FlexSPI翻譯AHB訪問地址并自動發送相應Flash讀寫命令),串行Flash能夠XIP的奧秘就在FlexSPI外設的AHB BUS連接。

關于這個64bit AHB BUS連接,我們可以FlexSPI特性里的Memory mapped read/write access by AHB Bus一欄找到更多細節。i.MXRT為FlexSPI外設在系統內存里分配了AHB訪問地址映射(對于XIP調試來說主要是讀訪問),當CPU取指到FlexSPI AHB地址映射空間時,FlexSPI外設會自動完成從外部串行Flash讀取指令數據的工作,并將指令數據存放到AHB RX buffer里(一共8個),CPU直接從AHB RX buffer里獲取指令去執行,AHB RX buffer可以有效降低讀延時。

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里也就可以進行單步調試啦。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關注 41
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 欧美5-7sexvideos处 | 亚洲日产中文字幕无码 | 久久网址 | 玩丰满女领导对白露脸视频 | 无码人妻熟妇AV又粗又大 | 自拍偷拍欧美精品 | 被黑人猛男连续高潮视频 | 韩国福利视频一区二区 | 国产日韩欧美高清 | 中文字幕日韩欧美 | japanxxxxhd videos日本 | 日本黄页网站免费观看 | 麻豆精品久久久久久中文字幕无码 | 亚洲欧美VR色区 | 日韩成人午夜视频 | 国产精品久久久久久久免费看 | 欧美性生交活XXXXXDDDD | 麻豆免费版在线观看 | 宅男深夜国产 | 天天爽夜夜爽人人爽从早干到睌 | 双乳奶水饱满少妇呻吟视频 | 欧美疯狂做受XXXXX高潮 | 毛片高清免费 | 人人艹人人射 | 国产最顶级的黄色片在线免费观看 | 波波成人影院在线播放 | 又大又长粗又爽又黄少妇视频 | 色婷婷色偷偷色天堂 | 免费一区二区视频 | 天天操夜夜艹 | YY111111少妇无码理论片 | 日韩性xxxx乱大交 | 国产精品久久无码不卡黑寡妇 | 亚洲精品乱码久久久久久久久久 | 国产欧美一区二区三区精品酒店 | 免费一区二区无码东京热 | 一区二区三区的视频 | 国产a在亚洲线播放 | 男人一边吃奶一边弄下边好爽 | 成人免费区 | 20岁chinese帅男男免费 |