性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

stm32單片機(jī)基礎(chǔ)知識(shí)總結(jié)(二)

今天打算繼續(xù)總結(jié)stm32單片機(jī)的基礎(chǔ)知識(shí),鞏固基礎(chǔ)。這里呢,聲明一下,《stm32單片機(jī)基礎(chǔ)知識(shí)總結(jié)》主要基于stm32f1及stm32f4兩個(gè)系列來(lái)做的。原因是stm32f1系列是Cortex-M3內(nèi)核  ,stm32f4系列是基于Cortex-M4內(nèi)核。我在項(xiàng)目開發(fā)中,主要用到了這兩個(gè)系列的片子,所以算是對(duì)自己知識(shí)的一個(gè)鞏固。另外,知識(shí)都是相通的。所以如果理解了這兩種架構(gòu),那么如果需要的話,我們也能夠快速地去學(xué)習(xí)其他的系統(tǒng)架構(gòu)。

一、STM32單片機(jī)架構(gòu)

通過(guò)兩張圖片來(lái)對(duì)Cortex-M3 和Cortex-M4兩個(gè)內(nèi)核資源進(jìn)行一個(gè)對(duì)比。

通過(guò)對(duì)此,我們可以看到有這樣幾個(gè)不同之處:

 M4具有單精度浮點(diǎn)運(yùn)算單元,F(xiàn)1沒有浮點(diǎn)運(yùn)算單元。

 M4具備增強(qiáng)的DSP指令集。

然后其他共有的模塊如下:

內(nèi)核系統(tǒng)模塊

nested vectored interrupt controller 

嵌套向量中斷控制器

wake up interrupt controller interface  

喚醒中斷控制器接口

DSP:數(shù)字信號(hào)處理單元,

FPU:浮點(diǎn)運(yùn)算器

Memory Interface Unit(MPU):存儲(chǔ)器保護(hù)單元

它可以實(shí)施對(duì)存儲(chǔ)器(主要是內(nèi)存和外設(shè)寄存器)的保護(hù),以使軟件更加健壯和可靠。在使用前,必須根據(jù)需要對(duì)其編程。如果沒有啟用MPU,則等同于系統(tǒng)中沒有配MPU。

MPU有如下的能力可以提高系統(tǒng)的可靠性:

  • 阻止用戶應(yīng)用程序破壞操作系統(tǒng)使用的數(shù)據(jù)。
  • 阻止一個(gè)任務(wù)訪問(wèn)其它任務(wù)的數(shù)據(jù)區(qū),從而把任務(wù)隔開。
  • 可以把關(guān)鍵數(shù)據(jù)區(qū)設(shè)置為只讀,從根本上消除了被破壞的可能。
  • 檢測(cè)意外的存儲(chǔ)訪問(wèn),如,堆棧溢出,數(shù)組越界。
  • 此外,還可以通過(guò)MPU設(shè)置存儲(chǔ)器regions的其它訪問(wèn)屬性,比如,是否緩區(qū),是否緩沖等。

SRAM &Peripheral interface:SRAM&外設(shè)接口

Bus Matrix:總線矩陣用于多主(Core,DMA等),多從(內(nèi)部RAM,APB,外部總線等)的交聯(lián)和仲裁。目的是為了提高不同主機(jī)訪問(wèn)不同外設(shè)情況下的帶寬。

跟蹤調(diào)試系統(tǒng)

Data Watchpoint:

用于實(shí)時(shí)變量監(jiān)控,可用于定期輸出PC或各種CPU內(nèi)部計(jì)數(shù)器,從目標(biāo)獲取分析信息。

Flash Patch &BreakPoint:轉(zhuǎn)換及斷電單元

ITM Trace:

指令跟蹤宏單元,一種針對(duì)MCU進(jìn)行跟蹤調(diào)試的新方法,與打斷點(diǎn)(Breakpoint)不同,ITM方法不需要暫停程序運(yùn)行,可以在程序全速運(yùn)行的過(guò)程中實(shí)時(shí)輸出變量的數(shù)值以便觀察,即Trace功能

ETM Trace:集成跟蹤選項(xiàng)

Debug Access Port:調(diào)試端口

Serial Wire Viewer ,Trace port :串行線查看器,跟蹤端口

