色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > STM32F7 架構和資源分析

STM32F7 架構和資源分析 時間:2018-09-26      來源:未知

一、STM32F7 資源

當第一眼看到STM32F7的數據手冊Datasheet和參考手冊Reference manual時!可以說是抑制不住的興奮!盡管ST所研發的這款基于Cortex-M7的芯片與當初ARM公司發表聲明Cortex-M7內核時所聲明的無論是在功耗、頻率等還是有一定差異的!但是這或許只能理解為ST為了快速的推出第一款基于Cortex-M7內核的MCU而沒有做好充分的準備,在后續的研發中更加的以提高各方面的性能而達到當初ARM公司所預期的效果(具體的情況有很多,比如:ARM聲明Cortex-M7內核大支持800MHz的主頻,并采用28nm工藝,但是從資料得知STM32F7采用了96nm工藝,高主頻為216MHz。當然,Atmel的SAM V71也只是高支持300MHz,并且在價格上比STM32F7高的太多了,基本上就是土豪玩的。還獲得Cortex-M7內核使用授權的是飛思卡爾半導體,但是目前到現在還沒有聲音,也不知道情況;但是基本上可以看出來,各個半導體廠商想要把Cortex-M7內核的性能、功耗等提高到接近評估極限,可能還是需要一段時間的!我們拭目以待)。

當進入ST官網,找到STM32F7 Discovery板卡板載的芯片STM32F746NGH6芯片的主頁時,第一眼就看到了如下的關于這款芯片的資源框架圖:

就這個圖,如果拿去對比同樣是ST的Cortex-M3內核的資源圖和Cortex-M4內核的資源圖,就會發現,基本上各類資源在不停的往上增加,而且是呈幾個等級的往上拉!當然,也有一點是,M7和部分M4無論是在資源上還是在主頻上,都很接近或者說相似!那么M7到底提高在哪里了呢?那么就慢慢的體味了。

STM32F746NGH6資源:

·ARM 32bit Cortex-M7內核+FPU+Chrome-ART加速器、CPU高主頻216MHz、1MB閃存Flash、320KB SRAM

·3個12位精度ADC控制器,共有24通道AD

·2個12位DA控制器

·18個定時器,2個先進控制定時器+1個低功耗定時器+12個通用定時器+2個看門狗定時器+SysTick滴答定時器

·3個DMA控制器

·支持SWD、JTAG工具調試,支持Cortex-M7單元跟蹤

·多支持168個I/O口,其中164個I/O口的翻轉速率高達108MHz,166個I/O口兼容5V器件端口

·4路I2C接口(SMB/PMB)、4路USART、4路UART、6路SPI、3路I2S

·2路SAI、2路CAN2.0、SDMMC、SPDIFRX、HDMI-CEC、USB OTG HS、USB OTG FS、以太網口、Camera攝像頭接口、LCD-TFT接口

資源好多哇!但是,其實這也沒什么,如果僅僅是單純的增加硬件外設資源,那就沒什么談的了,因為人家8051內核的單片機在一定條件下也照樣能集成各種硬件資源接口,那么Cortex-M7到底增強在哪里呢?

(1)高性能和可配置性:在ARM Cortex-M系列處理器中,想都不用想,在目前為止Cortex-M7內核是強悍的,性能是為出色的(否則ARM就沒有必要力推它了)。它擁有六級超標量流水線(注意哦,是六級超標量哦,這就意味著指令的執行就像飛一般的感覺(意味著一個時鐘周期能處理更多的指令),去查看看M3和M4內核是多少級流水線,看看是不是一個等級的)、系統接口和內存接口靈活配置(包括AXI和AHB)、緩存cache(STM32F7共4KB data cache和4KB instruction cache(即4KB數據緩存和4KB指令緩存),知道這意味著什么嗎?)、高度緊密耦合內存TCM(Tightly-Coupled Memory (TCM) interfaces;STM32F7:64KB Data TCM RAM,16KB instruction TCM RAM)、為MCU提供更加出色的整數和浮點的DSP。

(2)系統兼容性:Cortex-M7是基于已經在市場上大獲成功的Cortex-M3和Cortex-M4處理器的基礎上構建的新內核,所以無論在電源系統還是Debug調試系統上基本與其他Cortex-M系列相兼容;并且增加了通過內存ECC提供的錯誤功能,全面跟蹤(Trace)以及全面安全,能很好的協助廠商應對與各種市場(或者敏感市場)。

關于以上列出的個點,有必要解釋一下幾點:

(1)、Cortex-M7使用了6級超標量流水線,意味著MCU在一個時鐘周期內能處理更多的指令,但是有一點,流水線增加的實現代價是以空間換時間。

