<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP調(diào)試原理


        大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1xxx系列EVK在串行NOR Flash調(diào)試的原理

        本文是i.MXRT硬件那些事系列第二篇的續(xù)集,在第二篇首集中痞子衡給大家詳細(xì)介紹了EVK板載調(diào)試器用法,有了調(diào)試器在手,從此調(diào)試不用愁。從調(diào)試代碼所在目標(biāo)存儲器類別上來分,調(diào)試一般分為在SRAM調(diào)試和在Flash調(diào)試。在SRAM調(diào)試實(shí)現(xiàn)比較簡單,程序直接從JTAG/SWD口灌進(jìn)RAM即可;在Flash調(diào)試,則相對復(fù)雜一點(diǎn),因?yàn)槭紫刃枰蠪lash下載算法,下載成功后才能調(diào)試。

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

      一、ARM CoreSight調(diào)試架構(gòu)

        要實(shí)現(xiàn)在串行Flash調(diào)試,首先要能對內(nèi)核進(jìn)行調(diào)試。i.MXRT芯片是基于Cortex-M內(nèi)核的,而Cortex內(nèi)核的調(diào)試和跟蹤,當(dāng)然離不開CoreSight,它是ARM公司于2004年推出的一種新的調(diào)試體系結(jié)構(gòu),也是內(nèi)核授權(quán)的一部分。

        CoreSight功能非常強(qiáng)大,其包含了很多調(diào)試組件(即各種協(xié)議),下圖來自于 CoreSight技術(shù)簡介手冊,圖中標(biāo)出了CoreSight架構(gòu)下的各種調(diào)試組件之間的聯(lián)系,這么多組件一下子看起來會(huì)有點(diǎn)暈,如果我們按功能將這些組件分組,它們可以被分成如下三組:

      • 源部件(Source):芯片上跟蹤數(shù)據(jù)的來源,產(chǎn)生跟蹤數(shù)據(jù)發(fā)送到ATB(AMBA Trace Bus)。比如STM和ETM都屬于Source部分。
      • 控制訪問部件(Sink):配置和控制數(shù)據(jù)流的產(chǎn)生,但是不產(chǎn)生數(shù)據(jù)流,即那些可以保持從Source過來數(shù)據(jù)的模塊。比如DAP和ECT(包含CTI和CTM)都屬于Sink部分。
      • 匯聚點(diǎn)(Link):芯片上跟蹤數(shù)據(jù)的終點(diǎn),用于引導(dǎo)從Source到Sink過程中的類似于通道作用的模塊。比如TPIU、ETB和SWO都屬于匯聚點(diǎn)。

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

      二、i.MXRT FlexSPI外設(shè)特性

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

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

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

      • 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.

        關(guān)于FlexSPI AHB地址映射,可見下面的RT1050 memory map表,AHB映射起始地址為0x60000000,最大支持504MB的空間(適用RT1010/RT1020/RT1050/RT1060)。如果是RT1064,AHB映射起始地址改為0x70000000;如果是RT1170,除了0x60000000映射地址外還新增了0x30000000的地址映射。FlexSPI AHB映射地址讀訪問包含以下特點(diǎn):

      • 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下載算法

        要實(shí)現(xiàn)在串行Flash調(diào)試,最后要確保代碼被成功下載到串行Flash中。串行Flash的讀寫不像訪問RAM那樣簡單,是需要一套專門的FlexSPI NOR Flash驅(qū)動(dòng)的,即所謂的Flash下載算法。

        串行Flash種類很多,雖然大多都符合JESD216標(biāo)準(zhǔn),但是具體到某個(gè)廠家生產(chǎn)的Flash,還是有細(xì)微區(qū)別的。有的Flash下載算法力求支持盡可能多的Flash,而有的Flash下載算法則僅針對某個(gè)系列Flash。不管是哪種Flash下載算法,對于i.MXRT這樣沒有內(nèi)部Flash的芯片而言,F(xiàn)lash下載算法都是要跟具體的i.MXRT開發(fā)板相關(guān)聯(lián)的,因?yàn)殚_發(fā)板決定了Flash連接的pinmux,F(xiàn)lash下載算法里FlexSPI管腳初始化要與開發(fā)板相匹配。

        每個(gè)IDE的Flash下載算法設(shè)計(jì)不盡相同,本文暫不詳細(xì)介紹具體Flash下載算法,后續(xù)文章會(huì)對常見IDE的Flash下載算法設(shè)計(jì)進(jìn)行詳解。

      四、在串行Flash調(diào)試過程

        CoreSight架構(gòu),F(xiàn)lexSPI特性,NOR Flash下載算法都介紹過了,在串行Flash調(diào)試的充分條件都有了。現(xiàn)在痞子衡為大家綜合介紹一下調(diào)試過程。下面是痞子衡特地畫的簡圖,其實(shí)調(diào)試過程概述起來并不復(fù)雜,當(dāng)你啟動(dòng)IDE調(diào)試時(shí),預(yù)先放在IDE里的Flash下載算法(可執(zhí)行文件)會(huì)首先通過調(diào)試器下載到i.MXRT內(nèi)部FlexRAM中,下載算法需要提供FlexSPI外設(shè)初始化和NOR Flash擦除、燒寫功能API,然后調(diào)試器繼續(xù)將應(yīng)用程序代碼(二進(jìn)制機(jī)器碼)分段緩存在FlexRAM里,并調(diào)用Flash下載算法API去完成應(yīng)用程序的燒寫(從FlexRAM到Flash中),應(yīng)用程序完全下載結(jié)束之后,便由CoreSight開始接管調(diào)試工作,此時(shí)CPU已經(jīng)可以通過AHB總線訪問掛在FlexSPI外設(shè)上的串行Flash里的應(yīng)用程序代碼數(shù)據(jù),所以CoreSight當(dāng)然可以完成實(shí)時(shí)代碼運(yùn)行控制與跟蹤,你在IDE里也就可以進(jìn)行單步調(diào)試?yán)病?/p>

        至此,恩智浦i.MX RT1xxx系列EVK在串行NOR Flash調(diào)試的原理痞子衡便介紹完畢了,掌聲在哪里~~~

      歡迎訂閱

      文章會(huì)同時(shí)發(fā)布到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

      微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機(jī)上第一時(shí)間看了哦。

      posted @ 2019-11-04 12:53  痞子衡  閱讀(4056)  評論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 精品一区二区av天堂| 在线a亚洲老鸭窝天堂| 丰满人妻一区二区三区无码AV| 99久久国产综合精品成人影院 | 亚洲中文在线精品国产| 国产四虎永久免费观看| 亚洲av中文一区二区| 亚洲精品麻豆一区二区| 国产无套粉嫩白浆在线| 国产AV永久无码青青草原| 久久精品夜色噜噜亚洲av| 国产免费又黄又爽又色毛| 狠狠干| 天堂资源在线| 精品国产福利一区二区在线| 久久一区二区中文字幕| 国产情侣激情在线对白| 无码天堂亚洲国产AV| 肥城市| 好吊视频专区一区二区三区| 九九在线精品国产| 放荡的少妇2欧美版| 国产成人一卡2卡3卡四卡视频 | 亚洲大尺度无码无码专线| 国产精品中文字幕av| 日本一区二区中文字幕久久| 麻豆精品久久久久久久99蜜桃| 虎白女粉嫩尤物福利视频| 少妇性bbb搡bbb爽爽爽欧美| 一级片免费网站| 久久精品国产久精国产果冻传媒| 干老熟女干老穴干老女人| 成人午夜电影福利免费| 99riav精品免费视频观看| 亚洲一区二区三区自拍偷拍| 久久一日本道色综合久久| 国产无遮挡又黄又爽不要vip软件 国产成人精品一区二区秒拍1o | 亚洲精品成人片在线观看精品字幕| 无遮挡午夜男女xx00动态| 免费无码黄十八禁网站| 呼伦贝尔市|