ARM体系结构与接口技术(一)

合集下载

ARM嵌入式体系结构与接口技术

ARM嵌入式体系结构与接口技术

4
1.1.1 嵌入式系统的基本概念
嵌入式系统的特点
(1)面向特定应用的特点,与“通用型”系统相比,满 足特定应用的特定需求 (2)嵌入式系统的硬件和软件都必须进行高效地设计, 量体裁衣、去除冗余,力争在同样的硅片面积上实现更 高的性能 (3)嵌入式系统是将先进的计算机技术、半导体技术和 电子技术与各个行业的具体应用相结合后的产物。
8
1.1.2 嵌入式系统的体系结构


嵌入式操作系统不仅具有通用操作系统的一般功 能,如向上提供对用户的接口(如图形界面、库 函数API等),向下提供与硬件设备交互的接口( 硬件驱动程序等),管理复杂的系统资源, 在系统实时性、硬件依赖性、软件固化性以及应 用专用性等方面,具有更加鲜明的特点
9
1.1.2 嵌入式系统的体系结构

5
(4)为了提高执行速度和系统可靠性,嵌入式系统中的 软件一般都固化在存储器芯片中或单片机本身,而不是 存储于磁盘中。 (5)嵌入式开发的软件代码尤其要求高质量、高可靠性 。 (6)嵌入式系统本身不具备二次开发能力,即设计完成 后用户通常不能在该平台上直接对程序功能进行修改, 必须有一套开发工具和环境才能进行再次开发。厂家对 产品固件(Firmware)进行升级

3
1.1.1 嵌入式系统的基本概念


嵌入式系统的基本概念
嵌入式系统应用随处可见,工业、军事、宇宙、通信、运 输、金融、医疗、气象、农业等领域 嵌入式系统是以应用为中心,以计算机控制系统为基础, 并且软硬件可裁剪,适用于应用系统对功能、可靠性、成 本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统通常由特定功能模块和计算机控制模块组成, 主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统 以及用户应用软件等部分组成。它具有“嵌入性”、“专 用性”与“计算机系统”的三个基本要素。

第2章 ARM体系结构

第2章  ARM体系结构

• 控制位

程序状态寄存器PSR(Program Status Register)的最低8位I、F、T和 M[4:0]用作控制位。当异常出现时改变控制位。处理器在特权模式 下时也可由软件改变。
• 中断禁止位 I:置1,则禁止IRQ中断; F:置1,则禁止FIQ中断。 • T位 T=0 指示ARM执行; T=1 指示Thumb执行。 • 模式控制位 M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理器 的工作模式,如表2.3.1所列。
6 (最低)
6 5
数据中止
IRQ (外部中断请求) FIQ (快速中断请求)
中止(数据)
IRQ FIQ
中止模式
IRQ FIQ
0x0000,0010
0x0000,0018 0x0000,001C
2
4 3
2.4.2 异常类型的含义
(1)复位
• • 处理器的复位电平有效时,产生复位异常 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常
2.4 ARM微处理器的异常处理
• 异常:在一个正常的程序流程执行过程中,由内 部或外部源产生的一个事件使正常的程序产生暂 时的停止,称之为异常。
2.4.1 ARM体系结构的异常类型
• ARM体系结构支持7种类型的异常
• 异常出现后,强制从异常类型对应的固定存储器地址开始 执行程序。这些固定的地址称为异常向量(Exception Vectors)。
M[4:0]模式控制位
M[4: 0] 10000 10001 10010 10011 10111
处理器工作 模式 用户模式 FIQ模式 IRQ模式 管理模式 中止模式
可访问的寄存器 PC,CPSR,R14~R0 PC,R7~R0,CPSR, SPSR_fiq,R14_fiq~ R8_fiq PC,R12~R0,CPSR, SPSR_irq,R14_irq, R13_irq PC,R12~R0, CPSR, SPSR_svc,R14_svc, R13_svc PC,R12~R0, CPSR, SPSR_abt,R14_abt, R13_abt

单片机课件第二章 ARM体系结构

单片机课件第二章 ARM体系结构