(2)、Cortex-M7采用了緊密耦合內存技術TCM(Tightly-Coupled Memory (TCM) interfaces),TCM這個名詞可能有人很陌生(玩過比較少東西的入門者,我在這里廢幾句口舌)。ARM的RAM包括:靜態RAM、動態RAM和TCM緊密耦合內存Tightly-Coupled Memory)。

TCM是一個固定大小的RAM,緊密的與處理器內核相耦合,提供與cache相當(一個級別)的性能,并且與cache相比它的優點是:程序代碼可以精確被控制(例如,精確的將某段代碼或者某個函數放在RAM指定的地址位置),cache還有命中和命不中的可能。當然TCM永遠不會被踢出主存儲器。因此它有一個被用戶預設的性能,而不是像cache那樣是統計特性的性能提高。

(3)Cache緩存:上面說了那么多的cache緩存,而且在STM32F7上也使用了cache緩存(4KB data cache和4KB instruction cache(即4KB數據緩存和4KB指令緩存)),那么cache緩存到底是什么呢??其實,cache緩存是用靜態RAM組成的一段緩存空間,它的速度與CPU差不多,所以使用它來做CPU和內存之間的緩存;但是高速率也就確定了它的造價非常高。

(4)DSP,Cortex-M7的DSP和Cortex-M4的DSP已經不是一個級別的了,Cortex-M4的DSP也就是高能做單精度浮點運算,到雙精度級別的,基本上只能由軟件來玩了,但是,軟件處理浮點運算,想想都知道CPU被耗(耗時)成啥樣了,而且還是MCU,這樣會造成MCU的效率特低;但是在Cortex-M7上就不存在這樣的問題了,需要處理雙精度的浮點運算,直接使用硬件DSP運算即可。一個字,“爽”。

其實還有好幾點關于外設的改善,也一并列出來:

(5)SDRAM:從STM32F7系列MCU的參考手冊《STM32F75xxx and STM32F74xxx advanced ARM®-based 32-bit MCUs-Reference manual》可以看到它支持一種叫FMC的接口,這個接口好像沒見過,但是玩過Cortex-M3和Cortex-M4的童鞋肯定都見過FSMC(Flexible static memory controller,靈活的靜態存儲控制器,當需要控制外部總線時,就用這個接口(比如NOR Flash、Nand Flash等)),咋一看,FMC和FSMC就一個字母只差(因為都是縮寫,從專業英語的角度來看,這個一般情況下在同一行業中,代表的單詞是一樣的),那么從手冊中得到:FMC英文為Flexible memory controller,果真是只差一個單詞哦,那么就翻譯為,靈活的存儲控制器吧。那么一個單詞只差,它們到底有什么區別呢?其實,兩者相比較,FCM就是只差了SDRAM,這一點非常重要,這意味著無論是對于程序員還是對于用戶,有更多內存就可以提高系統的性能;在參考手冊中提到,對于FCM就似的使用SDRAM就像使用SRAM一樣方便;并且SDRAM控制器支持兩個獨立的SDRAM Bank,可以在8/16/32位總線寬度之間獨立選擇,控制器包括13位行地址和11位列地址,4個內部Bank,那么計算一下就可以知道:它高可以支持256MB的外部SDRAM!啊啊啊啊啊!256MB啊啊啊啊!這在MCU界絕對是王者霸者了!(除非等到以后有更牛X的來沖擊)。

(6)QSPI:全稱是Quad SPI,這是一種特殊的通訊接口,從官方資料看到:QSPI協議接口可以有三種工作模式:間接模式、查詢模式和內存映射模式。啥??內存映射????映射什么?怎么映射?映射后的結果是啥?(。。。。。一堆問題接踵而至,根本停不下來),那到底是什么個情況呢?(咱得好好的想想,組織組織語言)。。。。。。。,嗯!就比如在房間中點蠟燭,不開燈的情況下,燭光(片內Flash)還是很亮的,只是范圍小點,人在室內的活動范圍空間就會受到光線的限制,而當開電燈后,燈光一下子就把整個房間給照亮了,這也意味著,人的活動范圍變大了,有可能活動范圍的限制因素不再是光線了,可能是其他的比如墻(外部存儲空間大小)之類的了。這就構成了一個映射的關系,而且映射了之后,人的范圍擴大是必然的,不需要付出任何代價的。咦!貌似上面就有個非常好的例子哦,上面所說的FCM接口對SDRAM的情況就是一種映射啊!嗯!就是這樣!所以設想一下,當我們把SPI Flash進行初始化后,將他映射到MCU的4G的線性空間上,然后將代碼copy到這段空間內,然后咱就讓CPU在上面運行程序,呵呵!這不就想是在使用自己的東西了嗎?(如果玩過在ARM9、ARM11、Cortex-A7、Cortex-A8等平臺上跑Linux等嵌入式操作系統,那這種方法見怪不怪了!但是、但是這是MCU哇!還是很驚訝很期待的哦!)。

