STM32的儲存器對映詳解

2021-06-22 00:02:53 字數 2901 閱讀 4753

儲存器對映是指把晶元中或晶元外的

flash

,ram

,外設,

boot,block

等進行統一編址。即用位址來表示物件。這個位址絕大多數是由廠家規定好的,使用者只能用而不能改。使用者只能在掛外部

ram或

flash

的情況下可進行自定義。

cortex-m3

支援4gb

的儲存空間,它的儲存系統採用統一編址的方式,程式儲存器、資料儲存器、暫存器被組織在

4gb的線性位址空間內,以小端格式

(little-endian)

存放。由於

cortex-m3是32

位的核心,因此其

pc指標可以指向

2^32=4g

的位址空間,也就是

0x0000_0000

——0xffff_ffff

這一大塊空間。見圖

的儲存器對映

cortex-m3

核心將0x0000_0000

——0xffff_ffff

這塊4g

大小的空間分成

8大塊:**、

sram

、外設、外部

ram、外部裝置、專用外設匯流排

-內部、專用外設匯流排

-外部、特定廠商(見圖

1)。這就導致了,使用該核心的晶元廠家必須按照這個進行各自晶元的儲存器結構設計。

與中密度

stm32

的儲存器對映對比

圖中可以很清晰的看到,

stm32

的儲存器結構和

cortex-m3

的很相似,不同的是,

stm32

加入了很多實際的東西,如:

flash

、sram

等。只有加入了這些東西,才能成為乙個擁有實際意義的、可以工作的處理晶元

——stm32

。stm32

的儲存器位址空間被劃分為大小相等的

8塊區域,每塊區域大小為

512mb(

如:0x20000000~0x40000000)

。對stm32

儲存器知識的掌握,實際上就是對

flash

和sram

這兩個區域知識的掌握。

不同型別的

stm32

微控制器的

sram

大小是不一樣的,但是他們的起始位址都是

0x2000 0000

,終止位址都是

0x2000 0000+

其固定的容量大小。

sram

的理解比較簡單,其作用是用來訪問各種動態的輸入輸出資料、中間計算結果以及與外部儲存器交換的資料和暫存資料。裝置斷電後,

sram

中儲存的資料就會丟失。

stm32

的flash

,嚴格說,應該是

flash

模組。三個分割槽的稱呼與

datasheet

保持一致。該

flash

模組包括:

flash

主儲存區

(main memory

)flash

:存放**的地方,如圖2中的

flash

區域:128kb

(0x08000000~0x0801ffff

)(不同容量的

flash

終止位址不同)

;flash

資訊區(

information block

),該區域又可以分為

option bytes

和system memory

區域;system memory

:stm32

在出廠時,已經固化了一段程式在

system memory

(medium-density devices

的位址為:

0x1fff_f000

,大小為

2kb)儲存器中。這段程式就是乙個固定好的,並且沒法修改的

boot loader

(見程式設計手冊

pm0042

這種描述)。

option bytes

:可以按照使用者的需要進行配置(如配置看門狗為硬體實現還是軟體實現);該區域除了互聯型所用型號位址都一樣:(

0x1fff_f000~0x1fff_f80f

)圖中終止位址有誤:應為

0x1fff_f80f

,正好16

個位元組。

flash

儲存介面暫存器區

(flash memory inte***ce

),用於片上外設。是圖2中從

0x40000000

開始的peripherals

區域。也稱作外設儲存器對映,對該區域操作,就是對相應的外設進行操作。

根據stm32

的記憶體對映圖,在**區,

0x00000000

位址為啟動區,上電以後,

cpu從這個位址開始執行**。

0x08000000

是使用者flash

的起始位址,

0x20000000

是sram

的起始位址。

STM32儲存器對映

stm32儲存器對映 1 cortex m3儲存器對映cm3的位址空間有4g,但它只對這4g空間作了預先的定義,把4g空間分成8個塊,每塊大小為512m,並指出各段該分給哪些裝置。具體的實現由晶元廠商決定,廠商可以設計出具有自己特色的產品。下圖是cm3的儲存器對映圖 來自cm3權威指南 1.1 st...

STM32儲存器位址對映

上圖是stm32的儲存器位址對映圖,位址範圍為 0x0000 0000 0xffff ffff 其中 區的位址是從0x0800 0000開始的,結束於0x0800 0000 晶元的flash的大小,ram的起始位址是0x2000 0000,結束於0x2000 0000 晶元的ram大小。支援位帶操作...

stm32儲存結構 儲存器對映

問題 1 什麼是儲存器對映?是怎麼乙個運作過程?2 stm32總體架構 3 cm3核心結構 1 stm32系統結構 要想深刻理解stm32的儲存器,需要首先知道stm32的系統結構。如figure 1,是stm32系統結構框圖。根據stm32 reference manual rm0008 中的描述...