2.5
ARM微处理器指令系统
2.5.1 基本寻址方式
寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地 址的方式,ARM处理器有9 种基本寻址方式。
1.寄存器寻址
操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编 号,指令执行时直接取出寄存器值操作。
例如指令: MOV R1,R2 SUB R0,R1,R2
11111
系统模式
PC,R14~R0,CPSR(ARM v4及以上版本)
并非所有的模式位组合都能定义一种有效的处理器模式。其他组合的 结果不可预知。
2.2 ARM微处理器的寄存器结构
2.2.4 Thumb状态的寄存器集
2.2 ARM微处理器的寄存器结构
2.2.4 Thumb状态的寄存器集
Thumb 状态的寄存器在ARM 状态的寄存器上的映射


在Thumb状态下,程序计数器PC(Program Counter)使用位[1]选 择另一个半字。ARM处理器在两种工作状态之间可以切换。
Thumb状态:当操作数PSR控制位T为1时,执行BX指令进入Thumb 状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、 FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。(异 常都是在ARM 状态中执行) ARM状态:当操作数PSR控制位T为0时,执行BX指令进入ARM状态 ;处理器发生异常(IRQ、FIQ、Reset、Undef、Abort和SWI)。在 此情况下,把PC内容复制到异常模式的链接寄存器中,并且异常处 理将从异常向量地址开始。
sys(系统模式):运行具有特权的操作系统任务。

und(未定义指令中止模式):当未定义的指令执行时进入该 模式,可用于支持硬件协处理器的软件仿真。

ARM处理器详解(1)-ARMCortex-A系列处理器

ARM处理器详解(1)-ARMCortex-A系列处理器

ARM处理器详解(1)-ARMCortex-A系列处理器如图所⽰,绿⾊的部分都是v7-A的架构,蓝⾊的是v8-A架构,基本上绿⾊都是可以⽀持到32和64位的,除了A32,只⽀持到32位。

在右边的每个部分,⽐如说需要⾼效能的最上⾯的A15-A73这个部分是最⾼效的,接下来就是⽐较注重整个效率的部分了,中间那个部分是⽐较⾼效率的,最下⾯那栏的是效率最好的,在电池的效能⽅⾯达到了最好的标准。

最新的还有使⽤在麒麟980上的,基于Dynamiq技术的第⼆代优质内核 Cortex A76。

Acore主打的就是⾼性能,消费类的产品⽐如⼿机,平板,机顶盒等需要上系统的基本上都需要使⽤Acore。

Acore的发展曲线基本上和⼯艺曲线重叠,最新的A76是基于7nm的⼯艺,A73基于10nm的⼯艺,更早些的A5,A9基本上使⽤40nm或28nm的⼯艺。

这是ARM 2016年发布的最新A系列处理器,Cortex-A73⽀持全尺⼨ARMv8-A构架,ARMv8-A是ARM公司的⾸款⽀持64位指令集的处理器架构,包括ARM TrustZone技术、NEON、虚拟化和加密技术。

所以⽆论是32位还是64位,Cortex-A73都可以提供适应性最强的移动应⽤⽣态开发环境。

Cortex-A73包括128位 AMBR 4 ACE接⼝和ARM的big.LITTLE系统⼀体化接⼝,采⽤了⽬前最先进的10nm技术制造,可以提供⽐Cortex-A72⾼出30%的持续处理能⼒,⾮常适合移动设备和消费级设备使⽤。

预计今年晚些时候到2017年,Cortex-A73处理器将会逐渐覆盖到我们合作伙伴的⾼端智能⼿机、平板电脑、翻盖式移动设备、数字电视等⼀系列消费电⼦设备。

big.LITTLE架构发展到最新的A76,更新了Dynamiq架构,core的外⾯再包了⼀层L3 cache,减少了对外部DDR的读写,所以性能更优。

Cortex-A72最早发布于2015年年初,也是基于ARMv8-A架构,采⽤台积电16nm FinFET制造⼯艺,Cortex-A72可在芯⽚上单独实现性能,也可以搭配Cortex-A53处理器与ARMCoreLinkTMCCI⾼速缓存⼀致性互连(CacheCoherentInterconnect)构成ARMbig.LITTLETM配置,进⼀步提升能效。

ARM体系结构