(7)DMA2D,這是啥呢?好像是DMA哦,但是這“2D”是啥啊?無論是在STM32F7的Datasheet上還是在參考手冊上,我們都能看到有DMA1、DMA2、DMA2D,很明顯,三個都是DMA,前兩個就是普通的DMA,后的一個多出來了一個縮寫字母D就應該值得被關注了。那么它到底是什么?在參考手冊中居然用一章的內容來講解DMA2D,而前兩個也就是一章內容,那么可想而知它和DMA1、DMA2是有區別的。DMA2D,英文是:Chrom-Art Accelerator™ controller,即Chrom-Art加速器控制器,那么Chrom-Art加速器是什么東東呢?通過查看資料才得知,Chrom-Art加速器就是一種專門致力于圖像數據操作的DMA,OK!很明顯了!這個DMA2D就是專門用來搬運圖像顯示數據的,這樣當用到LCD顯示器是,可有福了,有專門的DMA搬數據,就不需要CPU用緩存慢慢的刷圖片了!想想就是爽啊。

其他的也還有好多新接口!但是也就是相應支持啦!所以就沒不要細究了!

說明:以上一些內容我是參考了Cortex-M7架構手冊《ARM® Cortex®-M7 ProcessorRevision r1p1-Technical Reference Manual》,此手冊文檔在ARM官網獲。//infocenter.arm.com/help/index.jsp

此手冊為ARM公司所發布,詳細講述了Cortex-M7內核的各種資源和關于Cortex-M7內核架構的技術參考,可作為底層開發和了解Cortex-M7內核的重要技術文檔。他有多個更新版本(目前有三個),選擇適合的參考即可。

二、STM32F7架構

在這里我用架構這個詞就有點感覺像是吹牛X的樣子,其實我只是分析一下從STM32F7系列MCU參考手冊上理解到的信息,并做記錄。畢竟對于Cortex-M7內核的MCU,還太新了(到至今為止距離ARM發布Cortex-M7內核才過大半年時間)!資料極少,只能硬著頭皮啃了!

不管怎么樣,只要是做開發,一切都要從參考手冊《STM32F75xxx and STM32F74xxx advanced ARM®-based 32-bit MCUs-Reference manual.pdf》為基準。

打開STM32F7熄滅MCU參考手冊,只要是閱讀過ST的技術文檔,都會知道,第一章必定是“文檔約定”,主要是約定一些資源的關鍵詞和外設的關鍵詞等。這一點!也是非常重要的,如不了解,可能有些東西你壓根不知道這代表的是什么。但是這了解就好!

重點來了!在內容的開篇,ST毫不客氣的就來了一張圖,并且這個圖概括了STM32F7的整一個系統架構。如下圖:

那么這個圖到底是什么圖呢?它的作用是什么呢?手冊上標題首先就給出了,System architecture(系統架構) ,果真是ST的系統架構圖,那么這就意味著,想要對STM32F7進一步的進行了解,就必須從系統架構圖了解,從而了解整一個STM32F7的系統架構。OK!迫不及待了!咱開始吧!

首先,在整個F7的架構中,存在2條系統總線(這一點非常重要),分別是:

(1)一個AXI總線到多個AHB總線的橋,即AXI4協議轉換為AHB-Lite協議。其中有:

------1個AXI總線到64Bit的AHB總線的橋用來連接到片內嵌入式Flash

------3個AXI總線到32Bit的AHB總線的橋用來連接到AHB總線矩陣

上面的幾句話基本上是理解翻譯手冊,那么,AXI到底是啥玩意呢?那么吊的樣子!(可能很多人對他比較陌生)!其實,AXI(Advanced eXtensible Interface)是一種總線協議,該協議是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協議中的重要部分,是一種面向高性能、高寬帶、低延遲的片內總線。它的地址/控制和數據是分離的,支持不對齊數據傳輸,同時在突發傳輸中,只需要首地址,同時分離的讀寫通道、并支持Outstanding傳輸訪問和亂序訪問,更加容易進行時序收斂。AXI計算豐富了現有的AMBA標準內容,主要用于滿足超高性能和復雜的片上系統(SOC)設計需求。(此段話是我從度娘上抄的!呵呵!)

