日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]芯片架構(gòu)簡圖芯片(這里指內(nèi)核,或者叫 CPU)和外設(shè)之間通過各種總線連接,其中驅(qū)動(dòng)單元有 4個(gè),被動(dòng)單元也有 4 個(gè)。為了方便理解,我們都可以把驅(qū)動(dòng)單元理解成是CPU 部分,被動(dòng)單元都理解成外設(shè)。系統(tǒng)框圖1、ICode總

芯片架構(gòu)簡圖

芯片(這里指內(nèi)核,或者叫 CPU)和外設(shè)之間通過各種總線連接,其中驅(qū)動(dòng)單元有 4個(gè),被動(dòng)單元也有 4 個(gè)。為了方便理解,我們都可以把驅(qū)動(dòng)單元理解成是CPU 部分,被動(dòng)單元都理解成外設(shè)。

系統(tǒng)框圖

1、ICode總線:ICode 中的 I 表示 Instruction,即指令。我們寫好的程序編譯之后都是一條條指令,存放在 FLASH 中,內(nèi)核要讀取這些指令來執(zhí)行程序就必須通過 ICode 總線,它幾乎每時(shí)每刻都需要被使用,它是專門用來取指的。

2、驅(qū)動(dòng)單元:

(1)DCode總線:DCode 中的 D 表示 Data,即數(shù)據(jù),那說明這條總線是用來取數(shù)的。我們在寫程序的時(shí)候,數(shù)據(jù)有常量和變量兩種,常量就是固定不變的,用 C 語言中的 const 關(guān)鍵字修飾,是放到內(nèi)部的 FLASH 當(dāng)中的,變量是可變的,不管是全局變量還是局部變量都放在內(nèi)部的SRAM。因?yàn)閿?shù)據(jù)可以被 Dcode 總線和 DMA 總線訪問,所以為了避免訪問沖突,在取數(shù)的時(shí)候需要經(jīng)過一個(gè)總線矩陣來仲裁,決定哪個(gè)總線在取數(shù)。

(2)系統(tǒng)總線:系統(tǒng)總線主要是訪問外設(shè)的寄存器,我們通常說的寄存器編程,即讀寫寄存器都是通過這根系統(tǒng)總線來完成的。

(3)DMA總線:DMA 總線也主要是用來傳輸數(shù)據(jù),這個(gè)數(shù)據(jù)可以是在某個(gè)外設(shè)的數(shù)據(jù)寄存器,可以在SRAM,可以在內(nèi)部的 FLASH。因?yàn)閿?shù)據(jù)可以被 Dcode 總線和 DMA 總線訪問,所以為了避免訪問沖突,在取數(shù)的時(shí)候需要經(jīng)過一個(gè)總線矩陣來仲裁,決定哪個(gè)總線在取數(shù)。

3、被動(dòng)單元:

(1)內(nèi)部的閃存存儲(chǔ)器:內(nèi)部的閃存存儲(chǔ)器即 FLASH,我們編寫好的程序就放在這個(gè)地方。內(nèi)核通過 ICode 總線來取里面的指令。

(2)內(nèi)部的SRAM:內(nèi)部的 SRAM,即我們通常說的 RAM,程序的變量,堆棧等的開銷都是基于內(nèi)部的SRAM。內(nèi)核通過 DCode總線來訪問它。

(3)FSMC:FSMC 的英文全稱是 Flexible static memory controller,叫靈活的靜態(tài)的存儲(chǔ)器控制器,是 STM32F10xx 中一個(gè)很有特色的外設(shè),通過 FSMC,我們可以擴(kuò)展內(nèi)存,如外部的SRAM,NANDFLASH 和 NORFLASH。但有一點(diǎn)我們要注意的是,F(xiàn)SMC 只能擴(kuò)展靜態(tài)的內(nèi)存,即名稱里面的 S:static,不能是動(dòng)態(tài)的內(nèi)存,比如 SDRAM就不能擴(kuò)展。

(4)AHB到APB的橋:從 AHB 總線延伸出來的兩條 APB2 和 APB1 總線,上面掛載著 STM32 各種各樣的特色外設(shè)。我們經(jīng)常說的 GPIO、串口、I2C、SPI 這些外設(shè)就掛載在這兩條總線上,這個(gè)是我們學(xué)習(xí) STM32的重點(diǎn),就是要學(xué)會(huì)編程這些外設(shè)去驅(qū)動(dòng)外部的各種設(shè)備。


存儲(chǔ)器映射:

1存儲(chǔ)器功能分類

Block0:Block0 主要用于設(shè)計(jì)片內(nèi)的 FLASH,我們使用的 STM32F103ZET6(霸道)和STM32F103VET6(指南者)的 FLASH 都是 512KB,屬于大容量。要在芯片內(nèi)部集成更大的 FLASH 或者 SRAM 都意味著芯片成本的增加,往往片內(nèi)集成的 FLASH 都不會(huì)太大,ST 能在追求性價(jià)比的同時(shí)做到 512KB,實(shí)乃良心之舉。

Block1:Block1 用 于 設(shè) 計(jì) 片 內(nèi) 的 SRAM 。 我 們 使 用 的 STM32F103ZET6 ( 霸 道 ) 和STM32F103VET6(指南者)的 SRAM 都是 64KB。

Block2:Block2用于設(shè)計(jì)片內(nèi)的外設(shè),根據(jù)外設(shè)的總線速度不同,Block 被分成了 APB和 AHB兩部分,其中 APB 又被分為 APB1和 APB2。

什么是寄存器:

給有特定功能的內(nèi)存單元取一個(gè)別名,這個(gè)別名就是我們經(jīng)常說的寄存器,這個(gè)給已經(jīng)分配好地址的有特定功能的內(nèi)存單元取別名的過程就叫寄存器映射。

什么叫存儲(chǔ)器映射:

給存儲(chǔ)器分配地址的過程叫存儲(chǔ)器映射,再分配一個(gè)地址叫重映射。


使用結(jié)構(gòu)體指針訪問寄存器:


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