ARM体系结构
2015/9/288源自ARM920T系统结构分析
ARM9TDMI处理器一个显著的特点是采用 指令和数据分离访问的方式,即采用了指令 缓存(I-Cache)和数据缓存(D-Cache)。 这样可以把指令访问和数据访问单独安排1级 流水线。
2015/9/28
9
ARM9处理能力的提高是通过增加时钟频率和减少指令执行周期实 现的。 (1)时钟频率的提高 ARM9采用了五级流水线,而ARM7采用的是三级流水线,ARM9增 加的流水线设计提高了时钟频率和并行处理能力。五级流水线能够将各 条指令处理分配到5个时钟周期内,在每个时钟周期内同时有5条指令在 执行。在同样的加工工艺下,ARM9 TDMI处理器的时钟频率是ARM7 TDMI的2倍左右。 (2)指令周期的改进 指令周期的改进有助于处理器性能的提高。性能提高的幅度依赖于 代码执行时指令的重叠。 ① load指令和store指令 指令周期数改进最明显的是load指令和store指令。 ② 互锁(interlock)技术 当指令需要的数据因为以前的指令没有执行完,将产生管道互锁。管
操作系统的保护模式 指令或数据预取操作中止时的模 式,该模式下实现虚拟存储器或 存储器保护 当执行未定义的指令时进入该模 式 响应普通中断时的处理模式
未定义模式 IRQ模式
Und Irq
FIQ模式
Fiq
响应快速中断时的处理模式
2015/9/28
21
处理器工作模式
ARM微处理器的运行模式可以通过软件改变,也可以通 过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在 用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的6种模式称为非用户模式或特 权模式; 除去用户模式和系统模式以外的5种又称为异常模式, 常用于处理中断或异常,以及访问受保护的系统资源等情 况。

ARM架构

ARM架构
R15(PC) 状态寄存器 CPSR SPSR R15 CPSR
R13(SP)
R13
R13
R13_svc R13_svc R14_svc R14_svc
2-3-1 ARM状态下的寄存器组织
寄存器类别 寄存器在汇编中的名 称 用户 用户 R0(a1) R1(a2) R2(a3) R3(a4) R4(v1) R5(v2) R6(v3) 通用寄存器 和程序计数 器 R7(V4) R8(V4) R9(SB,v6) R0 R0 R1 R1 R2 R2 R3 R3 R4 R4 R5 R5 R6 R6 R7 R7 R8 R8 R9 R9 R10 R10 R11 R11 R8 R9 各模式下实际访问的寄存器 系统 系统 管理 管理 中止 中止 R0 R1 R2 R3 R4 R5 R6 R7 R8_fiq R8_fiq R9_fiq R9_fiq R10_fiq R10_fiq R11_fiq R11_fiq 未定义 未定义 中断 中断 快中断 快中断
1-4-1 常见ARM微处理器系列介绍
ARM9系列微处理器在高性能和低功耗特性方面提供 最佳的性能:
5级整数流水线,指令执行效率更高。 提供1.1MIPS/MHz的哈佛结构。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 全性能的MMU,支持Windows CE、Linux、Palm OS 等多种主流 嵌入式操作系统。 MPU支持实时操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
2-1 ARM微处理器的工作状态
处理器状态: ARM9处理器内核使用V4T版本的ARM结构,具有 两种操作状态:
ARM状态:32位,这种状态下执行的是字方式的ARM指令 Thumb状态:16位,这种状态下执行半字方式的ARM指令。

1、ARM体系结构

1、ARM体系结构

ARM全球合作伙伴(合作模型)
ARM产品应用领域
Samsung ML5100A Diamond Multimedia Rio 600 JVC "Pixstar" GC-X1 Alba Bush Internet TV
3Com 10/100 PCI NIC
Nintendo Gameboy Advance Lexmark Z52 Color Jetprinter HP Jornado 820
5TE
XScale ARM1020E
6
Thumb-2 SIMD Instructions Multi-processing
7
CoreSight
Improved ARM/Thumb ARM9E-S Interworking ARM966E-S CLZ Saturated arithmetic DSP multiplyaccumulate instructions Extensions: Jazelle (5TEJ)
• •
该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5
分支流水线举例
Cycle 1 2 L 3 4 5 6 7 8 9
Address
0x8000 0x8004 0x8008 0x8FEC 0x8FF0 0x8FF4
Operation
BL 0x8FEC SUB ORR AND ORR EOR
Iomega HipZip
Sony MZ-R90 MiniDisc
Ericsson R38Share
Nokia Mediamaster
Psion Revo Plus
ARM体系结构的发展
4T
Halfword and signed halfword / byte support System mode Thumb instruction set ARM7TDMI ARM720T ARM9TDMI ARM940T ARM920T

基于cortex-a7的arm体系结构与接口技术

