寄存器
寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
补充1:触发器,在数字电路系统中的存储器,需要在同一时刻接收到一个脉冲(CLK)作为控制信号,只有CLK到来时电路才被触发产生动作,并根据输入型号改变输出状态。这种时钟型号触发的存储电路单元称为触发器,以区别没有时钟信号控制的锁存器。根据逻辑功能的不同特点,把触发器分为RS、JK、T、D等几种类型。
补充2:锁存器,锁存器可以在特定的脉冲电平作用下改变状态,除此以外,电平状态保持不变。常见的用两个CMOS反向器组成的RS锁存器,R清0,S置1.
STM32芯片内部
丝印表示产品的生产批号等,芯片丝印的字正对我们时,或者小圆点在左下角时,逆时针数,下面一排左边第一个为引脚1。识别清楚芯片正方向很重要,否则会烧毁芯片。
系统架构
STM32F10XX系统构架图狂徒框图
左半部分为ARM设计得内核,右半边为ST设计的外设。
- 红色部分为驱动单元——内核
DCode总线——加载常量和调试访问
DMA通过DMA总线读取数据,用来翻译数据
System总线,主要用来读取寄存器(外设) - 灰色部分为被动单元——外设部分
Flash用来存储指令
SRAM用来存放变量
FSMC用来驱动外存
AHB-APB的总线,AHB挂载两个外设,一个是复位和时钟控制(RCC),另一个是SDIO。高速总线AHB通过桥接分成连个时钟总线,一个是低速总线APB1,挂载定时器(TIM2-7)等;另一个是高速APB2,连接了比如GPIO A-F,ADC 1-3 等 - 黄色部分为ICode总线——内核读取Flash中的指令
存储器映射
- 什么叫存储器映射?
存储器本身不具有地址信息,它的地址是由芯片厂商或者用户分配,给存储器飞陪地址的过程就称为存储器映射。
序号 | 用途 | 地址范围 |
---|---|---|
Block 0 | Code-flash | 0x0000 0000 ~ 0x1FFF FFFF(512MB) |
Block 1 | SRAM | 0x2000 0000 ~ 0x3FFF FFFF(512MB) |
Block 2 | 片上外设 | 0x4000 0000 ~ 0x5FFF FFFF(512MB) |
Block 3 | FSMC的blank1~blank2 | 0x6000 0000 ~ 0x7FFF FFFF(512MB) |
Block 4 | FSMC的blank3~blank4 | 0x8000 0000 ~ 0x9FFF FFFF(512MB) |
Block 5 | FSMC寄存器 | 0xA000 0000 ~ 0xBFFF FFFF(512MB) |
Block 6 | 没有使用 | 0 |