存储器映射
存储器本身是没有地址之分的,就像一间间小仓库,由芯片厂家或者用户给它分配地址,如几号几号仓库之类的。这个给仓库分配地址的过程就叫存储器映射,如果再分配一个地址就叫重映射。
以STM32F103ZET6芯片数据手册里的储存器映射图为例子,如下图:
由图中可看出STM32F103ZET6共有4GB的储存器空间,平均分成了8块区域(可以理解为分成8个仓库),每个仓库的储存器空间为512MB。
计算器最小的单位是位(bit),每一位只能存储一个二进制的1或者0
1GB=1024KB 1KB=1024MB 1MB=1024B
所以4GB可以存储4*1024*1024*1024=4294967296个二进制的1或者0
如图由0X0000 0000到0XFFFF FFFF转换成十进制为4294967295也可重复验证
8个区域中,每一块区域都有它特殊的用途
如block0主要用于设计芯片内的Flash(闪存),Flash掉电不遗失数据,所以经常作为单片机的程序储存器,我们编写的程序就存储在这里面,block1主要用于设计芯片内部的SRAM,block2用于设计片内外设。
那什么是寄存器映射呢?
以block2为例子,刚刚说到block2这个小仓库是用来设计片上外设的,由于STM32的芯片内核是32位的,一次可以处理32位数据,所以我们