第一章、STM32体系结构:
嵌入式系统概述:
嵌入式系统的定义及应用:
定义——嵌入式系统(Embedded System)以应用为中心。
特点:嵌入性、专用性、计算机系统、可靠性、实用性、低功耗。
- 嵌入性——嵌入到对象系统,满足对象系统的要求;
- 专用性(可裁剪性)——量身定做,功能单一;
- 计算机系统——以计算机技术基础等多学科融合;
- 可靠性——长时期工作,出现的故障率很低;
- 实时性——有强实时与弱实时;
- 低功耗——功耗较低。
嵌入式系统硬件:
嵌入式处理器 + 外围电路。
嵌入式处理器:
- 微处理器MPU:
由通用CPU演变,具有MMU。
- 微控制器MCU:
将CPU、存储器、中断系统和外设集中在单个芯片,如8051/STM32。
- 数字信号处理器DSP:
侧重于信号处理。
- 片上系统SOC:
可编程的逻辑器件。
嵌入式系统的引导和启动过程:
ARM处理器的复位启动:
复位后从0x0000 0004(32位)地址开始执行指令,这是复位中断向量的入口地址,从此进入复位异常处理即复位启动;
于ARM裸机模式中,只要将编译后的机器代码烧写到NAD Flash的0x0000 0004地址,系统复位后即可运行用户程序代码。
嵌入式软件:
软件层次结构:
- 裸机软件层次结构:
直接部署在嵌入式硬件上的软件。
特点:代码简单,代码量不大;一般都是无限循环;结构简单,额外开销少。
- 基于操作系统的软件层次:
由操作系统管理目标硬件,并向上为应用软件提供标准规范的应用程序接口和API函数库。
板级支持包BSP:
是所有与硬件相关代码的集合(软件模块),介于硬件和软件之间,为Application的正常运行提供最基本和最原始的硬件操作。
嵌入式操作系统:
又称为嵌入式实时操作系统,是嵌入式是应用软件的基础和开发平台,具有一般操作系统的最基本功能:进程调度、内存管理、设备管理、文件管理和操作系统接口(API调用)。具有可裁剪性、可配置性、实时性等特点。
一般32位以上的嵌入式系统才配有。
1.1、STM32简介:
STM32由意法半导体基于ARM Cortex-M内核开发,支持32位应用。
1.2、STM32系统架构;
1.2.1、ARM内核体系架构:
此处只介绍v7。
v7架构:
采用Thumb-2技术,代码仅占用31%的内存,性能却高出38%。
采用了适用于ARM Cortex-A系列处理器的128位SIMD(单指令多数据)扩展结构NEON技术,将DSP和媒体处理能力提高了将近4倍。
Cortex系列处理器:
基于v7架构的ARM Cortex系列产品可满足各种不同的日益增长的市场需求。分为A、R、M三个子系列。
- A系列——针对复杂操作系统以及用户应用设计的应用处理器;
- R系列——实时系统专用嵌入式处理器,实时控制处理器;
- M系列——针对微控制器和低成本应用专门优化的嵌入式微处理器。
Cortex-M系列:
低成本,低能耗,易于使用。
1.2.2、STM32系列微控制器:
STM32F4系列基于Cortex-M内核,主频率高达168MHz,具有DSP和FPU功能。
1.2.3、STM32F407微处理器:
该系列属于高性能处理器。ARM设计了Cortex-M4内核而ST公司设计了总线矩阵。
总线矩阵:
AHB总线(高级性能总线)通过总线桥与APB总线(高级外设总线)连接,APB总线连接各种APB外设。
AHB总线(高性能总线):
时钟频率可达168MHz,最多可支持16给主设备和任意个从设备,主要用于重要和速度要求较高的模块(CPU、DMA、DSP等)之间的连接。
APB总线(高级外设总线):
分为APB1和APB2总线,主要用于周边低速外设之间的连接。
APB1总线频率最高可达42MHz,APB2总线频率最高为84MHz