收藏 分享(赏)

嵌入式原理及接口技术课件ch2-第2版-嵌入式系统原理及接口技术.ppt

上传人:bubibi 文档编号:20014184 上传时间:2023-12-02 格式:PPT 页数:79 大小:2.08MB
下载 相关 举报
嵌入式原理及接口技术课件ch2-第2版-嵌入式系统原理及接口技术.ppt_第1页
第1页 / 共79页
嵌入式原理及接口技术课件ch2-第2版-嵌入式系统原理及接口技术.ppt_第2页
第2页 / 共79页
嵌入式原理及接口技术课件ch2-第2版-嵌入式系统原理及接口技术.ppt_第3页
第3页 / 共79页
嵌入式原理及接口技术课件ch2-第2版-嵌入式系统原理及接口技术.ppt_第4页
第4页 / 共79页
嵌入式原理及接口技术课件ch2-第2版-嵌入式系统原理及接口技术.ppt_第5页
第5页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、本章重点本章重点:S3C2410A微处理器概述;S3C2410A微处理器组成、芯片封装、引脚编号与引脚信号名、特殊功能寄存器简介;ARM920T简介、指令系统特点、功能模块;ARM920T的程序员模型、处理器操作状态、存储器格式和数据类型、处理器操作方式、寄存器等。嵌入式系统原理及接口技术(第2版)12.1 S3C2410A微处理器概述nSAMSUNG公司的S3C2410A芯片是一款16/32位的RISC微处理器芯片,芯片内使用了ARM公司的ARM920T内核,采用了称为AMBA(Advanced Microcontroller Bus Architecture,先进微处理器总线结构)的总线结

2、构。嵌入式系统原理及接口技术(第2版)2 nS3C2410A芯片组成介绍如下:ARM920T,内部包含一个ARM9TDMI处理器及两个协处理器、单独16KB指令Cache和MMU、单独16KB数据Cache和MMU等 存储器控制器,产生对SDRAM/Nor Flash/SRAM存储器芯片的控制和片选逻辑 Nand Flash控制器 中断控制器 LCD控制器,支持STN及TFT液晶显示器 带有外部请求引脚的4通道DMA 3通道通用异步收发器(UART),支持红外传输嵌入式系统原理及接口技术(第2版)3 2通道SPI(Serial Peripheral Interface,串行外设接口)1通道多主

3、IIC总线控制器,1通道IIS总线控制器 MMC/SD/SDIO主控制器 2端口USB主控制器,1端口USB设备控制器(Ver 1.1)4通道脉宽调制(PWM)定时器与1通道内部定时器 看门狗定时器 嵌入式系统原理及接口技术(第2版)4 117位GPIO端口,其中24通道可用作24路外部中断源 电源管理,支持NORMAL、SLOW、IDLE和Power_OFF模式 8通道10位ADC与触摸屏接口 带日历功能的RTC 带锁相环(PLL)的片内时钟发生器嵌入式系统原理及接口技术(第2版)52.2 S3C2410A微处理器组成 与引脚信号 2.2.1 S3C2410A微处理器组成 S3C2410A微

4、处理器组成 S3C2410A组成框图如图2.1所示。嵌入式系统原理及接口技术(第2版)6嵌入式系统原理及接口技术(第2版)7n图2.1中,S3C2410A片内组成可以分为三部分:ARM920T、连接在AHB总线上的控制器,以及连接在APB总线上的控制器或外设。其中ARM920T在2.3节中讲述。nAHB(Advanced High_performance Bus,先进高性能总线)是一种片上总线,用于连接高时钟频率和高性能的系统模块,支持突发传输、支持流水线操作,也支持单个数据传输,所有的时序都是以单一时钟的前沿为基准操作。嵌入式系统原理及接口技术(第2版)8nAPB(Advanced Peri

5、pheral Bus,先进外设总线)也是一种片上总线,为低性能、慢速外设提供了较为简单的接口,不支持流水线操作。n4通道DMA与总线桥支持存储器到存储器、I/O到存储器、存储器到I/O、I/O到I/O的DMA传输;它将AHB/APB的信号转换为合适的形式,以满足连接到APB上设备的要求。桥能够锁存地址、数据及控制信号,同时进行二次译码,选择相应的APB设备。嵌入式系统原理及接口技术(第2版)9 AHB总线连接的控制器简介 存储器控制器 支持小端/大端数据存储格式 全部寻址空间为1GB,分为8个banks,每个128MB bank1bank7支持可编程的8/16/32位数据总线宽度,bank0支

