STM32笔记-系统架构

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值