STM32的芯片架构
STM32芯片主要由内核和片上外设组成
以下图为例(我们所使用的STM32就属于Cortex-M系列)
芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用
在自己的硅片设计中,添加存储器,外设, I/O以及其它功能块。不同厂家设计出的单片机
会有不同的配置,包括存储器容量、类型、外设等都各具特色。(以stm32F103为例,就是属于ARMv7架构,cortex-M系列下的M3核,为ST公司生产的芯片)
注:流水线技术就是将一条指令分解成一连串执行的子过程。例如:把指令的执行过程细分为取指令、指令编码、取操作数和执行 4 44 个子过程。这样多条指令可以重叠执行,因为取指令操作、指令编码操作、取操作、执行操作 是可以同时执行的。如下图所示:其中 1、2、3、4、5 表示要处理 5 条指令。
Stm32 存储器映射
STM32芯片上可访问的存储空间被分为八个主要块,每个块为512MB.(程序存储器、数据存储器、寄存器和输入输出端口都在这)
每一个存储器本身并没有地址,给每个存储器分配地址的过程叫做存储器映射,这是由生产厂商分配的,而给存储器重新分配地址叫做存储器的重映射
每一个存储器里面由各种外设各种寄存器,给寄存器分配地址的过程叫做寄存器映射,重新分配地址叫做寄存器的重映射
其中我们主要使用学习到的就是Block0 Block1 Block2三个部分
片上外设根据不同的时钟,分为三条总线:
寄存器及寄存器映射
给特定功能的内存单元起个别名就叫寄存器,给已经分配好地址的有特定功能的内存单元起别名就叫寄存器映射
寄存器的学习与使用我们在51单片机中就有接触过。
那么如何在STM32中访问寄存器内容呢?
以GPIO这个外设为例子:
1.确认挂接在那个总线上,找到外设基地址;
2.通过翻阅手册确认端口地址
3.确认寄存器地址
3.通过阅读手册确认寄存器的基本功能
具体流程大家查看:
https://blog.csdn.net/zcy_cyril/article/details/105833995