嵌入式芯片基础
以stm32f103c8t6为例:
内核:ARM 32位Cortex-M3 CPU,72MHz工作频率,是RISC处理器
存储器:
ROM(flash):64K字节,存储 Code 和 RO-data
RAM(sram):20K字节,存储 RW-data 和 ZI-data
flash里面的数据掉电可保存,sram中的数据掉电就丢失,sram的执行速度要快于flash,flash容量大于sram。
上方的最低内存地址,最高地址,都是在flash和sram中。
正常下载程序都是下载存储进flash里面。
1 | Code:代码存储区 |
使用mdk编译时,可以看到output:
1 | linking... |
封装:LQFP64,薄型QFP(Low-profile Quad Flat Package),中文含义叫四方扁平式封装技术(Quad Flat Package)。引脚在外面露着,爬着。
其它封装:FBGA,是Fine-Pitch Ball Grid Array(意译为“细间距球栅阵列”)的缩写,是细间距球栅阵列,是一种在底部有焊球的面阵引脚结构。没有引脚,贴着。
系统架构
一个非常好的博客文章:https://www.cnblogs.com/yihuihong/p/4965997.html
在此备份👇:
- 芯片结构组成图:
- STM32内部结构
- Cortex-M3模块结构图
- STM3210X内部结构
- 桥
四个主动单元 :
M3内核的ICode总线(I-bus)、DCode总线(D-bus)、 系统总线(S-bus)、DMA(DMA1、DMA2、以太网DMA)
四个被动单元 :
内部SRAM、内部闪存、FSMC、AHB到APB桥
ICode总线 :
将M3内核的指令总线与FLASH指令接口相连,用于指令预取
DCode总线:
将M3内核的数据总线与FLASH数据接口相连,常量加载和调试
系统总线 :
将M3内核的系统总线与总线矩阵相连,协调内核与DMA访问
DMA总线:
将DMA的AHB主控接口与总线矩阵相连,协调CPU的DCode和DMA到SRAM、闪存、外设的访问
总线矩阵:
协调内核系统总线和DMA主控总线间的访问仲裁,仲裁采用轮换算法。
此总线矩阵由三个驱动部件(CPU 的 DCode、系统总线和 DMA 总线)和三个被动部件(闪存存储器接口、SRAM 和 AHB2APB 桥)构成。
AHB 外设通过总线矩阵与系统总线相连,允许 DMA 访问。
AHB到APB桥 :
两个AHB/APB桥在AHB和两个APB总线间提供同步连接
APB1速度限于36MHz,APB2全速最高72MHz
存储器映像
时钟