也算一个STM32的初学者,看了一段时间的相关资料,将自已了解的知识写出来,以求备忘。在此文中若有错误之处,请指出,将不胜感激。
STM32F103ZET6是Cortex-M3内核的ARM类型的单片机,它属于STM32的大密度器件,对于STM32的存储架构是差不多的
STM32的程序存储区,数据存储区,寄存器统一编制,最大为4G的空间。使用的是小端存储模式。
整个4G的空间被分成8个main blocks,每一块是512MB,现在把对应的地址空间列出
0x0000 0000 ~ 0x2000 0000 | 根据启动引脚的状态决定哪个存储空间被映射到此处。 片内系统存储区起始地址: 0x1fff 0000(2K字节的空间)
| |||||||||||||
0x2000 0000 ~ 0x4000 0000 | SRAM区,64K 到0x2001 0000 位带别名区首地址为: 0x2200 0000 | |||||||||||||
0x4000 0000 ~ 0x6000 0000 | 用于片内外设 外设寄存器的别名区首地址: 0x4200 0000 | |||||||||||||
0x6000 0000 ~ 0x8000 0000 | ||||||||||||||
0x8000 0000 ~ 0xa000 0000 | 片上flash存储区512M | |||||||||||||
0xa000 0000 ~ 0xc000 0000 | ||||||||||||||
0xc000 0000 ~ 0xe000 0000 | ||||||||||||||
0xe000 0000 ~ 0xffff ffff |
在系统存储区有嵌入的bootloader,此bootloader在芯片出场时已经了启动代码,也可以对系统存储区进行编程。要对系统存储区进行编程你需要使用UART1接口来下载启动代码。
备注:在这4G的可寻址区中有很多地址空间是预留的,使用的时候要注意