当前位置:文档之家› arm-linux内核中ARM中断实现详解

arm-linux内核中ARM中断实现详解

arm-linux内核中ARM中断实现详解
arm-linux内核中ARM中断实现详解

微型计算机系统期末习题答案

8086微型计算机系统考试题目答案 一、填空题(每空1分,共20分) 1、微型计算机硬件系统可分成为 CPU 、存储器和 I/O接口三大模块,模块之间通过总线连接而成。在系统与输入/输出设备之间,必须通过I/O接口相连接。 2、目前计算机系统主要有两种体系结构,它们分别是冯.诺依曼和哈弗,有更高运行效率的是哈弗。 3、已知X=68,Y=-12,若用8位二进制数表示,则[X+Y]补=50H,此时,CF=_0__;[X-Y]补= 38H/56D, OF=_0__。 4、8086 CPU的基本总线周期包含了 4个T状态。 5、I/O端口地址有两种编址方式,它们分别是独立编址和存储统一编址;接口电路中,输入端口必须具有缓冲功能,而输出端口必须具有锁存功能。 6、硬件中断可分为可屏蔽中断_和__ 非屏蔽中断两种。 7、8086/8088 CPU响应可屏蔽中断的条件是_IF=1 。 8、通用微型计算机的CPU由 _微处理器、存储器以及I/O接口电路 _组成,8086CPU按照结构有_EU和BIU _2个独立的处理部件组成。 9、计算机最常用的数据编码是补码,若机器字长为8位,则十进制数-128的补码是10000000B ; 若有带符号数X=01H,Y=81H,则由计算机作8位减法运算X-Y后,累加器中的数是10000000B ,借位标志CF= 1 、符号标示SF=__1___、溢出标志OF=__ 1__。由此可判断结果真值应为-128 10. 8086/8088 CPU在RESET信号到来后其CS和IP的值分别为_ FFFFH和0000H 。 11. CPU与外设传送数据时,输入/输出控制方式有_ 无条件方式 _,_ 查询方式 _,中断方式和__ DMA方式。 12. 8086 CPU响应一个可屏蔽中断请求时,将向外设发送两个中断响应脉冲,通过数据总线读入中断类型码。 13. INTEL 8253采用BCD码计数时,其最大计数值为__ 0000H ,此时的计数初值为__10000D 二、选择题 1.判断两个无符号数加法运算是否溢出的标志是_D__ A. ZF ; B. SF; C. CF; D. OF 2.8086CPU在计算物理地址时,应将段地址____C___。 A.左移1位; B.右移1位; C.左移4位; D.右移4位 3.INTEL 8088/8086 CPU 由____D_组成。 A 通用寄存器、专用寄存器和ALU; B.ALU、FR及8个16位通用寄存器 C CS、ES、SS、DS及IP、指令队列; D EU和BIU 4.下列4种描述中正确的是__B _。 A.汇编语言只由指令语句构成。 B.汇编语言语句包括指令语句和伪指令语句和宏指令语句。 C.指令语句和伪指令语句都能经汇编程序翻译成机器代码。 D.指令语句和伪指令语句都不能经汇编程序翻译成机器代码。 5. 已知内存单元(20510H)=31H,(20511H)=32H,(30510H)=42H,(30511H)=43H,且AX = 3A7BH,DS=2000H, SS=3000H, BP = 0500H,则执行MOV AL, [BP+10H]后AX= D。 A. 3A31H B. 3231H C. 427BH D. 3A42H 6.一微机系统采用一片8259A,若8259A设置为普通全嵌套、非缓冲、非自动中断结束等方式,并将ICW2设置为08H,

ARM中的中断要点

一、S5PV210中中断的特点 1、特点 ? Supports 93 vectored IRQ interrupts ? Fixed hardware interrupts priority levels ? Programmable interrupt priority levels ? Supports Hardware interrupt priority level masking ? Programmable interrupt priority level masking ? Generates IRQ and FIQ ? Generates Software interrupt 2、FIQ与IRQ的区别 1)FIQ和IRQ并不是中断源,而是中断的类型,我们可以将一个中断源设置成FIQ也可以设置成IRQ。2)FIQ是快速中断,IRQ是一般中断,FIQ的响应时间比IRQ短。 3)FIQ的优先级高于IRQ。 4)FIQ的分组寄存器(R8~R14)比IRQ(R13~R14)多。当在FIQ产生的时候,R8~R14不需要保存,响应的速度会快。 3、S5PV210的中断源

二、原理图分析

三、如何以中断的方式来检测按键:GPH2_2(EINT18) 、GPH2_3(EINT19) 按键的检测:轮询:将GPIO配置成输入……. 中断:将GPIO配置成外部中断……. 1、GPIO的配置,将一个GPIO配置成外部中断 2、外部中断的触发方式 (高电平、低电平、上升沿、下降沿)