6、持可编程的16/32位数据总线宽度 bank0bank7支持ROM/SRAM,其中bank6和bank7也支持SDRAM嵌入式系统原理及接口技术(第2版)10 每个bank存储器访问周期可编程 对ROM/SRAM,支持外部等待信号(nWAIT)扩展总线周期 在Power_down,支持SDRAM自己刷新(self_refresh)模式 支持使用Nor Flash、EEPROM等作为引导ROM 支持存储器与I/O端口统一寻址嵌入式系统原理及接口技术(第2版)11 Nand Flash控制器 支持从Nand Flash存储器进行引导 有4KB SRAM内部缓冲区,用于引导时保存从Nand Flas

7、h读出的程序 支持Nand Flash存储器4KB(引导区)以后的区域作为一般Nand Flash使用 嵌入式系统原理及接口技术(第2版)12 中断控制器 支持55个中断源,包括S3C2410A芯片外部,由引脚引入的24个中断源;其余为芯片内部中断源,看门狗(1个)、定时器(5个)、UART(9个)、DMA(4个)、RTC(2个)、ADC(2个)、IIC(1个)、SPI(2个)、SDI(1个)、USB(2个)、LCD(1个)以及电池失效(1个)外部中断源通过编程,可选择中断请求信号使用电平或边沿触发方式 电平或边沿触发信号极性可编程 对于非常紧急的中断请求,支持快速中断请求FIQ嵌入式系统原理

8、及接口技术(第2版)13 LCD控制器nLCD控制器支持STN LCD显示以及TFT LCD显示,显示缓冲区使用系统存储器(内存),支持专用LCD DMA将显示缓冲区数据传送到LCD控制器缓冲区。nSTN LCD显示特点:支持4位双扫描、4位单扫描、8位单扫描显示类型STN LCD面板 支持单色、4灰度级、16灰度级、256色、4096色STN LCD显示嵌入式系统原理及接口技术(第2版)14 支持多种屏幕尺寸,典型的有640480、320240、160160等 最大虚拟屏显示存储器空间为4MB,在256色模式,支持的虚拟屏尺寸有40961024、20482048、10244096等 嵌入式系

9、统原理及接口技术(第2版)15nTFT LCD显示特点:支持1、2、4或8 BPP(Bit Per Pixel)面板彩色显示 支持16 BPP真彩显示 在24 BPP模式,支持最大16M色 支持多种屏幕尺寸,典型的有640480、320240、160160等 最大虚拟屏显示存储器空间为4MB,在64K色模式,支持的虚拟屏尺寸有20481024等嵌入式系统原理及接口技术(第2版)16 USB主控制器 2个端口的USB主(Host)控制器 兼容OHCI Rev 1.0 兼容USB V 1.1 支持低速和全速设备嵌入式系统原理及接口技术(第2版)17 时钟与电源管理 S3C2410A片内有MPLL(

10、Main Phase Locked Loop,主锁相环)和UPLL(USB PLL,USB锁相环)UPLL产生的时钟用于USB主/设备控制器操作 MPLL产生的时钟在内核供电电压为2.0V时,最大频率为266MHz 时钟信号能够通过软件有选择地送到(或不送)每个功能模块 电源管理支持NORMAL、SLOW、IDLE和Power_OFF模式 由EINT15:0或RTC报警中断,能够从Power_OFF模式中将MCU唤醒嵌入式系统原理及接口技术(第2版)18 ExtMaster 对由S3C2410A芯片外部另一个总线主设备提出,并送到S3C2410A的请求控制局部总线的请求,以及S3C2410A的