以上把所有的模塊都簡(jiǎn)單翻譯了一下,個(gè)別的稍加闡述。篇幅原因就不再進(jìn)行深入了。感興趣的朋友可以網(wǎng)上再查一查資料。我這里當(dāng)是拋磚引玉了。

針對(duì)stm32f1與stm32f4,兩個(gè)片子的框架,再進(jìn)行一個(gè)簡(jiǎn)單總結(jié)。整個(gè)這些知識(shí)內(nèi)容都是一些基礎(chǔ)的東西,可能很多東西不懂也能夠把代碼寫出來(lái),調(diào)試也能通過(guò)。入門的話,也可以了。我個(gè)人覺得想走更遠(yuǎn),應(yīng)該知其然也知其所以然。雖然我水平一般,需要學(xué)習(xí)實(shí)踐的地方有很多。但從多年的工作經(jīng)歷來(lái)說(shuō),我覺得做到大而廣不難,做到大而廣還要細(xì)就是很考驗(yàn)人的了。

下面兩張Block diagram 是我從ST官方文檔上面截下來(lái)的。第一張是STM32f103。第二張是STM32F40x。STM32f103是基于Cortex-M3架構(gòu)。STM32f40x是基于Cortex-M4架構(gòu)。很明顯STM32f40x芯片的內(nèi)核所掛載的資源相當(dāng)于STM32f103芯片所掛載的資源要豐富很多。

stm32f103內(nèi)部架構(gòu)圖 

stm32f40x架構(gòu)圖

從上面兩張架構(gòu)圖中,我們可以讀出很多信息。

1)stm32f1主頻最高是72MHZ.stm32f4主頻最高是168MHZ,且集成了FPU功能。

2)F1內(nèi)部SRAM最大64K字節(jié), F4內(nèi)部SRAM有192K字節(jié)(112K+64K+16K)。

3)四個(gè)主動(dòng)單元 :

M3內(nèi)核的ICode總線(I-bus)、DCode總線(D-bus)、 系統(tǒng)總線(S-bus)、DMA(DMA1、DMA2、以太網(wǎng)DMA) 

ICode總線 :

將M3內(nèi)核的指令總線與FLASH指令接口相連,用于指令預(yù)取

DCode總線:

將M3內(nèi)核的數(shù)據(jù)總線與FLASH數(shù)據(jù)接口相連,常量加載和調(diào)試 

系統(tǒng)總線 :

將M3內(nèi)核的系統(tǒng)總線與總線矩陣相連,協(xié)調(diào)內(nèi)核與DMA訪問(wèn) 

DMA總線: 

將DMA的AHB主控接口與總線矩陣相連,協(xié)調(diào)CPU的DCode和DMA到SRAM、閃存、外設(shè)的訪問(wèn)

4)四個(gè)被動(dòng)單元 :

內(nèi)部SRAM、內(nèi)部閃存、FSMC、AHB到APB橋 

AHB橋:

AHB(Advanced High performance Bus),高性能總線。主要用于高性能模塊(如CPU、DMA和DSP等)AHB 系統(tǒng)由主模塊、從模塊和基礎(chǔ)結(jié)構(gòu)(Infrastructure)3部分組成,整個(gè)AHB總線上的傳輸都由主模塊發(fā)出,由從模塊負(fù)責(zé)回應(yīng)。

APB橋:

APB(Advanced Peripheral Bus),片上外設(shè)總線。主要用于慢速片上外設(shè)與ARM核的通訊。

例如UART、1284等,它的總線架構(gòu)不像 AHB支持多個(gè)主模塊,在APB里面唯一的主模塊就是APB 橋。再往下,APB2負(fù)責(zé)AD,I/O,高級(jí)TIM,串口1;APB1負(fù)責(zé)DA,USB,SPI,I2C,CAN,串口2345,普通TIM。

cortex-M3、cortex-M4內(nèi)核是由ARM公司提供的。芯片其余外圍是由ST公司設(shè)計(jì)完成的。

篇幅有限,很多要點(diǎn)的內(nèi)容也需要時(shí)間的沉淀。后續(xù)的工作學(xué)習(xí)中,再對(duì)這些知識(shí)點(diǎn)做補(bǔ)充優(yōu)化。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關(guān)注 30
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