基本上了解了AXI是什么東西之后,基本上也就明白了這一條系統總線的作用了。

(2)一個multi-AHB總線矩陣。

到這里,如果是狐貍的話,尾巴就露出來一點點了!那么繼續貼圖:

這個圖,其實就是上面的那一個系統架構圖嘍!只是我加了點料!嘿嘿! 那么從圖中可以看出,整個multi-AHB總線矩陣貫穿所有的主/從總線,使得他們之間互聯。對于64-bit multi-AHB總線矩陣從CPU通過AXI總線到AHB總線的橋和32-bit AHB總線的GP DMA和外設DMA擴大到64位片內Flash。

在圖中也體現出了多AHB總線矩陣互聯的現象(在ST其他系列MCU中,我們經?吹降目偩矩陣只是一個框內寫著總線矩陣,ST并沒有畫出總線矩陣圖,構成了什么樣的矩陣,但是在F7總,總線矩陣終于得到了體現,如上圖所示),從圖中可以看出,在總線矩陣內部包括了12個總線“主機/主總線”和8個總線“從機/從總線”。

(1)12個總線“主機/主總線”:

——3個32位AHB總線連接到Cortex-M7 AXI主總線與64位AHB的橋。

——1個64位AHB連接到片內嵌入式Flash。

——Cortex-M7 AHB外設總線。

——DMA1內存總線

——DMA2內存總線

——嵌入式DMA總線(用于指令和數據的讀/寫,存取)

——USB OTG HS DMA 總線

——LCD 控制器DMA總線

——Chrom-Art加速器(DMA2D)存儲總線

(2)8個總線“從機/從總線”:

——片內Flash AHB總線(Flash讀/寫訪問,代碼執行和數據訪問)

——Cortex-M7 AHBS從總線DMA數據傳輸接口DTCM RAM(數據TCM)

——內部主SRAM1(240KB)

——內部副SRAM2(16KB)

——AHB1外設包括AHB到APB的橋和APB外設

——AHB2外設包括AHB到APB的橋和APB外設

——FMC(上面解釋了)

——Quad SPI(上面也解釋了)

基本上整一個總線矩陣就是以上內容了!好復雜的樣子,12 X 8的矩陣哇!嗯!那么為了跟清楚了理解其,繼續往下。

1、關于Multi AHB總線模型,其實它是作為管理系統主總線與各總線之間訪問仲裁(相當于公司的董事長),它的實現是使用一個循環算法。它提高了從主總線到從總線的效率,支持并發訪問和高效訪問,即使幾個高速外圍設備同時工作。但是需要注意的是:DTCM和ITCM RAM不屬于這種總線模型。數據TCM RAM的訪問是GP-DMA和外設DMA通過特定的AHB從總線到CPU。

2、整個系統中存在兩個AHB/APB橋,與APB1和APB1形成完整的同步聯系,并且運行靈活的外圍頻率選擇。

3、CPU的AXIM總線用來連接指令和數據總線到Cortex-M7 FPU內核的,通過multi-AHB與AXI之間的橋進行聯系。一共有4種總線訪問模式:

——CPU AXI總線訪問1:這個AXI總線的目標是融合(或映射)外部FMC接口內存(包括代碼和數據)。并且規定NAND的映射地址為0X80000000到0X8FFFFFFF,這個MPU屬性可由軟件進行配置。

——CPU AXI總線訪問2:這個AXI總線的目標是外部Quad SPI內存(包含代碼和數據)。

——CPU AXI總線訪問3:這個AXI總線的目標是內部內存SARM1和SRAM2(包含代碼和數據)。

——CPU AXI總線訪問4:這個AXI總線的目標是內部Flash的映射(包含代碼和數據)。

嘿嘿!到這里,已經再清楚不過了!AXI到底是干啥用的,怎么用的都清楚了!

4、ITCM總線和DTCM都是高速緩存,既然是高速(那意味著造價很高),那么應該是作為特殊用途的(要是全部都用這種緩存技術,我覺得芯片的價格肯定會比黃金價格要高很多,數據量是無限大的),所以一般應該數作為比如對時間要求很嚴格的代碼就可以放在ITCM中,為了提高運行速度,某些需要頻繁存取的數據也可以放到DTCM中進行緩存,以節省時間。所以ITCM總線是Cortex-M7內核作為指令獲取和數據訪問Flash ITCM映射接口和指令獲取ITCM RAM的。而DTCM是Cortex-M7作為數據訪問的緩存,但是它也可以作為指令的獲取。