11、响应,进行管理。嵌入式系统原理及接口技术(第2版)19 APB总线连接的部件简介 通用异步收发器(UART 0、1、2)3通道UART,支持基于查询、基于DMA或基于中断方式操作 支持5/6/7/8位串行数据发送/接收(Tx/Rx)支持外部时钟(UEXTCLK)用于UART操作 可编程的波特率 支持红外通信协议IrDA 1.0嵌入式系统原理及接口技术(第2版)20 通用I/O端口(GPIO)GPIO端口共有117位,其中24位可用于外部中断请求源 通过编程,可以将各端口的不同位,设置为不同功能 定时器/脉宽调制 4通道16位脉宽调制定时器,1通道16位内部定时器,均支持基于DMA或基于中断方式

12、操作嵌入式系统原理及接口技术(第2版)21 实时时钟(RTC)看门狗定时器(WDT)A/D转换器与触摸屏 IIC(Intel Integrated Circuit,内部集成电路)总线接口 IIS(Intel IC Sound,集成电路内部声音)总线接口 SPI(Serial Peripheral Interface,串行外设接口)MMC/SD/SDIO主控制器 USB设备控制器 嵌入式系统原理及接口技术(第2版)22 操作电压、操作频率及芯片封装 操作电压 内核:1.8V,用于S3C2410A-20,最高200MHz 2.0V,用于S3C2410A-26,最高266MHz 存储器与I/O:3.

13、3V 操作频率 最高到266MHz 芯片封装 嵌入式系统原理及接口技术(第2版)23 2.2.2 S3C2410A芯片封装、引脚编号与引脚信号名 S3C2410A芯片封装形式n S3C2410A芯片有272个引脚,FBGA封装,底视图见图2.2。n图2.2中每个引脚所在行、列对应的字母、数字,是分配给该引脚的编号,例如左下引脚为A1,左上引脚为U1。嵌入式系统原理及接口技术(第2版)24 n图2.2嵌入式系统原理及接口技术(第2版)25 S3C2410A引脚编号与引脚信号名nS3C2410A各引脚编号与对应的引脚信号名,见表2-1。n表2-1中,如果一个引脚编号对应一个引脚信号名,那么这个引脚

14、信号名就代表该引脚的缺省功能;如果一个引脚编号对应多个引脚信号名,那么带下划线的引脚信号名,代表该引脚的缺省功能。缺省功能是指Reset后,该引脚第一次配置前的功能。嵌入式系统原理及接口技术(第2版)26 3.S3C2410A引脚信号名与对应功能nS3C2410A引脚信号名与对应功能描述,分别在相关章节讲述;附录A列出的是引脚信号名与对应功能描述的汇总表。嵌入式系统原理及接口技术(第2版)27 2.2.3 S3C2410A特殊功能寄存器简介n特殊功能寄存器(Special Function Registers,SFR),有时也称特殊寄存器或专用寄存器。占用存储器空间地址为0 x48000000

15、0 x5FFFFFFF的一片区域,称为SFR Area(特殊功能寄存器区域),这些寄存器均在S3C2410A芯片内部,它们的含义和功能在第5章第13章中分别讲述。嵌入式系统原理及接口技术(第2版)282.3 ARM920T核 2.3.1 ARM920T简介nARM920T核也称ARM920T处理器、CPU、内核,或直接称为ARM920T。S3C2410A微处理器组成中包含了ARM920T核。nARM920T是通用微处理器ARM9TDMI系列中的一员,ARM9TDMI系列包含:ARM9TDMI(ARM9TDMI核)ARM940T(ARM9TDMI核、Cache和保护单元)ARM920T(ARM9

16、TDMI核、Cache和MMU)嵌入式系统原理及接口技术(第2版)29nARM9TDMI处理器核使用了五级流水线,五级流水线由取指、译码、执行、存储(数据缓冲)和回写组成。ARM9TDMI作为一个标准的单独的核提供,能够被嵌入到许多功能复杂的产品中。这个标准的单独的核有一个简单的总线接口,允许用户围绕着它设计自己的Cache/存储器系统。nARM9TDMI微处理器系列支持两种指令集,32位ARM和16位Thumb指令集,允许用户选择不同的指令集,在高性能和高代码密度之间转换。嵌入式系统原理及接口技术(第2版)30 nARM920T是一款哈佛Cache结构的处理器,内部有单独的16KB指令Cac

