STM32存儲(chǔ)架構(gòu)
看了一段時(shí)間的相關(guān)資料,將自已了解的知識(shí)寫出來,以求備忘。在此文中若有錯(cuò)誤之處,請指出,將不勝感激。
STM32F103ZET6是Cortex-M3內(nèi)核的ARM類型的單片機(jī),它屬于STM32的大密度器件,對于STM32的存儲(chǔ)架構(gòu)是差不多的
STM32的程序存儲(chǔ)區(qū),數(shù)據(jù)存儲(chǔ)區(qū),寄存器統(tǒng)一編制,最大為4G的空間。使用的是小端存儲(chǔ)模式。
整個(gè)4G的空間被分成8個(gè)mainblocks,每一塊是512MB,現(xiàn)在把對應(yīng)的地址空間列出
0x00000000~0x20000000
根據(jù)啟動(dòng)引腳的狀態(tài)決定哪個(gè)存儲(chǔ)空間被映射到此處。
片內(nèi)系統(tǒng)存儲(chǔ)區(qū)起始地址:
0x1fff0000(2K字節(jié)的空間)
引腳狀態(tài)存儲(chǔ)空間名地址X0MainFlashmemory0x8000000001Systemmemory0x1fff000011EmbeddedSRAM0x200000000x20000000~0x40000000
SRAM區(qū),64K
到0x20010000
位帶別名區(qū)首地址為:
0x22000000
0x40000000~0x60000000
用于片內(nèi)外設(shè)
外設(shè)寄存器的別名區(qū)首地址:
0x42000000
0x60000000~0x80000000
0x80000000~0xa0000000
片上flash存儲(chǔ)區(qū)512M
0xa0000000~0xc0000000
0xc0000000~0xe0000000
0xe0000000~0xffffffff
在系統(tǒng)存儲(chǔ)區(qū)有嵌入的bootloader,此bootloader在芯片出場時(shí)已經(jīng)了啟動(dòng)代碼,也可以對系統(tǒng)存儲(chǔ)區(qū)進(jìn)行編程。要對系統(tǒng)存儲(chǔ)區(qū)進(jìn)行編程你需要使用UART1接口來下載啟動(dòng)代碼。
備注:在這4G的可尋址區(qū)中有很多地址空間是預(yù)留的,使用的時(shí)候要注意