STM32F103ZET6学习之芯片基础结构

STM32F103ZET6学习之芯片基础结构

  • ICode总线
  • 驱动单元
    •  DCode总线
    •  系统总线
    •  DMA 总线
  • 被动单元
    •  内部的闪存存储器
    •  内部的 SRAM
    •  FSMC
    •  AHB 到 APB 的桥

本文为《零死角玩转 STM32F103—霸道》书籍的知识提取和整理,仅为学习之用。

芯片架构简图
在这里插入图片描述


系统框图

在这里插入图片描述

ICode总线

 I是Instruction,即指令。我们编写好的程序编译之后就是一条条指令,存放在FLASH中,M3内核需要读取这些指令来执行程序就必须要通过ICode总线,它是专门用来取指的。

驱动单元

 DCode总线

  DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的。我们在写程序的时候,数据有常量和变量两种,常量就是固定不变的,用 C 语言中的 const关键字修饰,是放到内部的FLASH 当中的,变量是可变的,不管是全局变量还是局部变量都放在内部的 SRAM。因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。

 系统总线

  系统总线主要是访问外设的寄存器,我们通常说的寄存器编程,即读写寄
存器都是通 过这根系统总线来完成的。

 DMA 总线

  DMA 总线也主要是用来传输数据,这个数据可以是在某个外设的数据寄存器,可以在 SRAM,可以在内部的 FLASH。因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了 避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。

被动单元

 内部的闪存存储器

  内部的闪存存储器即 FLASH,我们编写好的程序就放在这个地方。内核通过 ICode 总 线来取里面的指令。

 内部的 SRAM

  内部的 SRAM,即我们通常说的 RAM,程序的变量,堆栈等的开销都是基于内部的 SRAM。内核通过 DCode 总线来访问它。

 FSMC

  FSMC 的英文全称是 Flexible static memory controller,叫灵活的静态的存储器控制器, 是 STM32F10xx 中一个很有特色的外设,通过 FSMC,我们可以扩展内存,如外部的 SRAM,NANDFLASH 和 NORFLASH。但有一点我们要注意的是,FSMC 只能扩展静态的 内存,即名称里面的 S:static,不能是动态的内存,比如 SDRAM 就不能扩展。

 AHB 到 APB 的桥

  从 AHB 总线延伸出来的两条 APB2 和 APB1 总线,上面挂载着 STM32 各种各样的特 色外设。我们经常说的GPIO、串口、I2C、SPI这些外设就挂载在这两条总线上,这个是我 们学习 STM32 的重点,就是要学会编程这些外设去驱动外部的各种设备。

STM32学习文章汇总


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部