17、he和单独的16KB数据Cache(均为8个字的行长度),指令Cache和数据Cache各自使用单独的地址线和单独的数据线。ARM920T实现了ARMv4T结构。ARM920T的MMU提供了对指令和数据地址的传送及访问的约束检查。nARM920T支持ARM调试结构(debug architecture),也包含了对协处理器的支持。嵌入式系统原理及接口技术(第2版)31nARM920T接口与AMBA总线架构兼容,ARM920T既可以作为全兼容的AMBA总线的主设备,又可以在测试该产品时作为从设备。嵌入式系统原理及接口技术(第2版)32 2.3.2 ARM920T指令系统特点nS3C2410A微处

18、理器中含有ARM920T核,使用的指令系统就是ARM920T的指令系统。ARM920T有两种指令集:32位的ARM指令集和16位的Thumb指令集。nARM指令集的主要特点有:所有的指令都是32位固定长度,便于译码和流水线实现,并且在内存中以4字节边界地址对齐保存;只有 LOAD-STORE类型的指令才可以访问内存;所有的指令都可以条件执行;使用了桶型(barrel)移位器,可以在一个指令周期内完成移位操作和ALU(算术逻辑)操作。嵌入式系统原理及接口技术(第2版)33nThumb指令使用了32位核的全部优点:32位地址空间;32位寄存器;32位移位器和ALU单元;32位存储器传送器。嵌入式系

19、统原理及接口技术(第2版)34 2.3.3 ARM920T功能模块nARM920T功能模块图见图2.3。嵌入式系统原理及接口技术(第2版)35nARM920T内部包含了两个协处理器:CP14,CP14允许软件访问,作为调试(debug)通信通道使用。在CP14中定义的寄存器允许使用ARM的MCR和MRC指令访问(CP14在图2.3中未画出)。CP15,系统控制协处理器,提供了附加的寄存器,被用于配置和控制Cache、MMU、保护系统(即MPU)、时钟模式及ARM920T其他系统选择(如大/小端操作等)。嵌入式系统原理及接口技术(第2版)36nARM920T也有外部协处理器接口,允许在同一芯片上

20、附加一个紧密耦合的协处理器,如浮点部件。连接到外部协处理器接口的任何协处理器提供的寄存器和操作,可以使用适当的ARM协处理器指令去访问和指定。嵌入式系统原理及接口技术(第2版)372.4 ARM920T的程序员模型 2.4.1 处理器操作状态 1.ARM920T处理器的两种操作状态 ARM状态,在这种状态执行32位长度的、字边界对齐的ARM指令。Thumb状态,在这种状态执行16位长度的、半字边界对齐的Thumb指令。在Thumb状态,程序计数器PC使用bit1来选择切换半字。在ARM和Thumb之间转换状态,不影响处理器操作方式或寄存器内容。嵌入式系统原理及接口技术(第2版)38 转换状态n

21、使用ARM指令集的BX指令、并且BX指令指定寄存器的bit0=1,能够从ARM状态进入到Thumb状态。使用Thumb指令集的BX指令、并且BX指令指定寄存器的bit0=0,能够从Thumb状态进入到ARM状态。n无论处理器在ARM状态或Thumb状态,发生了异常,进入异常处理程序处理器一定是在ARM状态。如果一个异常在Thumb状态出现,处理器要转换到ARM状态,异常处理完返回时自动转换回Thumb状态。嵌入式系统原理及接口技术(第2版)39n刚进入异常处理程序后处理器处在ARM状态,如果需要,异常处理程序能够转换到Thumb状态,但是异常处理程序结束前,处理器必须转换到ARM状态,在ARM

