CM3 只要一个单一固定的存储器映射。这一点极大当地便了软件在各种CM3 单片机间的移植。举个简略的比如,各款CM3 单片机的NVIC 和MPU 都在相同的方位布设寄存器,使得它们变得通用。尽管如此,CM3 定出的条条框框是粗线条的,它仍然答应芯片制造商
灵敏地分配存储器空间,以制造出各具特色的单片机产品
CM3 的地址空间是4GB, 程序能够在代码区,内部SRAM 区以及外部RAM 区中履行。但是由于指令总线与数据总线是分隔的,最理想的是把程序放到代码区,从而使取指和数据拜访各自运用自己的总线,双管齐下。
这是LPC18xx Memory mapping
上图你能够看到,local SRAM其实在ARM规则的Code区,看来这个也不是死规则,各个芯片厂商仍是能弹性调整的。
这是STM32F101XC D E Memory mapping
比照上面的图可知,各个芯片厂商都是依照ARM的粗线条的存储器映射规则界说自家芯片的存储器映射。
Cortex-M4存储器映射(与M3界说共同)
遇到的特例
这是QN908x Memory mapping
我查阅datasheet,发现SRAM的地址是确实是从0x20000000开端的。
但是上图这块地址却符号为Aliased to SRAM。符号为SRAM的区域却从0x040000000开端。
我再打开示例程序的.scf文件