一.嵌入式系统的组成
嵌入式系统的组成主要由:嵌入式硬件系统、嵌入式软件系统。
(1)嵌入式硬件系统主要包括:嵌入式处理器、存储器、模拟电路、电源、接口控制器、接插件等
1)嵌入式处理器:是嵌入式系统的核心。嵌入式处理器与通用处理器最大的区别在于嵌入式CPU大多工作在为特定用户群设计的系统中。
2)存储器:静态易失型存储器(RAM、SRAM)、动态存储器(DRAM、SDRAM)、非易失型存储器(ROM、EPROM、EEPROM、Flash)。
3)嵌入式外围硬件设备:串口、以太网接口、USB、音频接口、液晶显示屏、摄像头等。
(2)嵌入式软件系统主要包括:底层驱动、操作系统、应用程序
1)底层驱动:实现嵌入式系统硬件和软件之间的接口。
2)操作系统:简称OS。实现系统的进程调度、任务处理。操作系统的核心是嵌入式处理器。
流行的操作系统有:Linux、 uC/OS-II、Windows CE、VxWorks等。
3)应用程序:实现系统功能的应用。
二.嵌入式处理器
嵌入式系统的核心部件是嵌入式处理器,截至2000年嵌入式处理器的品种总量超过1000种,流行的体系结构30多个系列。
从应用的角度来划分,嵌入式处理器分为这几个类型:嵌入式微控制器(MCU:又叫单片机)、嵌入式微处理器(MPU)、嵌入式DSP、嵌入式片上系统(SoC)。
1)嵌入式微控制器(MCU):通用系列包括:8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。
2)嵌入式微处理器(MPU):主要有Aml186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。
MPU分为:复杂指令集计算机CISC和精简指令集计算机RISC两类。
CISC结构体系:大多数台式计算机都使用CISC微处理器,比如Intel的X86;
RISC结构体系:有两大类:
Silicon Graphics公司(硅谷图形公司)的MIPS技术
ARM公司的Advanced RISC Machines技术
3)嵌入式DSP:代表性产品有TMS320系列、DSP56000系列。
4)嵌入式片上系统(SoC):分为通用系列和专用系列两类。
通用系列包括:M-Core、某些ARM系列、Neuron芯片等。
专用的SoC一般专用于某类系统中,不为一般用户所知。
三.ARM处理器系列
1.常见的基于ARM核的产品有:
(1)Inter公司的XScale
(2)ST公司的STM32
(3)Freescale公司的龙珠系列iMX处理器
(4)TI公司的DSP+ARM处理器OMAP和Cortex核的LM3S系列
(5)Cirrus Logic公司的ARM系列
(6)SamSung公司的ARM系列
(7)Atmel公司的AT91系列微控制器
(8)NXP公司的微控制器系类
2.ARM公司定义了7种主要的ARM指令集体系结构版本,版本号V1-V7表示。
(1)V1:ARM1
(2)V2:ARM2、ARM3
(3)V3:ARM6
(4)V4:ARM7、ARM8、ARM9、StrongARM
(5)V5:ARM10、XScale
(6)V6:ARM11
(7)V7:Cortex、SecurCore
3.ARM Cortex处理器简介
ARM公司在ARM11系列以后的产品改用Cortex命名,并分为A、R、M三类。
A系列:基于V7A的称为Cortex-A系列。面向尖端的基于虚拟内存的操作系统和用户应用。
R系列:基于V7R的称为Cortex-R系列。针对实时系统。
M系列:基于V7M的称为Cortex-M系列。针对微控制器。常见的Cortex-M处理器有:Cortex-M0、Cortex-M3。
四.ARM Cortex-M3体系结构
1.Cortex-M3处理器整合了一下组件
(1)ARMv7-M处理器内核
(2)嵌套向量中断控制器(NVIC)
(3)存储器保护单元(MPU)
(4)总线接口
(5)低成本调试解决方案
注意:NVIC支持1-240个外部中断输入(通常外部中断写做:IRQ),还支持 一个不可屏蔽中断NMI。
![](https://img-blog.csdnimg.cn/20181028113053644.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaWJvMTIzMDEyMw==,size_27,color_FFFFFF,t_70)
2.Cortex-M3处理器的2种工作状态
(1)Thumb状态
(2)调试状态
注意:与ARM7处理器不同,Cortex-M3处理器不支持ARM指令的执行,即也没有ARM状态。
3.Cortex-M3处理器的2种工作模式
(1)线程模式(thread mode):复位和异常返回进入此模式。
(2)处理模式(handler mode):出现异常进入此模式。
注意:引入线程模式和处理模式是为了让处理器区分普通应用程序代码和异常服务(包括中断服务)例程代码,从而进行不同的处理。
4.Cortex-M3代码的特权分级
(1)特权执行:可以访问所有资源。提供了一种防止普通用户代码出现意外对存储器关键区域误操作的保护方式。处理模式始终是特权模式。
系统复位后,处理器进线程模式,特权级别为特权模式。
(2)非特权执行:对有些资源的访问受到限制或不允许访问。线程模式可以是特权模式也可以是非特权模式。
注意:通过引入特权访问和非特权访问,能够在硬件水平上限制某些不受信任的程序执行,使系统的可靠性的到提高。
5.Cortex-M3的双堆栈机制
Cortex-M3的程序存储使用堆栈来实现。
(1)MSP(main stack pointer):整个系统提供一个主堆栈供用户程序和异常处理程序使用。
(2)PSP(process stack pointer):每一个处于线程模式的程序也有一个自己的进程堆栈。
6.ARM Cortex-M3寄存器组织
(1)通用寄存器
1)r0-r7:低组寄存器
2)r8-r12:高组寄存器
3)r13:堆栈指针寄存器
4)r14:子程序链接寄存器(LR)
5)r15:程序计数器
(2)程序状态寄存器
1)应用PSR
2)中断PSR
3)执行PSR
(3)控制寄存器
控制寄存器有两个用途:第一:用于定义特权级别;第二:用于选择当前使用哪个堆栈指针。应用时可由两个位来行使这两个职能。CONTROL[1]位:堆栈指针选择位;CONTROL[0]位:特权级别选择位。
(4)中断屏蔽寄存器
中断屏蔽寄存器包括:PRIMASK、FAULTMASK、BASEPRI三个寄存器,这三个寄存器用于控制异常的使能和清除。
1)PRIMASK
2)FAULTMASK
3)BASEPRI
7.ARM Cortex-M3存储器映射
![](https://img-blog.csdnimg.cn/20181028155846445.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaWJvMTIzMDEyMw==,size_27,color_FFFFFF,t_70)
8.ARM Cortex-M3异常处理与中断处理
中断与异常的区别:中断请求信号来自ARM Cortex-M3内核外面,来自各种片上外设和外扩的外设,对ARM Cortex-M3来说是异步的;异常则是在ARM Cortex-M3内核执行指令或访问存储器时产生,对ARM Cortex-M3来说是同步的。