22、状态才允许异常处理程序正确的终止。嵌入式系统原理及接口技术(第2版)40 2.4.2 存储器格式和数据类型 存储器格式nARM920T处理器把存储器看作一个以字节编号的单元的线性集合,编号即存储器地址,每个存储器单元能够存放1字节数据,对应一个地址。地址从0开始,连续上升,例如:地址从0到3的单元保存了第1个存储字;地址从4到7的单元保存了第2个存储字。凡是地址的最低2位二进制数为00,从这个地址开始,用连续4个单元保存一个字数据的,称为一个字数据存放在字边界对齐的地址单元中,简称地址是字边界对齐的。嵌入式系统原理及接口技术(第2版)41nARM920T处理器允许使用大、小端格式,它能够对存储

23、在存储器中的字以大端或小端格式访问。缺省格式是小端格式。n大端或小端格式是指一个字数据中的4个字节数据,必须被放在字边界对齐的存储器地址A开始的连续4个字节地址单元中的什么位置。n在数据以字存放在存储器中,而以字节或半字访问时,对CPU被配置为大端或小端格式要特别注意。嵌入式系统原理及接口技术(第2版)42 小端格式n在小端格式,处理器寄存器中的32位二进制数用bit31:0表示,其中bit31为最高位,bit0为最低位,分为4字节,bit31:24为数据的最高字节,bit7:0为数据的最低字节。当寄存器的内容以字格式保存在字边界对齐的存储器地址A中时,存储器4个地址对应的单元中保存的字节数据

24、与寄存器bit31:0的对应关系见图2.4。嵌入式系统原理及接口技术(第2版)43 大端格式n在大端格式,当寄存器的内容以字格式保存在字边界对齐的存储器地址A中时,存储器4个地址对应的单元中保存的字节数据与寄存器bit31:0的对应关系见图2.5。嵌入式系统原理及接口技术(第2版)44 数据类型nARM920T处理器支持三种数据类型:字,32位;半字,16位;字节,8位。n所谓的边界对齐必须遵循:字数据必须以4字节为边界对齐存取;半字数据必须以2字节为边界对齐存取;字节数据可以使用任意字节地址存取。存储器系统支持上述三种数据类型的存取。嵌入式系统原理及接口技术(第2版)45 2.4.3 处理器

25、操作方式nARM920T支持7种操作方式,见表2-2。n方式的改变可以在软件控制下改变,也可以由外部中断或者由异常(exception)处理带来改变。除了用户方式,其他几种方式都被称为特权方式。特权方式用于为中断或异常服务,或访问受保护的资源。除了用户方式和系统方式,其他几种方式都属于异常方式。嵌入式系统原理及接口技术(第2版)46表2.2 处理器7种操作方式方 式方式标识描述User(用户)(用户)usr用户方式是通常用户方式是通常ARM程序执行状态,用于执程序执行状态,用于执行大部分应用程序行大部分应用程序Fast interrupt(快速中断请(快速中断请求)求)fiq快速中断请求方式支

26、持数据传送或通道处理快速中断请求方式支持数据传送或通道处理Interrupt(中断请求)(中断请求)irq中断请求方式用于一般中断处理中断请求方式用于一般中断处理Supervisor(管理)(管理)svc管理方式是一种操作系统受保护的方式管理方式是一种操作系统受保护的方式Abort(中止)(中止)abt在访问数据中止后或预取指令中止后进入中止在访问数据中止后或预取指令中止后进入中止方式方式System(系统)(系统)sys系统方式是操作系统一种特权级的用户方式系统方式是操作系统一种特权级的用户方式Undefined(未定义)(未定义)und当一条未定义指令被执行时进入未定义方式当一条未定义指令

27、被执行时进入未定义方式嵌入式系统原理及接口技术(第2版)47 2.4.4 寄存器nARM920T共有37个寄存器。其中:31个是32位的通用寄存器,6个是32位的状态寄存器。n在同一时间内这37个寄存器不是全部都可以存取的。处理器操作状态(ARM或Thumb)和操作方式(用户、中断等7种)确定哪些寄存器对程序员是可存取的。嵌入式系统原理及接口技术(第2版)48 在ARM状态下的寄存器组n在ARM状态下,16个通用寄存器和一个或2个状态寄存器在任何时间是可存取的。在特权方式,方式所指定的分组寄存器变成可用的。图2.6给出了每一种方式可用的寄存器。图中寄存器中有符号的称为分组寄存器。嵌入式系统原理