基于cortex-a7的arm体系结构与接口技术

ARM Cortex-A7是一种基于ARMv7-A架构的处理器核心,属于ARM 的低功耗应用处理器系列。

它在性能和功耗方面取得了良好的平衡,广泛应用于移动设备、嵌入式系统和物联网设备等领域。

ARM Cortex-A7的主要特点和接口技术包括:1. 架构特性:Cortex-A7采用了ARMv7-A架构,支持32位指令集,并提供了多种指令集扩展,如Thumb-2和NEON等,以提高代码密度和多媒体处理能力。

2. 处理器核心:Cortex-A7采用了超标量乱序执行(Out-of-Order Execution)的架构,具有双发射、乱序执行和多级流水线等特性,可以提供较高的性能和效率。

3. 处理器频率:Cortex-A7的时钟频率可根据具体实现而异,通常在几百MHz到几GHz之间,可以根据功耗和性能要求进行调整。

4. 高效能耗比:Cortex-A7以低功耗为设计目标,具有较低的静态功耗和动态功耗。

它采用了一些功耗优化技术,如动态电压频率调节(DVFS)、低功耗待机模式和智能缓存等,以在提供足够性能的同时降低功耗。

5. 内存接口:Cortex-A7支持多种内存接口技术,包括LPDDR2、DDR3、DDR3L和DDR4等,可以与不同类型的内存进行高效通信。

6. 外设接口:Cortex-A7提供了多种外设接口,如UART、SPI、I2C 和USB等,用于与外部设备进行通信和控制。

7. 硬件加速器:Cortex-A7还支持NEON向量处理引擎,用于高效处理多媒体数据和信号处理任务。

此外,它还可以与其他硬件加速器,如GPU和图像处理器等进行协同工作,以提高整体系统性能。

总的来说,基于Cortex-A7的ARM体系结构具有较低的功耗、高性能、丰富的接口技术和良好的可扩展性,适用于多种低功耗应用场景,如智能手机、平板电脑、物联网设备和工业控制等。

ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案

ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案

第一章1.简述ARM可以工作的几种模式。

答:ARMv7-A架构处理器共有8种工作模式,即用户模式(User)、快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、监控模式(Monitor)2.ARM 核有多少个寄存器?答:ARM处理器有40个32位长的寄存器3.什么寄存器用于存储PC和LR寄存器?答:R15和R14寄存器4.R13通常用来存储什么?答:R13通常用来存储堆栈指针5.哪种模式使用的寄存器最少?答:用户模式(User)和系统模式(System),因为这两种模式下没有SPSR寄存器6.CPSR 的哪一位反映了处理器的状态?答:T位是处理器的状态控制位第二章1.熟悉 Eclipse 开发环境。

答:略,参照第2.3节2.新建一个工程,编写一个汇编程序实现3+13=16的操作。

答:略,参照第2.6节第三章1.用 ARM 汇编实现下面列出的操作。

R0=15R0=R1/16(有符号数)R1=R2*3R0=−R0答:R0=15-- MOV R0,#15R0=R1/16 --MOV R0,R1,ASR #4BIC R0, R0, #0x78000000R1=R2*3-- MOV R3, #3MUL R1,R2,R3R0=−R0 -- MOV R1, #-1MOV R2, R0MUL R0,R1,R22.BIC 指令的作用是什么?答:将一个寄存器中的某一位或者某几位清零3.执行 SWI 指令时会发生什么情况?答:执行SWI指令时ARM处理器会自动将CPSR拷贝到SVC模式下的SPSR,然后修改CPSR 寄存器的T位使处理器进入ARM状态,修改CPSR寄存器的低五位模式位使处理器进入SVC模式,修改CPSR寄存器的I位禁止IRQ中断,保存当前SWI指令下一条指令的地址到SVC 模式下的LR寄存器,然后PC的值改为异常向量表中偏移地址为0x08的地址。

ARM嵌入式体系结构与接口技术

ARM嵌入式体系结构与接口技术
LH75400, LH75401, LH75410, LH75411
23
精品课件
ARM芯片厂商







2、PCB设计仿真阶段

