STM32芯片的内部架构
STM32芯片由内核和片上外设两部分组成。STM32F103采用Cortex-M3内核,该内核由ARM公司设计。芯片生产厂商ST则负责在内核之外设计部件并生产整个芯片。这些内核之外的部件被称为核外外设或片上外设,如GPIO、USART(串口)、I2C、SPI等。
芯片内核与外设之间通过各种总线连接,其中驱动单元有四个,被动单元也有四个。可以将驱动单元理解成内核部分,被动单元理解成外设。
ICode总线
ICode总线是专门用于取指令的总线,其中的“I”代表“Instruction”(指令)。在编写程序后,经过编译,程序将转化为一条条指令并存储在FLASH中。内核通过ICode总线读取这些指令,进而执行程序。
DCode总线
DCode总线用于取数,其中的“D”代表“Data”(数据)。在编写程序时,数据分为常量和变量两种。常量是不变的,使用C语言中的const关键字进行修饰,并存储在内部FLASH中。变量是可变的,无论是全局变量还是局部变量,都存储在内部的SRAM中。
System总线
我们通常所说的寄存器编程,即读写寄存器的操作,都是通过System总线来完成的。System总线主要用于访问外设的寄存器。
DMA总线
DMA总线也主要用于传输数据,这些数据可以来自某个外设的数据寄存器,也可以来自SRAM或内部FLASH。
由于数据既可以被DCode总线访问,也可以被DMA总线访问,因此为了避免访问冲突,取数时需要经过一个总线矩阵进行仲裁,以决定由哪个总线进行取数。
内部的闪存存储器Flash
内部的闪存存储器即为FLASH,它用于存储编写好的程序。内核通过ICode总线来获取存储器中的指令。
内部的SRAM
内部的SRAM,也被称为内存,是程序中变量、堆栈等开销的存储基础。内核通过DCode总线来访问SRAM。
FSMC
FSMC的英文全称是Flexible static memory controller(灵活的静态的存储器控制器)。通过FSMC,可以扩展内部存储器,如外部的SRAM、NAND-FLASH和NORFLASH。但是,FSMC只能扩展静态的内存,而不能扩展动态的内存,因此不能用于扩展SDRAM。
AHB
从AHB总线延伸出的两条APB2和APB1总线是常见的总线,它们连接了GPIO、串口、I2C、SPI等外设。学习STM32的重点在于学会对这些外设进行编程,以便驱动外部的各种设备。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgekcgk
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01