28、及接口技术(第2版)49 n 嵌入式系统原理及接口技术(第2版)50 连接寄存器LR(Link Register)n寄存器r14用作子程序连接寄存器。当一条分支并且连接指令(BL)被执行时,寄存器r14收到r15的一个拷贝。在其他时间,r14能被看作通用寄存器。n对应的分组寄存器r14_svc、r14_irq、r14_fiq、r14_abt和r14_und用法是类似的,当中断或异常发生时,同样用于保存r15的返回值,或用于在中断及异常例程中执行BL指令时保存r15的返回值。嵌入式系统原理及接口技术(第2版)51 程序计数器PC(Program Counter)n寄存器r15作为程序计数器。n在

29、ARM状态下,r15的bit1:0是无定义且必须被忽略的,而r15的bit31:2含有程序计数值。在Thumb状态下,r15的bit0是无定义且必须被忽略的,而r15的bit31:1含有程序计数值。嵌入式系统原理及接口技术(第2版)52 n除了上述r14和r15有专门的用途外,r13习惯上用作堆栈指针(SP)。n在特权方式,另一个寄存器,即保留程序状态寄存器(SPSR)是可用的。SPSR寄存器含有作为异常结果的条件码标志和方式位,而这个异常引起进入到当前方式。n分组寄存器是分别的物理寄存器,在处理器核内。分组寄存器映射为可用寄存器依赖于当前处理器的操作方式。在操作方式改变时,分组寄存器的内容被

30、保护。n FIQ方式有7个分组寄存器,映射到r8-r14(r8_fiq-r14_fiq)。嵌入式系统原理及接口技术(第2版)53 在Thumb状态下的寄存器组 嵌入式系统原理及接口技术(第2版)54 在ARM状态下和在Thumb状态下寄存器之间的关系n在Thumb状态下的寄存器与在ARM状态下寄存器的关系,遵照以下规定:Thumb状态下的r0-r7与ARM状态下的r0-r7是相同的;Thumb状态下的CPSR和SPSR与ARM状态下的CPSR和 SPSR是相同的;Thumb状态下的SP映射到ARM状态下的r13;Thumb状态下的LR映射到ARM状态下的r14;Thumb状态下的PC映射到AR

31、M状态下的PC(r15)。n上述关系用图2.8表示。n另外,在Thumb状态下,寄存器r0-r7称为低寄存器组,寄存器r8-r15称为高寄存器组。嵌入式系统原理及接口技术(第2版)55 在Thumb状态下访问高寄存器组n在Thumb状态下,高寄存器组r8-r15不是标准寄存器组的一部分。汇编语言程序员访问它们受到了限制,但是能够使用它们作为快速暂时存储器。n 程序员可以使用专门的MOV、CMP和ADD指令,其中MOV指令,可以从范围在r0-r7的低寄存器组传送一个值到高寄存器组;或从高寄存器组传送一个值到低寄存器组。CMP指令允许比较高低两个寄存器组中的寄存器的值。ADD指令允许将高寄存器组中

32、寄存器的值与低寄存器组中寄存器的值相加。MOV、CMP和ADD指令也允许使用的两个寄存器都在高寄存器组中。嵌入式系统原理及接口技术(第2版)56 2.4.5 程序状态寄存器n ARM7TDMI处理器包含一个当前程序状态寄存器CPSR和5个用于异常处理的保留程序状态寄存器SPSR。这些程序状态寄存器有以下功能:保存最近执行过的ALU操作的信息;控制允许或禁止中断;设置处理器操作方式。n程序状态寄存器每一位含义表示在图2.9中。嵌入式系统原理及接口技术(第2版)57嵌入式系统原理及接口技术(第2版)58 条件码标志nN、Z、C和V位是条件码标志,可以由算术和逻辑操作设置这些位,也可以通过MSR和L

