STM32的芯片架构
以STM32F103ZET6为例
STM32芯片主要由内核和片上外设组成,其中内核是由ARM公司设计的,例如Cortex-M3内核,内核和外设的关系就好比电脑的处理器与显卡,内存,硬盘关系,常用的如GPIO,USART,IIC,ADC,DAC等都属于片上外设,这些片上外设都是由ST公司设计的,ARM公司只负责对芯片技术进行授权。
详细图:
存储器映射与寄存器映射
芯片上各种功能部件被排列在一个4GB的空间中,这个4GB被分成8个区域,也就是被分成8个存储器,每个区域各有512kb的存储空间,这些区域被分成代码区,SRAM区,外设区等等
每一个存储器本身并没有地址,给每个存储器分配地址的过程叫做存储器映射,这是由生产厂商分配的,而给存储器重新分配地址叫做存储器的重映射
每一个存储器里面由各种外设各种寄存器,给寄存器分配地址的过程叫做寄存器映射,重新分配地址叫做寄存器的重映射
简单做了个图帮助理解:
总线基地址
片上外设区有三条总线,根据速度不同分位APB1、APB2、AHB总线,总线的最低地址就是总线的基地址,同时也是挂载在该总线上的首个外设的地址,由于APB1总线的地址最低,各种外设的地址从这里开始,所以APB1的地址也叫外设基地址
总线名称 | 总线基地址 | 相对外设基地址的偏移 |
---|---|---|
APB1 | 0x4000 0000 | 0x0 |
APB2 | 0x4001 0000 | 0x0001 0000 |
AHB | 0x4001 8000 | 0x0001 8000 |