STM32学习笔记——三、STM32架构

1 STM32芯片介绍

在这里插入图片描述

  • 芯片型号STM32F103ZET6
  • Z(引脚数):144pin,左下角小圆点为1脚,然后逆时针顺序排列
  • E(FLASH大小):512KB
  • T(封装):QFP封装,最常用的
  • 6(温度):等级A,-40~85度
  • ARM内核(基于Cortex-M3 内核,主频75MHZ)

1.1 Cortex-M3 内核

  1. Cortex-M3内核是什么?
    答:Cortex-M3内核是单片机的中央处理器单元CPU 。
  2. Cortex-M3架构是怎么样的?
    答:
    2.1Cortex-M3是一个32位处理器内核。内部的数据路径是32位,寄存器是32位,存储器接口是32位。
    2.2 采用哈佛架构。拥有独立的指令总线和数据总线,取指与数据访问可以同时进行。
    2.3 支持小端模式、大端模式。 。

2 STM32芯片架构

芯片架构简图

在这里插入图片描述

  1. Cortex-M3 内核:内核即CPU,由ARM 公司设计
  2. 内核之外的部件:被称为核外外设或片上外设
  3. 片上外设:GPIO、USART(串口)、I2C、SPI 等
  4. 芯片和外设之间通过总线连接
    • 驱动单元4个(理解为CPU部分)
    • 被动单元4个(理解为外设)

3 驱动单元和被动单元各部件

系统框图
在这里插入图片描述

3.1 ICode总线

ICode总线(Instruction,指令总线):专门用来取指的

  • 程序编译后为一条条指令,存在FLASH中
  • 内核读取指令,必须通过ICode总线

3.2 驱动单元

3.2.1 DCode总线

DCode总线(Data,数据总线):专门用来取数的

  • 数据常量(const修饰):存储在内部FLASH中
  • 数据变量:存储在内部SRAM中
  • DCode与DMA总线均可以访问数据,取数时需经过一个总线矩阵来仲裁,决定哪个总线取数

3.2.2 DMA总线

DMA总线:专门用来取数,传输数据的

  • 数据常量(const修饰):存储在内部FLASH中
  • 数据变量:存储在内部SRAM中
  • 数据:外设的数据寄存器
  • DCode与DMA总线均可以访问数据,取数时需经过一个总线矩阵来仲裁,决定哪个总线取数

3.2.3 系统总线

系统总线:主要访问外设的寄存器

  • 寄存器编程(读写寄存器):通过这根系统总线来完成的。

3.3 被动单元

3.3.1 FLASH(内部的闪存存储器)

FLASH(内部的闪存存储器):编译好的程序就放在这个地方

  • ICode总线来此取指令

3.3.2 内部的SRAM

内部的SRAM(RAM):程序的变量,堆栈等的开销都是基于内部的SRAM

  • DCode总线来去数据

3.3.3 FSMC(灵活的静态的存储器控制器)

FSMC(灵活的静态的存储器控制器):STM32F10xx的一个特色外设

  • 可以扩展内存:外部的SRAM、DAND-FLASH、NORFLASH等
  • 只能扩展静态的内存:名称里面带static。
  • 不能扩展动态的内存:SDRAM不能扩展

静态内存、栈、堆:

  • 静态内存:静态内存用来保存局部static对象、类的static数据成员、以及定义在任何函数之外的变量。
    • 局部static对象
    • 类的static数据成员
    • 任何函数之外的变量
    • 生命周期:从被定义开始,一直存在程序的整个声明周期之中。由编译器自动创建和销毁
  • 栈内存:栈用来保存定义在函数内的非static对象
    • 在函数内的非static对象
    • 生命周期:仅在其定义的程序块运行时才存在
  • 堆内存(动态内存):除了静态内存和栈内存,每个程序还有一个内存池。这部分空间被称为自由空间或者堆。程序用堆来存储程序动态分配的对象。
    • 动态分配的对象
    • 生命周期: 动态内存的生存周期由程序控制,当动态内存不在使用时,代码必须显示地销毁他们。
    • 使用动态内存的原因:
      • 程序不知道自己需要使用多少对象
      • 程序不知道所需对象的准确类型
      • 程序需要在多个对象间共享数据
    • 动态内存形式:指针,智能指针等

3.4 AHB到APB的桥(片上外设)

从AHB总线延伸出来的两条APB2和APB1总线,上面挂载着STM32的各种各样的特色外设

  • GPIO、串口、I2C、SPI等外设就挂载在这两条总线上
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值