3、外部中断的开关寄存器 0 = Enables Interrupt 打开中断 1 = Masked 关闭中断 4、外部中断判断寄存器 0 = Not occur 外部中断没有发生 1 = Occur interrupt 触发了中断

微型计算机原理作业第六章习题与思考题

第六章习题与思考题 典型例题解析 例6-1 试述PC微机中断系统的分类与特点。 答:PC微机系统中断包括硬件(外部)中断和软件(内部)中断两大类。硬件中断包括不可屏蔽中断NMI和可屏蔽中断INTR。它们都由外部硬件产生。软件中断包括软件中断INT nH和CPU内部特殊中断,它们由内部中断指令或执行程序过程中出现异常产生的。软件中断又有DOS中断和BIOS中断之分。 硬件中断的特点是: (1)硬中断是外部事件而引起的中断,因此,硬件中断具有随机性和突发性。 (2)在硬件中断响应周期,CPU需要发中断回答信号(非屏蔽硬件中断不发中断回答信号)。 (3)硬件中断的中断号由中断控制器提供(非屏蔽硬件中断的中断号由系统指定为02H) (4)硬件中断一般是可屏蔽的(非屏蔽硬件中断是不可屏蔽的)。 软件中断的特点是: (1)软件中断是执行中断指令而产生的,无需外部施加中断请求信号。在程序需要调用某个中断服务程序时,只要安排一条相应中断指令,就可转去执行所需要的中断程序,因此,中断的发生不是随机的,而是由程序安排好的。 (2)在软件中断响应周期,CPU不需要发中断回答信号。 (3)软件中断的中断类型号是在指令中直接给出,因此,不需要使用中断控制器。 (4)软件中断是不可屏蔽的。 例6-2 试述可编程控制器8259A的作用。 答:可编程控制器8259A在协助CPU处理中断事务中所起的作用主要是: (1)接受和扩充外部设备的中断请求。外设的中断请求,并非直接送到CPU,而是通过8259A接受进来,再由它向CPU提出中断请求。一片8259A可授受8个中断请求,经过级联可扩展到8片8259A,能接受64个中断请求。 (2)进行中断优先级排队。外设的中断优先级排队,并不是CPU安排,而是由8259A安排的。即由8259A中断请求输入引脚(IR)的编号决定的。连到IR0上的外设中断优先级最高,连到IR7上的外设中断优先级最低。 (3)向CPU提供中断类型号。其过程是先在8259A初始化时,将中断源的中断类型号写入8259A的ICW2,当CPU响应中断,进入中断响应周期,用中断回答信号INTA2,再从8259A读取这个中断类型号。 例6-3 试述中断向量表的作用及构成。 答:中断向量也即中断服务程序入口地址,系统中所有的中断服务程序入口地址集中起来放到存储器的某一区域内,这个存放中断向量的存储区就叫中断矢量表。中断向量表提供了每一个中断服务程序唯一的确定的入口地址,该入口地址包括4个字节,低2个字节的内容为中断服务程序的偏移地址IP,高2个字节的内容为中断服务程序的段基值CS。.把系统中所有的中断向量集中起来存入到存储器的某一存储区内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表(中断服务程序首址表)。实模式下,规定把存储器的0000~3FFH共1024个地址单元作为中断向量存储区。

实验5 ARM中断编程

实验五 ARM中断编程 一、实验目的 1.学习键盘驱动原理。 2.掌握中断的使用方法。 二、实验内容 通过ARM的外部中断进行键盘的扫描,利用中断服务程序编写键盘的驱动,在超级终端上显示相应的键值。UART接收中断,以中断方式(而不是查询方式)实现串口数据的接收 三、预备知识 1.掌握在ADS1.2集成开发环境中编写和调试程序的基本过程。 2.会使用UltraEdit编辑C语言源程序。 3.了解ARM中断服务程序的框架结构。 4.了解编译后的映象文件的下载方法。 四、键盘驱动程序的原理 1.简单键盘扫描 通常在一个键盘中使用了一个瞬时接触开关,并且用如图1所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图2所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。为此我将用到矩阵键盘。 图1 简单键盘电路

图2 键盘抖动 2. 复杂矩阵键盘扫描 键盘上陈列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图3所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。 图3 矩阵键盘 键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。换句话说,扫描码将告诉应用程序按下哪个键。

ARM异常中断机制.