5、CPU AHBS總線是Cortex-M7內核與AHB從總線連接的總線模型,它通過實驗DMA和外設DMA進行數據傳輸到DTCM RAM。但是AHBS無法訪問ITCM總線,所以不支持從DMA將數據傳輸到ITCM RAM。并且對于DMA傳輸到Flash ITCM接口,所以的傳輸都強行在AHB總線進行。

6、AHB外設總線是Cortex-M7內核與外設建立連接的總線模型,這使得內核可以對外設進行數據訪問。

關于DMA,它訪問各種外設,狀態可能各有一些變化,如下:

7、DMA memory總線使得DMA主總線與內存建立聯系的總線模型,它使用直接存儲器存取執行轉移到存儲器。它的目標數據的存儲:內部SRAM1,SRAM2和DTCM 內部Flash和外部映射FMC存儲或Quad SPI存儲?傊菍iT訪問內存的。

8、DMA外設總線就是主總線與外設之間建立聯系的總線模型了,它使用直接存儲器存取訪問AHB外設或執行內存到內存的傳輸(這就是我們常用的DMA啦),它的目標是:AHB和APB外設以及內存SRAM1,SRAM2和DTCM 內部Flash和外部映射FMC存儲或Quad SPI存儲之間的數據運輸。

9、以太網DMA總線是連接以太網主接口的總線模型,它向以太網接口加載數據或者運輸以太網數據到內存。

10、USB OTG HS DMA總線是建立起與USB OTG HS主接口的總線模型。它同樣是向USB加載數據或者從USB運輸數據到內存。

11、LCD-TFT控制器DMA總線是建立起與LCD控制器的總線模型。他向LCD加載數據或者從LCD搬運數據到內存。

12、DMA2D是圖像加速器總線模型,這個總線使用DMA2D圖形加速器加載/存儲數據到內存,它的目標數據存儲:內部SRAM1,SRAM2和DTCM內部Flash和外部映射的FMC和Quad SPI存儲器,還有閃存。

OK!整一個分析就是這樣!計算F7的系統架構就是上面的第一個圖,后面無非是做一些解釋罷了!在這個新東西中,或者說在MCU界中,它還真出現了好多新名詞哇(反正對于我來說是新的)。所以要理解起來!還真有一定難道!上面的有些邏輯或者表達比較生硬!不過這也是無奈之舉,畢竟在下實力有限嘛!OK!就不多說了!關于這份文檔,從閱讀和寫文章,基本上花了4天的時間(不包括我的工作時間),想想還是很辛苦的!嘿嘿!不過幸好現在觸摸到一點點東西了!努力加油吧!

聲明:上述文章純粹個人理解(有幾處是從度娘獲取),如若有理解不足和錯誤,還望請聯系我!讓我也進一步學習!技術總是需要交流才有進步嘛!

上一篇:嵌入式linux文件服務器的搭建

下一篇:STM32F7-Discovery使用ITM作為調試工具

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲精品久久无码午夜一区二区 | 亚洲欧美国产精品无码中文字 | 成人A级毛片免费视频 | 国产成人综合美国十次 | xxxx交换夫妇com | 初高中生啪啪网站汐汐最迷人 | 熟睡中被义子侵犯在线播放 | 电家庭影院午夜 | 亚洲国产精品人人做人人爱 | www.欧美大片 | 久爱WWW人成免费网站 | 国产日产成人免费视频在线观看 | 亚洲AV日韩AV永久无码绿巨人 | 亚洲av成人一区二区三区在线观看 | 艳妇臀荡乳欲伦69调教视频 | 噜死你在线资源站 | 99国产精品欧美久久久久的广告 | 少妇大胆瓣开下部自慰 | 年轻的母亲4免费版观看视频 | 亚洲精品无码一区二区三区久久久 | 日韩免费无码成人久久久久久片 | 欧美亚洲日韩国产人成在线播放 | 日本特黄特色特爽大片 | 999久久久久久久久6666 | 精品无码免费专区毛片 | 丰满的熟女爽死你视频 | 国产精品99久久精品 | 欧洲熟妇色XXXX欧美老妇老头多毛 | 涩里番网污站 | 精品人妻无码一区二区三区竹菊影视 | 色香欲天天影视综合网 | 催眠极品YIN荡人妻合集H | 蓝男色蓝摄gay裸男china | 伊人久久视频在线 | 被老师粗大jib捣出了白浆视频 | 国产天美传媒性色AV出轨 | 日韩精品无码人妻免费视频 | 级毛片内射人与曾 | 久久精品国产99久久久小说 | 日本丰满老妇BBW | 精品日产一区二区三区 |