33、DM指令设置这些位。ARM7TDMI处理器测试这些标志用于确定是否执行一条指令。n在ARM状态下,所有的指令能够有条件地执行。在Thumb状态下,只有分支指令能够有条件地执行。嵌入式系统原理及接口技术(第2版)59 控制位n程序状态寄存器的最低8位统称控制位。它们是:中断禁止位;T状态位;方式位。当异常出现时,控制位改变。当处理器在特权方式操作时,软件能够操作这些位。嵌入式系统原理及接口技术(第2版)60 中断禁止位n I和F位是中断禁止位:当I位被置1时,IRQ中断被禁止;当F位被置1时,FIQ中断被禁止;当I位被清0时,IRQ中断被允许;当F位被清0时,FIQ中断被允许。嵌入式系统原理及接

34、口技术(第2版)61 T位n T位反映了处理器当前所处的操作状态:当T位被置1时,处理器在Thumb状态执行;当T位被清0时,处理器在ARM状态执行。操作状态由外部信号TBIT反映。n要注意的是,决不能使用MSR指令去强制改变在CPSR中的T位的状态,如果这样做了,处理器进入不可预知的状态。嵌入式系统原理及接口技术(第2版)62 方式位nM4:0确定处理器的操作方式,如表2.3所示。n不是所有方式位的组合都用来定义合法的处理器操作方式,仅仅使用了方式位组合中的一部分,如表2.3所示。嵌入式系统原理及接口技术(第2版)63 M4:0Mode(方式)Thumb状态可见寄存器ARM状态可见寄存器10

35、000User(用户)r0-r7、SP、LR、PC、CPSRr0-r14、PC、CPSR10001FIQ(快速中断请求)r0-r7、SP_fiq、LR_fiq、PC、CPSR、SPSR_fiqr0-r7、r8_fiq到r14_fiq、PC、CPSR、SPSR_fiq10010IRQ(中断请求)r0-r7、SP_irq、LR_irq、PC、CPSR、SPSR_irqr0-r12、r13_irq、r14_irq、PC、CPSR、SPSR_irq10011Supervisor(管理)(Reset或SWI)r0-r7、SP_svc、LR_svc、PC、CPSR、SPSR_svcr0-r12、r13_s

36、vc、r14_svc、PC、CPSR、SPSR_svc10111Abort(中止)r0-r7、SP_abt、LR_abt、PC、CPSR、SPSR_abtr0-r12、r13_abt、r14_abt、PC、CPSR、SPSR_abt11011Undefined(未定义)r0-r7、SP_und、LR_und、PC、CPSR、SPSR_undr0-r12、r13_und、r14_und、PC、CPSR、SPSR_und11111System(系统)r0-r7、SP、LR、PC、CPSRr0-r14、PC、CPSR嵌入式系统原理及接口技术(第2版)64 保留位n在CPSR和SPSR中,保留位没有用

37、处,仅仅用于保留。当改变CPSR或SPSR标志位或控制位时,要确认这些保留位没有被改变。同样要确认程序不依赖保留位所含的专门值,因为后续处理器可能将这些位置1或清0。嵌入式系统原理及接口技术(第2版)65 2.4.6 异常n异常出现在程序正常的流动被暂时停止时。例如,对从一个外部设备来的中断进行服务。对异常处理前,ARM7TDMI处理器保留当前处理器的状态,使得异常处理例程结束时能够返回原来的程序。n如果2个或多个异常同时发生,那么以固定的次序处理异常。1.异常进入和退出n见教材,表2.4汇总了异常进入时保存在r14中的PC值和退出异常处理时推荐使用的返回指令。嵌入式系统原理及接口技术(第2版

38、)66 进入异常 ARM7TDMI处理器以如下方法处理一个异常:在对应的LR中保存下一条指令的地址。n当异常是从ARM状态进入,处理器复制下一条指令的地址到LR,这时地址是PC+4或PC+8,与不同的异常有关。n当异常从Thumb状态进入,处理器写当前的PC值到LR,这时地址是PC+2或PC+4,与不同的异常有关。n异常处理不必确定进入异常前的状态。例如由SWI进入异常,MOVS PC,r14_svc总是返回到下一条指令,而不管SWI是在ARM或Thumb状态下被执行。嵌入式系统原理及接口技术(第2版)67 复制CPSR到应对的SPSR。强制CPSR方式位成为某一个值,这个值取决于不同的异常。