需要在EDA仿真设计平台下,设计系统原理图及
PCB,并对PCB板上的信号完整性、EMI等进行
仿真,根据仿真结果来对PCB进行合理的布局布
线调整,完成PCB的设计
PCB图
ML67Q4051, ML67Q4060, ML67Q4061, ML696201, ML69Q6203
Samsung (ARM7/ARM9/Cortex-M3 Family)
S3C2410A, S3C2440A, S3C44B0X, S3C4510B,S5PC210
Sharp (ARM7/ARM9/Cortex-M3 Family)
LPC2294, LPC2364, LPC2366,, LPC2880, LPC2888, LPC3180
OKI (ARM7/ARM9/Cortex-M3 Family)
ML674000, ML674001, ML674002, ML674003, ML675001, ML675002, ML675003, ML67Q4050,
到终端用户手中
云计算的核心思想,是将大
量用网络连接的计算资源统
一管理和调度,构成一个计
算资源池向用户按需服务。
精品课件
12
1.2 嵌入式系统的组成
应用 软 件
嵌 入 式操 作 系 统
硬件 设 备
嵌入式处理器
外围 设 备
图1-1 嵌入式系统结构简图
精品课件
13
1.2 嵌入式系统的组成

第9章 串行通信-1-基于ARM的微机原理与接口技术-陈桂友-清华大学出版社

第9章 串行通信-1-基于ARM的微机原理与接口技术-陈桂友-清华大学出版社
基于ARM的微机原理 与接口技术
1/46
第9章 串行通信 本章学习目标
熟悉数据通信的一般概念 掌握USART的结构、工作原理和使用方法 掌握SPI的结构、工作原理和使用方法
2/46
1、STM32 Timer简介
STM32集成了USART、SPI、I2C、USB、CAN等 串行通信部件,可以与外部设备进行串行连接, 实现串行通信功能。
13/46
波特率与比特率
波特率指数据信号对载波的调制速率,它用单 位时间内载波调制状态改变次数来表示,其单 位为波特(Baud)。 波特率与比特率的关系是比特率=波特率×单 个调制状态对应的二进制位数。 在信息传输通道中,携带数据信息的信号单元 叫码元,每秒钟通过信道传输的码元数称为码 元传输速率,简称波特率。波特率是传输通道 频宽的指标。
b)有空闲位时的通信格式
异步通信的格式
9/46
异步传送时,每个字符的组成格式
首先用一个起始位表示字符的开始; 后面紧跟着的是字符的数据字,数据字通常是 7位或8位数据(低位在前,高位在后),在数 据字中可根据需要加入奇偶校验位; 最后是停止位,其长度可以是一位或两位。串 行传送的数据字加上成帧信号的起始位和停止 位就形成了一个串行传送的帧。
3/46
9.1 通信的有关概念
通信:计算机的CPU与外部设备之间,以及 计算机和计算机之间的信息交换。
通信分类:并行通信和串行通信
并行通信和串行通信的连接示意图
4/46
并行通信
以字节(Byte)或字节的倍数为传输单位 一次传送一个或一个以上字节的数据,数据的 各位同时进行传送 适合于外部设备与微机之间进行近距离、大量 和快速的信息交换。计算机的各个总线传输数 据时就是以并行方式进行的。 并行通信的特点就是传输速度快,但当距离较 远、位数较多时,通信线路复杂且成本高。

基于cortex-a7的arm体系结构与接口技术

基于cortex-a7的arm体系结构与接口技术

基于cortex-a7的arm体系结构与接口技术基于Cortex-A7的ARM体系结构与接口技术Cortex-A7是ARM公司设计的一款高效能低功耗处理器内核。

它基于ARMv7-A体系结构,并使用了ARM的Thumb-2指令集,以提供更好的代码密度和节能特性。

Cortex-A7广泛应用于移动设备、物联网和嵌入式系统等领域。

ARM体系结构是一种低功耗、高性能的处理器架构。

它采用精简指令集(RISC)的设计哲学,以减少指令的数量和复杂性,从而提高处理器的性能和功耗效率。

Cortex-A7作为ARM体系结构的一部分,具有以下特点:1. 高性能:Cortex-A7采用超标量技术,可同时执行多个指令,从而提高处理器的吞吐量和并行性能。

它还支持动态指令调度,通过重排序指令来提高指令级并行性。

2. 低功耗:Cortex-A7采用了ARM的大小核技术。

即在同一个芯片上同时集成了Cortex-A7和Cortex-A15两个处理器内核。

Cortex-A7主要负责处理低功耗任务,而Cortex-A15则用于处理高性能任务。

这种设计可以实现功耗和性能的平衡。

