關(guān)于STM32的存儲(chǔ)器“>STM32存儲(chǔ)器 — 關(guān)于STM32的存儲(chǔ)器
這就可以去了解STM32的存儲(chǔ)器結(jié)構(gòu),以及為什么這樣設(shè)計(jì)STM32存儲(chǔ)器的結(jié)構(gòu)了。
4 STM32存儲(chǔ)器結(jié)構(gòu)
首先,我們對(duì)比一下Cortex-M3存儲(chǔ)器結(jié)構(gòu)和STM32存儲(chǔ)器結(jié)構(gòu):
圖中可以很清晰的看到,STM32的存儲(chǔ)器結(jié)構(gòu)和Cortex-M3的很相似,不同的是,STM32加入了很多實(shí)際的東西,如:Flash、SRAM等。只有加入了這些東西,才能成為一個(gè)擁有實(shí)際意義的、可以工作的處理芯片——STM32。
STM32的存儲(chǔ)器地址空間被劃分為大小相等的8塊區(qū)域,每塊區(qū)域大小為512MB。
對(duì)STM32存儲(chǔ)器知識(shí)的掌握,實(shí)際上就是對(duì)Flash和SRAM這兩個(gè)區(qū)域知識(shí)的掌握。因此,下面將重點(diǎn)描述Flash和SRAM的知識(shí)。
5 STM32的SRAM
以下是STM32參考手冊(cè)RM0008中的一段原話:
不同類型的STM32單片機(jī)的SRAM大小是不一樣的,但是他們的起始地址都是0x2000 0000,終止地址都是0x2000 0000+其固定的容量大小。
SRAM的理解比較簡(jiǎn)單,其作用是用來存取各種動(dòng)態(tài)的輸入輸出數(shù)據(jù)、中間計(jì)算結(jié)果以及與外部存儲(chǔ)器交換的數(shù)據(jù)和暫存數(shù)據(jù)。設(shè)備斷電后,SRAM中存儲(chǔ)的數(shù)據(jù)就會(huì)丟失。
6 STM32的Flash
STM32的Flash,嚴(yán)格說,應(yīng)該是Flash模塊。
該Flash模塊包括:Flash主存儲(chǔ)區(qū)(Main memory)、Flash信息區(qū)(Information block),以及Flash存儲(chǔ)接口寄存器區(qū)(Flash memory interface)。
三個(gè)組成部分分別在0x0000 0000——0xFFFF FFFF不同的區(qū)域,如圖(小密度的STM32)所示:
圖中完全可以看出Flash模塊中的三個(gè)組成部分在整個(gè)存儲(chǔ)器中的位置。
具體的內(nèi)部區(qū)域的意義及功能請(qǐng)參見編程手冊(cè)PM0042,里面很詳細(xì)。
7 STM32存儲(chǔ)器結(jié)構(gòu)總結(jié)
圖中淡藍(lán)色就是你需要知道的。
Peripherals:外設(shè)的存儲(chǔ)器映射,對(duì)該區(qū)域操作,就是對(duì)相應(yīng)的外設(shè)進(jìn)行操作;
SRAM:運(yùn)行時(shí)臨時(shí)存放代碼的地方;
Flash:存放代碼的地方;
System Memory:STM32出廠時(shí)自帶的你只能使用,不能寫或擦除;
Option Bytes:可以按照用戶的需要進(jìn)行配置(如配置看門狗為硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn));
今后,你的編寫代碼、程序運(yùn)行、寄存器設(shè)置、ICP、IAP都依靠這些東西。
以上描述的是STM32存儲(chǔ)器的結(jié)構(gòu)相關(guān),其具體存儲(chǔ)器的應(yīng)用在我的下一篇筆記《STM32存儲(chǔ)器知識(shí)的相關(guān)應(yīng)用(IAP和Bit Banding)》中詳細(xì)描述。
至此,關(guān)于《STM32存儲(chǔ)器》知識(shí)已經(jīng)結(jié)束.
評(píng)論