ARM9(以S3C2410为例)中断机制 一、ARM异常机制介绍 ARM9处理器有7种工作模式。分别是(除了用户模式其他都是异常模式 用户模式(usr:ARM处理器正常的程序执行状态。 快速中断模式(fiq:用于高速数据传输或通道处理。 外部中断模式(irq:用于通用的中断处理。 管理模式(svc:操作系统使用的保护模式。 数据访问终止模式(abt:当数据或指令预取终止时进入该模式。 系统模式(sys:运行具有特权的操作系统任务。 未定义指令中止模式(und:当未定义的指令执行时进入该模式。 每种模式通过5位二进制编码进行标示: 用户模式10000 快速中断模式10001 外部中断模式10010 管理模式10011 数据访问终止模式10111 未定义指令中止模式11011 系统模式11111 模式编码存放在CPSR(程序当前状态寄存器,记录当前工作模式的编码的值)中的[4:0]。

快速中断模式、外部中断模式、数据访问终止模式、未定义指令中止模式、管理模式称为异常模式。 异常类型具体含义 复位当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。 未定义指令遇到不能处理的指令时,产生未定义指令异常。 软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。 指令预取中止若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。 数据中止若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。 IRQ(外部中断请求)当处理器的外部中断请求引脚有效,且CPSR中的I 位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务。 FIQ(快速中断请求)当处理器的快速中断请求引脚有效,且CPSR中的F 位为0时,产生FIQ异常。 当多个异常发生时,处理器根据优先级进行处理。优先级

ARM的中断原理

ARM的中断原理(转) 1.中断概述 CPU与外设的数据传输方式通常有以下3种方式:查询方式、中断方式、DMA方式。 所谓查询方式是指,CPU不到查询外设的状态,如果外设准备就绪则开始进行数据传输;如果外设还没有准备好,CPU将进入循环等待状态。很显然这样浪费了大量的CPU时间,降低了CPU的利用率。 所谓中断方式是指,当外设准备好与CPU进行数据传输时,外设首先向CPU发出中断请求,CPU 接收到中断请求并在一定条件下,暂时停止原来的程序并执行中断服务处理程序,执行完毕以后再返回原来的程序继续执行。由此可见,采用中断方式避免了CPU把大量的时间花费在查询外设状态的操作上,从而大大提高了CPU的执行效率。 1.中断概述 CPU与外设的数据传输方式通常有以下3种方式:查询方式、中断方式、DMA方式。 所谓查询方式是指,CPU不到查询外设的状态,如果外设准备就绪则开始进行数据传输;如果外设还没有准备好,CPU将进入循环等待状态。很显然这样浪费了大量的CPU时间,降低了CPU的利用率。 所谓中断方式是指,当外设准备好与CPU进行数据传输时,外设首先向CPU发出中断请求,CPU 接收到中断请求并在一定条件下,暂时停止原来的程序并执行中断服务处理程序,执行完毕以后再返回原来的程序继续执行。由此可见,采用中断方式避免了CPU把大量的时间花费在查询外设状态的操作上,从而大大提高了CPU的执行效率。 ARM系统包括两类中断:一类是IRQ中断,另一类是FIQ中断。IRQ是普通中断,FIQ是快速中断,在进行大批量的复制、数据传输等工作时,常使用FIQ中断。FIQ的优先级高于IRQ。 在ARM系统中,支持7类异常,包括:复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ,每种异常对应于不同的处理器模式。一旦发生异常,首先要进行模式切换,然后程序将转到该异常对应的固定存储地址执行。这个固定的地址称为异常向量。异常向量中保存的通常为异常处理程序的地址。ARM的异常向量如下: 异常模式正常地址高向量地址 复位管理 0x00000000 0xFFFF0000 未定义指令未定义 0x00000004 0xFFFF 0004 软中断管理 0x00000008 0xFFFF 0008 预取指中止中止0x0000000C 0xFFFF 000C 数据中止中止0x00000010 0xFFFF0010 IRQ IRQ 0x00000018 0xFFFF0018

arm中断返回地址详细分析.

在ARM体系中,通常有以下3种方式控制程序的执行流程: 1、在正常执行过程中,每执行一条ARM指令,程序计数器PC的值加4个字节;每执行一条Thumb 指令,程序计数器PC加2个字节。整个过程是顺序执行的; 2、跳转B指令执行跳转操作;BL指令在执行跳转的同时,保存子程序返回地址;BX指令,执行跳转的同时,根据目标地址的最低位,可以将程序状态切换到Thumb状态;BLX指令执行上述3个操作; 3、当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场,在从异常中断处理程序退出时,要恢复被中断的程序的执行现场。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。 异常中断种类、异常中断向量地址和异常中断优先级别见下表: ARM运行的几种处理器模式如上表所示。其中,应用程序通常运行在用户模式下! 为了说明异常中断执行过程,先了解各处理器模式下的寄存器组,如下表: 重点:ARM处理器对异常中断的响应过程: ㈠、保存当前程序状态寄存器CPSR到对应异常中断的处理器模式下的SPSR中; ㈡、设置当前程序状态寄存器CPSR的处理器模式位M(4:0)为对应的处理器模式,并禁止IRQ 中断(设置I位=1);当进入的是FIQ模式时,禁止FIQ中断(设置F位=1); ㈢、将对应异常中断的处理器模式下的LR设置成返回地址; ㈣、将程序计数器PC值,设置成该异常中断向量地址,从而跳转到相应的异常中断处理程序处执行。 上述处理器对异常中断的响应过程可以用伪代码描述如下: R14=return Link SPSR=CPSR CPSR[4:0]=exception mde number CPSR[5] = 0 //所有异常均在ARM状态下处理(本句出自《基于ARM的嵌入式系统开发与实例》P32) if(==Reset or FIQ )then CPSR[6]=1 //禁止FIQ中断 CPSR[7] =1 //禁止IRQ中断 PC = exception vetor address 程序将自动跳转到对应异常中断的处理程序中。 上述过程,完全由处理器自动完成,所以,当发生一种异常中断时,寄存器R14 、CPSR、SPSR 和PC的值将是上述的结果!结果如下图所示: 下面是引用别人的文章: ARM处理器中主要有7个异常(2个中断异常): 1、复位异常;在以ARM为核的单片机中,常把下列事件作为引起复位的原因。 ? 上电复位:在上电后,复位使内部达到预定的状态,特别是程序跳到初始入口; ? 复位引脚上的复位脉冲:这是由外部其他控制信号引起的; ? 对系统电源检测发现过压或欠压; ? 时钟异常复位。 ARM处理器复位后,处理器硬件将进行以下操作: ? 强制进入管理模式;0b10011 ? 强制进入ARM状态;T=0 ? 跳转到绝对地址PC=0x00000000处执行;

微型计算机原理习题及解答

微机原理习题 1、微处理器、微型计算机和微型计算机系统三者之间有什么不同 答: 微型计算机系统:包括微型计算机的硬件系统和必要的系统软件。 微型计算机的硬件系统包括:微型计算机和外围设备。 微型计算机:主要是由微处理器(MPU)、存储器(ROM、RAM)、I/O接口、系统总线组成。 微处理器(MPU):是用微电子技术将中央处理器(CPU)集成在一块芯片中制 成的超大规模集成电路(IC),从逻辑的角度看,其内部 主要包括:运算器(或称算术逻辑单元(ALU))、控制 器和一定数量的寄存器组成。 2、控制总线传输的信号大致有哪几种 答:控制总线用来传输控制信号,协调各部件之间的工作;控制总线是双向的; 控制总线包括CPU送往存储器和输入/输出接口电路的控制信号,如读信号、写信号和中断响应信号等;控制总线还包括其他部件送到CPU的信号,比如,时钟信号、中断请求信号和准备就绪信号等。 3、微型计算机采用总线结构有什么优点 答:采用总线结构的优越性主要表现在两个方面:①简化系统的设计,使CPU、RAM、ROM、I/O接口的设计简单化、标准化,使复杂的硬件系统变为面向总线的单一关系。②方便系统的硬件扩充——一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中。

4、简述8086 CPU的逻辑结构。 答:从逻辑功能上,8086分为两部分:总线接口部件BIU(Bus Interface Unit); 执行部件EU(Execution Unit)。其中,总线接口部件包括:地址加法器、段寄存器组、IP指针、指令队列缓冲器、和输入输出控制电路;执行部件包括:运算器、通用寄存器组、标志寄存器、和执行部分的控制电路。 5、 8086/8088 和传统的计算机相比在执行指令方面有什么不同这样的设计思 想有什么优点 答:传统的计算机都是按照下面3个步骤循环工作的: ①从指令指针所指的内存单元中取一条指令送到指令寄存器。 ②对指令进行译码,而指令指针进行增值,以指向下一条指令的地址。 ③执行指令。如果所执行的是转移指令、调用指令或者返回指令,则重 新设置指令指针的值,以指向下一条要执行的指令。 而8086/8088指令的执行是流水线方式,取指令和执行指令是并行工作的,工作效率大大提高,从而大大提高了CPU的执行速度。6、总线周期的含义是什么 8086/8088的基本总线周期由几个时钟组成如一个CPU 的时钟频率为10MHz,那么,它的一个时钟周期为多少一个基本总线周期为多少 答:为了取得指令或进行数据的传送,CPU的总线接口部件需要执行一系列的操作,这些操作所经历的时间叫一个总线周期。在8086/8088中,一个最基本的总线周期由4个时钟周期组成,分别称为4个状态,即T1状态、T2状态、T3状态和T4状态。时钟周期是CPU的时序基本时间计量单位,它由计算机主频决定。如果8086的主频为10MHz,1个时钟周期就是100ns;1个最基本的总线周期是400ns 。7、在对存储器和I/O设备读写时,要用到IOR、IOW、

ARM处理器中断处理的理解

ARM处理器中断处理的理解 在发生外部中断时的处理过程如下图所示: 在发生外部中断时ARM程序跳转到 b HandlerIRQ;handler for IRQ interrupt 根据如下语句 LTORG HandlerFIQ HANDLER HandleFIQ HandlerIRQ HANDLER HandleIRQ HandlerUndef HANDLER HandleUndef 就会调用如下HANDLER宏: HandlerIRQ HANDLER HandleIRQ ;发生外部中断时调用这个宏,跳转到IsrIRQ HANDLER宏如下: MACRO $HandlerLabel HANDLER $HandleLabel ;在一个标号前使用$表示程序被汇编时将使用相应的值来代替$后的标号 $HandlerLabel ;可以将其想像成函数名,但这个函数名可以被不同名称(HandlerIRQ,HandlerFIQ)替代sub sp,sp,#4 ;decrement sp(to store jump address) stmfd sp!,{r0} ;PUSH the work register to stack(lr does't push because it return to original address) ldr r0,=$HandleLabel ;可以当成函数参数, HandleIRQ所指向的地址內裝的是IsrIRQ的入口地址 ;所以下面的語句实际上是load IsrIRQ的入口地址到r0 ldr r0,[r0] ;load the contents(service routine start address IsrIRQ的入口地址) of HandleXXX to r0 str r0,[sp,#4] ;store the contents(ISR) of HandleXXX to stack, r0也就是IsrIRQ的入口地址to SP

armlinux内核中ARM中断实现详解.

linux-2.6.26内核中ARM中断实现详解(1) 作者:刘洪涛,华清远见嵌入式学院金牌讲师,ARM ATC授权培训讲师。 看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。 一、中断注册方法 在linux内核中用于申请中断的函数是request_irq(),函数原型在 Kernel/irq/manage.c中定义: int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id) irq是要申请的硬件中断号。 handler是向系统注册的中断处理函数,是一个回调函数,中断发生时,系统调用这个函数,dev_id参数将被传递给它。 irqflags是中断处理的属性,若设置了IRQF_DISABLED (老版本中的 SA_INTERRUPT,本版zhon已经不支持了),则表示中断处理程序是快速处理程序,快速处理程序被调用时屏蔽所有中断,慢速处理程序不屏蔽;若设置了IRQF_SHARED (老版本中的SA_SHIRQ),则表示多个设备共享中断,若设置了IRQF_SAMPLE_RANDOM(老版本中的 SA_SAMPLE_RANDOM),表示对系统熵有贡献,对系统获取随机数有好处。(这几个flag是可以通过或的方式同时使用的) dev_id在中断共享时会用到,一般设置为这个设备的设备结构体或者NULL。 devname设置中断名称,在cat /proc/interrupts中可以看到此名称。 request_irq()返回0表示成功,返回-INVAL表示中断号无效或处理函数指针为NULL,返回-EBUSY表示中断已经被占用且不能共享。 关于中断注册的例子,大家可在内核中搜索下request_irq。 在编写驱动的过程中,比较容易产生疑惑的地方是: 1、中断向量表在什么位置?是如何建立的? 2、从中断开始,系统是怎样执行到我自己注册的函数的? 3、中断号是如何确定的?对于硬件上有子中断的中断号如何确定? 4、中断共享是怎么回事,dev_id的作用是? 本文以2.6.26内核和S3C2410处理器为例,为大家讲解这几个问题。

微型计算机技术与应用习题答案

1.1微处理器、微型计算机和微型计算机系统三者之间有什么不同? 答:①微处理器是微型计算机的核心,是微型计算机的一部分。它是集成在一块芯片上的CPU,由运算器和控制器组成。 ②微型计算机包括微处理器、存储器、I/O接口和系统总线,是微型计算机系统的主体。 ③微型计算机系统包括微型计算机、外设及系统软件三部分。 1.2CPU在内部结构上由哪几部分组成?CPU应具备哪些主要功能? 答:1.CPU在内部结构上由以下几部分组成: ①算术逻辑部件(ALU); ②累加器和通用寄存器组; ③程序计数器(指令指针)、指令寄存器和译码器; ④时序和控制部件。 2.CPU应具备以下主要功能: ①可以进行算术和逻辑运算; ②可保存少量数据; ③能对指令进行译码并执行规定的动作; ④能和存储器、外设交换数据; ⑤提供整个系统所需要的定时和控制; ⑥可以响应其他部件发来的中断请求。 1.3累加器和其他通用寄存器相比,有何不同? 答:许多指令的执行过程以累加器为中心;输入/输出指令一般也以累加器来完成。 1.4微处理器的控制信号有哪两类? 答:一类是通过对指令的译码,由CPU内部产生的。这些信号由CPU送到存储器、I/O 接口电路和其他部件。另一类是微型机系统的其他部件送到CPU的。通常用来向CPU 发出请求。如中断请求、总线请求等。 1.5微型计算机采用总线结构有什么优点? 答:首先是系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。其次是一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能 得到扩充。 1.6数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线 或者合用部分总线,那么,要靠什么来区分地址或数据? 答:1.数据总线是双向三态;地址总线是单向输出三态。 2.数据和地址复用时,必须有一个地址选通信号来区分该总线上输出的是地址还是数据。1.7控制总线传输的信号大致有哪几种? 答:包括CPU送往存储器和I/O接口的控制信号,如读信号、写信号、中断响应信号、存储器和I/O接口区分信号等。还包括其他部件送到CPU的信号,如时钟信号、中 断请求信号、准备就绪信号等。

ARM中异常中断处理概述

异常中断处理概述 1.ARM中异常中断处理概述 1)在正常程序执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加4个字 节;每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节.整个过程是顺序执行. 2)通过跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处 执行; B指令用于执行跳转操作; BL指令在执行跳转操作的同时,保存子程序的返回地址; BX指令在执行跳转操作的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态; BLX指令执行3个操作:跳转到目标地址处执行,保存子程序的返回地址(R15保存在R14中),根据目标地址的最低位可以将程序状态切换到Thumb状态. 3)当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执 行.在当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行. 4)在进入异常中断处理程序时,要保存被中断的程序的执行现场,在从异常中断处理程 序退出时,要恢复被中断的程序的执行现场.本章讨论ARM体系中的异常中断机制. 2.ARM体系中异常中断种类. ARM体系中的异常中断如下表所示:

3. 中断向量表中指定了各异常中断及其处理程序的对应关系.它通常存放在存储地址的低端.在ARM体系中,异常中断向量表的大小为32字节.其中,每个异常中断占据4个字节大小,保留了4个字节空间. 每个异常中断对应的中断向量表的4 .通过这两种指令,程序将跳转到相应的异常中断处理程序处执行. 当几个异常中断同时发生时,就必须按照一定的次序来处理这些异常中断.在ARM 中通过给各异常中断富裕一定的优先级来实现这种处理次序.当然有些异常中断是不坑能同时发生的,如指令预取中止异常中断和软件中断(SWI)异常中断是有同一条指令的执行触发的,他们是不可能同时发生的.处理器执行某个特定的异常中断的过程中,称为处理器处于特定的中断模式.各异常中断的中断向量地址以及中断的处理优先级如表2所示. 4.异常中断使用的寄存器 各异常中断对应着一定的处理器模式.应用程序通常运行在用户模式下.ARM中的处理器模式如表3所示. 各种不同的处理器模式可能有对应于该处理器模式的物理寄存器组,如表4所示,其中,R13_svc表示特权模式下的R13寄存器,R13_abt表示中止模式下的R13寄存器,其余的各寄存器名称含义类推. 表4 各处理器模式的物理寄存器组

微型计算机原理习题及解答

微型计算机原理习题及 解答 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

微机原理习题 1、微处理器、微型计算机和微型计算机系统三者之间有什么不同 答: 微型计算机系统:包括微型计算机的硬件系统和必要的系统软件。 微型计算机的硬件系统包括:微型计算机和外围设备。 微型计算机:主要是由微处理器(MPU)、存储器(ROM、RAM)、I/O接口、系统总线组成。 微处理器(MPU):是用微电子技术将中央处理器(CPU)集成在一块芯片中制成的 超大规模集成电路(IC),从逻辑的角度看,其内部主要包 括:运算器(或称算术逻辑单元(ALU))、控制器和一定 数量的寄存器组成。 2、控制总线传输的信号大致有哪几种 答:控制总线用来传输控制信号,协调各部件之间的工作;控制总线是双向的;控制总线包括CPU送往存储器和输入/输出接口电路的控制信号,如读信号、写信号和中断响应信号等;控制总线还包括其他部件送到CPU的信号,比如,时钟信号、中断请求信号和准备就绪信号等。 3、微型计算机采用总线结构有什么优点 答:采用总线结构的优越性主要表现在两个方面:①简化系统的设计,使CPU、RAM、ROM、I/O接口的设计简单化、标准化,使复杂的硬件系统变为面向总线的单一关系。②方便系统的硬件扩充——一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中。 4、简述8086 CPU的逻辑结构。 答:从逻辑功能上,8086分为两部分:总线接口部件BIU(Bus Interface Unit);执行部件EU(Execution Unit)。其中,总线接口部件包括:地址加法器、段寄存器组、IP指针、指令队列缓冲器、和输入输出控制电路;执行部件包括:运算器、通用寄存器组、标志寄存器、和执行部分的控制电路。 5、 8086/8088 和传统的计算机相比在执行指令方面有什么不同这样的设计思想有 什么优点 答:传统的计算机都是按照下面3个步骤循环工作的: ①从指令指针所指的内存单元中取一条指令送到指令寄存器。 ②对指令进行译码,而指令指针进行增值,以指向下一条指令的地址。 ③执行指令。如果所执行的是转移指令、调用指令或者返回指令,则重新设 置指令指针的值,以指向下一条要执行的指令。 而8086/8088指令的执行是流水线方式,取指令和执行指令是并行工作的,工作效率大大提高,从而大大提高了CPU的执行速度。6、总线周期的含义是什么 8086/8088的基本总线周期由几个时钟组成如一个CPU 的时钟频率为10MHz,那么,它的一个时钟周期为多少一个基本总线周期为多少 答:为了取得指令或进行数据的传送,CPU的总线接口部件需要执行一系列的操作,这些操作所经历的时间叫一个总线周期。在8086/8088中,一个最基本的总线周期 由4个时钟周期组成,分别称为4个状态,即T1状态、T2状态、T3状态和T4状

ARM的三种中断调试方法简介.

ARM的三种中断调试方法简介 1嵌入式软件开发流程参照嵌入式软件的开发流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行 1 嵌入式软件开发流程 参照嵌入式软件的开发流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。 在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行入口的启动程序文件。 对后四种文件的理解很重要,其作用解释如下。 (1) 链接脚本文件:在程序编译时起作用。该文件描述代码链接定位的有关信息,包括代码段,数据段,地址段等,链接器必须使用该文件对整个系统的代码做正确的定位。在SDRAM中调试程序、在FLASH中调试或固化后运行的链接脚本文件应加以区分。(在IDE开发环境中使用扩展名*.ld) (2)命令脚本文件:在SDRAM中调试程序时起作用。在集成环境与目标连接时、软件调试过程中以及目标板复位后,有时需要集成环境自动完成一些特定的操作,比如复位目标板、清除看门狗、屏蔽中断寄存器、存储区映射等。这些操作可以通过执行一组命令序列来完成,保存一组命令序列的文本文件称为命令脚本文件(在 IDE开发环境中使用扩展名*.cs)。 (3)存储区映像文件:在SDRAM中调试程序时起作用。在软件调试过程中访问非法存储区在部分处理器和目标板上会产生异常,如果异常没有处理,则会导致软件调试过程无法继续,为了防止以上问题并调整仿真器访问速度以达到最合适的水平,提供这样一种用于描述各个存储区性质的文件叫存储区映像文件(在IDE开发环境中使用扩展名*.map)。 在程序的调试过程中可以选择使用存储区映像文件*.map和命令脚本文件*. cs 配合程序的调试。

ARM中断系统.

该文章介绍了ARM处理器的中断系统,以周立功公司的LPC2000为例。希望对大家有用! 1.1 中断源 LPC2000系列的向量中断控制器(VIC)支持32个中断请求输入,也即是支持32个中断源,见表5.1。这32个中断按顺序称为VIC通道0,VIC通道1,…,VIC通道31。 每一个VIC通道都支持软件中断与硬件中断,即每个中断均可由软件或硬件中断产生,软件中断与对应通道上的硬件中断是逻辑“或”的关系。软件中断可通过置位VICSoftInt寄存器相应位来产生,也可通过置位VICSoftIntClear 寄存器相应位来清除。 表5.1 外设功能的中断源 1.2 三种中断类型 LPC2000具有3类中断:FIQ、向量IRQ和非向量IRQ。LPC2000系列可通过对VICIntSelect和VICVectCntlx(x=0,1,…,15)这两类寄存器的设置,将以上的32个中断源设置为这三类中断的任何一种。其中,快速中断请求FIQ具有最高优先级。建议只分配一个中断请求给FIQ以减少中塅处理程序的延迟。当然,VIC支持多个FIQ中断。向量IRQ具有中等优先级。该级别最多可分配32个请求中的16个。32个请求中的任何一个都可以分配到16个向量IRQslot中的任意一个。其中,slot0具有最高优先级,而slot15则为最低优先级。非向量IRQ 具有最低优先级。 1.3 如何初始化某个中断源为三类中断中的一类 通过VICIntSelect中断选择寄存器将32个中断请求分配为FIQ或IRQ (包括向量IRQ与非向量IRQ);通过VICVectCntlx(x=0,1,…,15)来选择32个中断请求中的某个为向量IRQ并设定此中断请求为IRQ slotx(x对应于VICVectCntlx中的x)。若某个中断源被设定为IRQ,但却未通过VICVectCntlx 使能,则该中断源将被默认为非向量IRQ。 1.4 中断处理过程中断处理过程如下所示: 初始化:设置中断源为3种中断源之一,设置中断地址,使能中断,然后正常运行用户程序;当有IRQ中断产生时,VIC将会根据中断源设置VICVectAddr

第9章 微型计算机中断技术习题参考答案

第9章习题参考答案 9.1所谓中断,是指计算机在正常运行的过程中,由于种种原因,使CPU暂时停止当前程序的执行,而转去处理临时发生的事件,处理完毕后,再返回去继续执行暂停的程序。也就是说,在程序执行过程中,插入另外一段程序运行,这就是中断。 通常,处理器的运算速度较快,外部设备的运算速度较慢,快速的CPU与慢速的外部设备在传输数据的速率上存在矛盾。使用中断技术,使得外部设备与CPU不再是串行工作,而是并行工作,即当外部设备准备好进行数据传输时再向CPU申请中断来为之服务,大大提高了计算机的效率。 9.2引起中断的原因或发出中断请求的来源,称为中断源。中断源有以下几种: 1、外设中断源。一般有键盘、打印机、磁盘、磁带等,工作中要求CPU为它服务时,会向CPU 发送中断请求。 2、故障中断源。当系统出现某些故障时(如存储器出错、运算溢出等),相关部件会向CPU 发出中断请求,以便使CPU转去执行故障处理程序来解决故障。 3、软件中断源。在程序中向CPU发出中断指令(8086为INT指令),可迫使CPU转去执行某个特定的中断服务程序。 4、为调试而设置的中断源。系统提供的单步中断和断点中断,可以使被调试程序在执行一条指令或执行到某个特定位置处时,自动产生中断,从而便于程序员检查中间结果,寻找错误所在。 5、定时时钟。在控制中,常要遇到时间控制,若用CPU执行一段程序来实现延时的方法,则在这段时间内,CPU不能干别的工作,降低了CPU的利用率,所以,常用外部时钟电路。当需要定时时,CPU发出命令,命令时钟电路(如8253等)开始工作,待规定的时间到了后,时钟电路发出中断申请,由CPU加以处理。 9.3一、外部中断 外部中断是由外部硬件引起的中断,所以也叫硬件中断,是CPU外部中断请求信号引脚上输入有效的中断请求信号引起的,分为非屏蔽中断和可屏蔽中断两种。 1、非屏蔽中断 由NMI引脚出现中断请求信号使CPU产生中断称为非屏蔽中断,它是不可用软件屏蔽的,也就是说不受CPU中IF位的控制,当NMI引脚上出现有效高电平持续2个时钟周期以上的上升沿时,表示非屏蔽中断请求信号有效。 2、可屏蔽中断 8086CPU的INTR中断请求信号来自中断控制器8259A,CPU是否响应该中断请求,取决于中断允许标志位IF的状态。 二、内部中断 内部中断是由CPU内部事件引起的中断,内部中断也称软件中断,包括溢出中断、除法出错中断、单步中断、断点中断和指令设置的中断。 9.4 中断向量:通常称中断服务程序入口地址为中断向量,每个中断类型对应一个中断向量。每个中断向量为4字节(32位),用逻辑地址表示一个中断服务程序的入口地址,占用4个连续的存储单元,其中低16位(前2个单元)存放中断服务程序入口的偏移地址(IP),低位在前高位在后,高16位(后2个单元)存放中断服务程序入口的段地址(CS),同样也是低位在前高位在后。 中断优先级:根据事件轻重缓急,给每个中断源确定不同的级别,也就是在实际的计算机系统中,为不同的中断源设定不同的优先级。这样,当不同中断源的中断请求同时到来时,CPU就可以根据事先设定好的中断优先级别,将这些申请排队,先去执行那些重要任务,也就是优先级高的任务,当优先级别高的任务执行完毕后,再去执行优先级别低的任务。

arm中断处理流程

ARM编程特别是系统初始化代码的编写中通常需要实现中断的响应、解析跳转和返回等操作,以便支持上层应用程序的开发,而这往往是困扰初学者的一个难题。中断处理的编程实现需要深入了解ARM内核和处理器本身的中断特征,从而设计一种快速简便的中断处理机制。需要说明的是,具体的上层高级语言编写的中断服务函数不在本文的讨论范围之内。 ARM处理器异常中断处理概述 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场。从异常中断处理程序退出时,要恢复被中断的程序的执行现场。ARM体系中通常在存储地址的低端固化了一个32字节的硬件中断向量表,用来指定各异常中断及其处理程序的对应关系。当一个异常出现以后,ARM微处理器会执行以下几步操作: 1)保存处理器当前状态、中断屏蔽位以及各条件标志位; 2)设置当前程序状态寄存器CPSR中相应的位; 3)将寄存器lr_mode设置成返回地址; 4)将程序计数器(PC)值设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序处执行。 在接收到中断请求以后, ARM处理器内核会自动执行以上四步,程序计数器PC总是跳转到相应的固定地址。从异常中断处理程序中返回包括下面两个基本操作: 1)恢复被屏蔽的程序的处理器状态; 2)返回到发生异常中断的指令的下一条指令处继续执行。 当异常中断发生时,程序计数器PC所指的位置对于各种不同的异常中断是不同的,同样,返回地址对于各种不同的异常中断也是不同的。例外的是,复位异常中断处理程序不需要返回,因为整个应用系统是从复位异常中断处理程序开始执行的。 支持中断跳转的解析程序 解析程序的概念和作用 如前所述,ARM处理器响应中断的时候,总是从固定的地址开始的,而在高级语言环境下开发中断服务程序时,无法控制固定地址开始的跳转流程。为了使得上层应用程序与硬件中断跳转联系起来,需要编写一段中间的服务程序来进行连接。这样的服务程序常被称作中断解析程序。 每个异常中断对应一个4字节的空间,正好放置一条跳转指令或者向PC寄存器赋值的数据访问指令。理论上可以通过这两种指令直接使得程序跳转到对应的中断处理程序中去。但实际上由于函数地址值为未知和其它一些问题,并不这么做。这里给出一种常用的中断跳转流程:

相关主题
文本预览
相关文档 最新文档