39、强制PC从相关的异常向量处取下一条指令。嵌入式系统原理及接口技术(第2版)68 离开异常 当异常处理完时,异常处理程序必须:参考表2.4,对应不同类型的异常,直接传送LR到PC或从LR中减去一个偏移量送到PC。复制SPSR到CPSR。清除在进入异常时被设置的中断禁止标志。将SPSR值恢复到CPSR的同时,自动地将T位的值恢复成进入异常前的值。嵌入式系统原理及接口技术(第2版)69 快速中断请求n快速中断请求(FIQ)异常支持数据传输或通道处理。在ARM状态,FIQ方式有8个分组寄存器,使用它们可以免除保存寄存器的要求。这是上下文切换最小开销的一种方法。n一个FIQ是外部产生的,是通过使nFIQ

40、输入低电平实现的。输入通过一个同步器送到内核。n无论异常是从ARM状态或Thumb状态进入,FIQ处理程序从中断返回是通过执行:SUBS PC,r14_fiq,#4 指令来实现的。嵌入式系统原理及接口技术(第2版)70nFIQ异常能够被禁止,方法是在特权方式时设置CPSR的F标志位为1。当F标志位为0时,处理器在每条指令结束检测FIQ同步器输出是否为低电平。嵌入式系统原理及接口技术(第2版)71 中断请求n中断请求(IRQ)异常是一个通常的中断请求,在nIRQ输入低电平引起。IRQ优先级比FIQ低,并且在进入FIQ被屏蔽。nIRQ同样通过一个同步器传到内核。n无论异常从ARM状态或Thumb状

41、态进入,IRQ处理程序从中断返回是通过执行:SUBS PC,r14_irq,#4 指令来实现的。n在任意时间可以禁止IRQ,方法是在特权方式时设置CPSR中I标志位为1。嵌入式系统原理及接口技术(第2版)72 Abort 中止一般介绍 中止处理程序必须:确定中止原因,使请求的数据可用。用LDR Rn,r14_abt,#-8指令,取回引起中止的指令,确定那条指令是否指定了回写基址寄存器,如果是这样,中止处理程序还必须:从这条指令确定对基址寄存器回写的偏移量是多少;当中止处理程序返回时,使用相反的偏移量重装到基址寄存器。嵌入式系统原理及接口技术(第2版)73 两种类型的中止 预取中止发生在指令预取

42、期间;数据中止发生在数据存取期间。预取中止 数据中止嵌入式系统原理及接口技术(第2版)74 软件中断指令n软件中断指令(SWI)用于进入管理方式,一般用于请求一个特殊的管理功能。SWI处理程序读SWI指令低24位取出SWI功能号,SWI功能号也称为中断类型号。n SWI处理程序执行以下指令返回,并不区别处理器的操作状态:MOVS PC,r14_svcn指令的作用是恢复PC和CPSR,返回到SWI指令的下一条指令。嵌入式系统原理及接口技术(第2版)75 未定义指令n当ARM7TDMI处理器遇到一条指令,这条指令即不是ARM7TDMI处理器的指令,又不是系统内任何协处理器能处理的指令,ARM7TD

43、MI产生未定义指令陷阱。软件能够用这一机制通过仿真未定义的协处理器指令去扩展ARM指令集。n从陷阱处理程序返回,不区别处理器的操作状态,执行如下指令:MOVS PC,r14_undn这条指令的作用是恢复CPSR并且返回到未定义指令的下一条指令。嵌入式系统原理及接口技术(第2版)76 异常向量n 表2.5给出了异常向量的地址。表中I和F分别表示CPSR中的IRQ和FIQ中断禁止位先前的值。异常优先级n 当多个异常同时发生,固定的优先级系统确定了它们被处理的次序,优先级次序见表2.6。嵌入式系统原理及接口技术(第2版)77 2.4.7 中断延迟 最大中断延迟(略)最小中断延迟(略)2.4.8 Reset(略)嵌入式系统原理及接口技术(第2版)78END嵌入式系统原理及接口技术(第2版)79

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 网络技术 > 前端技术

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报