嵌入式系统的组成、嵌入式处理器分类总结、ARM处理器系列总结、ARM Cortex-M3体系结构总结!

版权声明:本文为博主原创文章,未经博主允许不得转载。---魏波 https://blog.csdn.net/weibo1230123/article/details/83450115

一.嵌入式系统的组成

嵌入式系统的组成主要由:嵌入式硬件系统、嵌入式软件系统。

(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。 

通过图 2.2.1 可以知道,ARM7TDMI、ARM920T 属于 ARMv4 体系,ARM926、ARM946、ARM966 属于 ARM v5 体系,ARM1136、ARM1176、ARM Cortex-M0、ARM Cortex-M1 属于 ARM v6 体系,Cortex-A8、Cortex-R4、Cortex-M3 属于 ARM v7 体系。
按应用特征分类,可以分为三类:
(1)应用处理器(Application Processor) :该处理器具有 MMU、Cache,并且频率最快、性能最高、功耗合理。
(2)实时控制处理器(Real-time Controller):该处理器具有 MPU、Cache,并且能够实时响应、性能合理,功耗较低。
(3)微控制器(Micro Controller):该处理器性能一般,但是成本最低,功耗也极低。

从 ARM v4 架构发展到 ARM v7 架构,每种架构的简要如下:


ARMv4


ARMv4 是目前支持的最老的架构, 是基于 32bit 地址空间的 32bit 指令集。ARMv4 除了支持 ARMv3 的指令外还扩展了:
  ™支持 halfword 的存取
  ™支持 byte 和 halfword 的符号扩展读
  ™进一步的明确了会引起 Undefined 异常的指令
  ™对以前的 26bits 体系结构的 CPU 不再兼容


ARMv4T


ARMv4T 增加了 16bit Thumb 指令集,这样使得编译器能产生紧凑代码(相对于 32bit 代码,内存能节省到 35%以上)并保持
32bit 系统的好处。

ARMv5TE


1999 年推出 ARMv5TE, 增强了 Thumb 体系, 改进了 Thumb/ARM 相互作用、编译能力和混合及匹配 ARM 与 Thumb 例程,以
更好地平衡代码空间和性能并 在 ARM ISA 上扩展了增强的DSP指令集,增强的DSP指令包括支持饱和算术
(saturatedarithmetic)应用,提高了数字信号处理 70%性能。‘E’扩展表示在通用的 CPU 上提供 DSP 能力。2000 年推出
ARMv5TEJ,增加了支持 Java 加速技术。

ARMv6


2001 年推出 ARMv6,它在许多方面做了改进如内存系统、异常处理和较好地支持多处理器。SIMD 指令的扩展使得广大的软件
应用如 Video 和 Audio codec 的性能提高了 4 倍。Thumb-2 和 TrustZone 技术也用于 ARMv6 中。


ARMv7


ARMv7 定义了 3 种不同的处 器配置理器配置(processor profiles):
  Profile A 是面向复杂、 基于虚拟内存的 OS 和应用的。
  Profile R 是针对实时系统的。
  Profile M 是针对低成本应用的优化的微控制器的。
  所有 ARMv7 处理器配置都能够实现 Thumb-2 技术


结语:在 新架构的出现,意味着老的架构被取代,就像现在 Intel CPU  演变出更高性能而功耗更低的 Core i3/5/7  系列 CPU ,同样ARM  架构的演变代表着高性能和低功耗,市场主以 流以 ARM v6 和 和 ARM v7  架构为主导,所以,我们要深入了解 ARM ,必须对这两种架构有一定的认识。
 

 

四.ARM Cortex-M3体系结构

1.Cortex-M3处理器整合了一下组件


(1)ARMv7-M处理器内核
(2)嵌套向量中断控制器(NVIC)
(3)存储器保护单元(MPU)
(4)总线接口
(5)低成本调试解决方案

注意:NVIC支持1-240个外部中断输入(通常外部中断写做:IRQ),还支持 一个不可屏蔽中断NMI。 


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存储器映射

 

8.ARM Cortex-M3异常处理与中断处理


中断与异常的区别:中断请求信号来自ARM Cortex-M3内核外面,来自各种片上外设和外扩的外设,对ARM Cortex-M3来说是异步的;异常则是在ARM Cortex-M3内核执行指令或访问存储器时产生,对ARM Cortex-M3来说是同步的。

展开阅读全文

没有更多推荐了,返回首页