3. 异构多核:Cortex-A7还支持异构多核架构。

它可以与其他Cortex-A内核配合工作,实现更高的并行性和处理能力。

例如,在移动设备中,Cortex-A7与Cortex-A15的组合可以实现更好的性能和功耗。

除了处理器内核,Cortex-A7还支持各种接口技术,以满足不同应用场景的需求。

以下是一些常见的接口技术:1. AMBA接口:Cortex-A7采用了ARM的AMBA总线标准,包括AMBA AXI、AHB和APB等接口。

这些接口提供了高效的数据传输机制,支持多种外部设备的连接和通信。

2. 引脚接口:Cortex-A7的芯片上引脚提供了多种接口,包括GPIO、UART、SPI、I2C和SDIO等。

这些接口可以连接到外部设备,如传感器、存储器和通信模块等。

3. 存储接口:Cortex-A7支持多种存储器接口,包括SD卡接口、NAND和NOR闪存接口以及DDR3/DDR4内存接口。

ARM体系结构及常用接口简介解析

ARM体系结构及常用接口简介解析


进入ARM状态:
执行BX指令,并设置操作数寄存器的状态(位[0]) 为0。 – 进入异常时,将PC放入异常模式链接寄存器中,从异 常向量地址开始执行也可进入ARM状态

ARM微处理器:处理器工作状态
• Thumb-2 :增加了混合模式能力 – 定义了一个新的32-bit指令集能在传统的 16-bit指令运行的Thumb状态下同时运行。 – 这样能在一个系统中更好地平衡ARM和 Thumb代码的能力,使系统能更好地利 用ARM级别的性能和Thumb代码的密度 的优势
ARM异常处理
异常向量表(Exception Vectors)
地 址 0x0000,0000 0x0000,0004 0x0000,0008 0x0000,000C 0x0000,0010 0x0000,0014 0x0000,0018 0x0000,001C 复位 未定义指令 软件中断 中止(预取指令) 中止(数据) 保留 IRQ FIQ 异 常 进入模式 管理模式 未定义模式 管理模式 中止模式 中止模式 保留 IRQ FIQ
13
ARM920T系统结构分析
ARM7TDMI
Instruction Fetch ThumbARM decompress ARM decode Reg Select
Reg Read
Shift
ALU
Reg
Write
FETCH
DECODE
EXECUTE
ARM9TDMI
Instruction Fetch ARM or Thumb Inst Decode Reg Reg Decode Read Shift + ALU Memory Access Reg Write
3

第1章 基础知识-2-基于ARM的微机原理与接口技术-陈桂友-清华大学出版社

第1章 基础知识-2-基于ARM的微机原理与接口技术-陈桂友-清华大学出版社

16/42
1、系统总线 定义:连接多个功能部件的一组公共信号线。
各功能部件之间通过总线传输信息。 系统总线分为 地址总线AB(Address Bus) 数据总线DB(Data Bus) 控制总线CB(Control Bus) -----典型的三总线结构
17/42
地址总线AB 单向 输出CPU的地址信号
现在市面上有各种C编译器,能把C语言转换成某 个具体的微处理器的机器语言。这种编译器比较 适宜于对汇编语言不熟悉的用户使用,其缺点是 不可避免地会出现编译后的机器程序冗长、不够 简练,导致程序运行时间长、速度低等问题。
13/42
另外,用汇编语言编程能更有利于硬件电路与程 序的结合设计与调试。 当然,如果用户并不在乎程序的长短和运行速度 的快慢时,并且拥有对应的编译软件的条件下, 采用由C语言编写,经编译程序来进行用户系统的 设计和开发,也不失为一种好方法。
处理器进行译码、执行。 一条机器指令应包含要求微处理器所要完成的
操作,以及参与该操作的数据或该数据所在的地址, 有时还要有操作结果的存放地址信息,这些都是以 二进制数字的形式表示的,当然,也有某些特殊指 令不需要数据或地址。
8/42
11、汇编指令 微处理器能够而且只能够识别二进制数,指令也用二 进制数表示。例如,一条4字节的指令如下:
12/42
14、高级语言
汇编指令虽然较二进制机器指令容易阅读和编写, 但还是不如高级语言更接近英语自然语言。解决 方法是用高级语言编程,再用某种特殊程序翻译 成机器语言。
具体地说,针对某个用户系统用高级语言编写的 用户程序翻译成某个具体的微处理器的机器语言 程序(这种过程叫做编译)的软件,叫做编译器。
00001111 00100100 00010010 01000101
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM920TDMA处理器是哈佛结构,包括取指、译码、执行、存储、写入的五级流水线。

包括cp14和cp15两个协处理器。

16k数据缓存和16k指令缓存。

虚拟地址64路相关缓存。

每线8字。

ARM的基本数据类型:
ARM采用的是32位架构,基本上数据类型有以下三种:
Byte :字节,8位
Halfword:半字,16bit(半字必须与2字节边界对齐
Word:字,32bit(必须与4字节边界对齐
所有的数据类型指令的操作数都是字类型。

ARM指令编译后是4字节(与字边界对齐,Thumb指令编译后是2字节(与半字对齐
存储器大/小端
Arm支持大端模式和小端模式。

在大端模式下,一个字的高地址放的是数据的地位,在小端模式下,数据的低地址放的是数据的低位。

ARM920T,有7中工作模式:
用户模式(User,正常程序执行模式。

快速中断模式(FIQ,当一个高优先级中断产生时将会进入该模式,一般用于高速数据传输和通道处理。

外部中断模式(IRQ,当一个低优先级中断产生时将会进入该模式,一般用于通常的中断处理
特权模式(Supervise,当复位或软中断指令执行时进入该模式,是一种供操作系统使用的保护模式。

数据访问中止模式(abort,当存取异常时将会进入该模式,用于虚拟存储或存储保护未定义指令中止模式(undef,当执行未定义指令时进入该模式,有时用于通过软件仿真协处理器硬件的工作方式
系统模式(system使用和user模式相同的寄存器集模式,用于运行特权级操作系统任务
除了用户模式,其他六中均为特权模式。

在特权模式下,程序可以访问所有的系统资源,也可以任意的进行处理器模式切换。

流水线的概念与原理
处理器按照一系列的步骤来执行每一条指令,典型的步骤如下:
1、从存储器读取指令(fetch
2、译码以鉴别它是属于哪一条指令(decode
3、从指令中提取指令的操作数(这些操作数往往存在于寄存器中(reg
4、将操作数进行组合以得到结果或存储器地址(ALU
5、如果需要,则访问存储器以存储数据(mem
6、将结果写回到寄存器堆(res
流水线的分类:
1、3级流水线ARM组织
取指令—>译码—>执行
2、5级流水线ARM组织
取指令—>译码—>执行—>缓冲/数据—>回写
3、6级流水线ARM组织
取指令—>发射—>译码—>执行—>存储—>回写
影响流水线性能的因素:
1、互锁:即一条指令的结果被用作下一条指令的操作数
2、跳转指令:
ARM为微处理器指令系统
ARM处理器的寻址方式:
1、立即数寻址方式
2、寄存器寻址方式
3、寄存器移位寻址方式
内存访问指令寻址方式:
内存访问指令的寻址方式可以分为以下几种
1、字及无符号字节的load/store指令的寻址方式
2、杂类load/store指令的寻址方式
3、批量load/store指令的寻址方式
4、协处理器load/store指令的寻址方式
ARM处理器的指令集
操作数指令集:
MOV:执行的结果就是把一个数N送到目标寄存器Rd,其中N可以是寄存器也可以是立即数
MVN:是反相传送指令,它将操作数的反码传送到目的寄存器,多用于向寄存器传送一个负数或者生成位掩码。

AND:指令将shifter_operand表示的数值与寄存器Rn的值按位做逻辑与操作,并将结果保存到目标寄存器Rd中,同时根据操作的结果更新CPSR寄存器
EOR:指令时将寄存器Rn中的值和shifter_operand的执行行按位异或操作,并将执行结果存储到目的寄存器Rd中,同时根据指令的执行结果更新到 CPSR中相应的条件标志位
SUB:指令从急促安全Rn中减去shifter_operand表示的数值,并将结果存到目标寄存器Rd中,同时更具指令的执行结果设置CPSR中相应的标志位
RSB :指令从寄存器shifter_operand中减去Rn表示的数值,并将结果保存到目标寄存器Rd中,同时更具指令的执行结果设置CPSR中的相应位。

ADC:指令将寄存器shifter_operand的值加上Rn表示的值,再加上CPSR中的C 条件标志位的值,并将结果保存到目标寄存器Rd中,同时根据指令的执行结果设置CPSR中相应的标志位
SBC指令用于执行操作数大于32位时的减法操作。

该指令从寄存器Rn中减去shifter_operand表示的数值,再减去寄存器CPSR中C条件标志位的反码,并将结果保存到目标寄存器Rd中,同时根据指令的执行结果哦设置CPSR中相应的标志位。

RSC指令从寄存器shifter_operand中减去Rn表示的数值,再减去寄存器CPSR 中C条件标志位的反码,并将结果保存到目标寄存器Rd中,同时根据指令的执行结果设置CPSR 中相应的标志位
TST 测试执行用于将一个寄存器的值和一个算术值进行比较,条件标志位根据两个操
作数做逻辑与后的结果设置。

TEQ 指令用于将一个寄存器的值和一个算术值做比较,条件标志位根据两个操作数做逻辑异或后的结果设置,以便以后的指令根据相应的条件标志来判断是否执行。

CMP 指令使用寄存器Rn的值减去shifter_operand的值,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。

CMN 指令使用寄存器Rn的值将去shifter_operand表示的负数值,根据操作的结果跟新CPSR中相应的条件标志位,以便后面的指令更具相应的条件标志来判断是否执行。

ORR 位逻辑或操作指令,它将第二个源操作数shifter_operand的值与寄存器Rn 的值按位做逻辑或操作,并将结果保存到Rd中
BIC 位清零指令,将寄存器Rn中的值与第二个源操作数shifter_operand的值的反码按位做逻辑与操作,并将结果保存到目标寄存器中
乘法指令集
ARM异常中断处理概述
ARM处理器中有7中类型的异常,按优先级从高到低的排序如下:复位异常(reset、数据异常(data abort、快速中断异常(FIQ、外部中断异常(IRQ、预取异常(prefetch abort、软中断异常(swi和未定义异常(undefined instruction。

当异常发生的时候处理器会把PC设置为一个特定的存储器地址,之一地址房子被称为向量表的特定地址范围内。

向量表的入口是一些跳转指令,跳转到专门处理摸个异常或者中断的子程序。

存储器映射地址0x00000000 是为向量表(一组32位字保留的。

在有些处理器中,向量表可以选择定位在存储空间的高地址(从偏移量0xffff0000开始,一些嵌入式系统,如Linux和windows CE就是利用这一特性。

当异常发生时,分组寄存器r14和SPSR 用于保存处理器状态。

异常返回
式,SPSR内容回复到CPSR中,连接寄存器r14的内容回复到程序计数器PC。

1、复位异常:当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。

复位异常中断有以下两种情况:系统上电和系统复位。

复位异常中断处理程序的主要功能:
A、设置异常中断向量表
B、初始化数据栈和寄存器
C、初始化存储系统,如系统中的MMU
D、初始化关键的I/0设备
E、使能中断
F、处理器切换到合适的模式
G、初始化c变量,跳转到应用程序执行
2、未定义指令异常
3、软中断SWI:软中断发生时,处理器进入特权模式,执行一些特权模式下的操作系统功能。

4、预取指令异常:是由系统存储器报告的,当处理器试图去取一条被标记为预取无效的指令式,发生预取异常
5、数据访问异常:数据访问异常是由存储器发出数据中止信号,它由存储器访问指令load/store产生。

当数据访问指令的目标地址不存在或者改地址不允许当前指令访问时,处理器产生数据访问中止异常。

当数据访问中止异常发生时,寄存器的值将根据以下规则进行修改:
A、返回地址寄存器r14的值只与发生数据异常的指令地址有关,与PC无关
B、如果指令中没有指定基址寄存器回写,则基址寄存器的值不会改变
C、如果指令中指定了机制寄存器回写,则寄存器的值与具体芯片的ABORT MODELS 有关,由芯片的生产商指定
D、如果指令只加载一个通用寄存器的值,则通用寄存器的值不变
E、如果批量加载指令,则寄存器的值是不可预知的值
F、如果指令加载协处理器寄存器的值,则被加载的寄存器的值是不可预知
6、外部中断IRQ:当处理器的外部中断请求引脚有效,而且CPSR寄存器I控制位被清除时,处理器产生外部中断IRQ异常。

7、快速中断FIQ:当处理器的快速中断请求引脚有效且CPSR寄存器的F控制位被清除时,处理器产生快速中断请求FIQ异常。

相关文档
最新文档