中断和异常的区别
单片机的中断与异常处理方法

单片机的中断与异常处理方法在单片机的工作过程中,中断和异常处理是非常重要的概念和方法。
它们能够有效地提高单片机的响应能力和灵活性,使其能够应对各种不同的工作需求和问题。
本文将介绍单片机中断的概念、中断的种类以及针对不同中断的处理方法,同时也会探讨单片机异常处理的原理和方法。
一、中断的概念和种类中断是指在一个程序执行的过程中,由于某种特殊的事件发生,导致程序的正常执行被打断,转而去执行一个与当前任务无关的子程序,完成该事件的相应处理。
中断可以分为外部中断和内部中断两种。
1. 外部中断外部中断是指当单片机外部引脚的电平或信号发生变化时,引发中断事件,使单片机停止当前任务的执行,去处理由该外部事件引发的中断服务程序(ISR)。
外部中断常用于与外部设备的交互,如按键输入、传感器检测等。
在编程中,我们可以通过设置中断触发条件和编写相应的中断服务程序来实现对外部中断的处理。
2. 内部中断内部中断是指当单片机内部某个特定的事件发生时,由硬件或软件触发中断请求,并且将控制权交给中断服务程序进行相应的处理。
内部中断的发生可以是由于某个特定条件的满足,如定时器溢出中断、串口接收中断等;也可以是由软件的运行结果触发,如除法溢出中断、地址错误中断等。
不同的内部中断需要通过编程实现相应的中断服务程序。
二、中断的处理方法中断处理是指在中断发生时,单片机通过中断向量表找到相应的中断服务程序,并对中断事件进行处理的过程。
下面将介绍两种常用的中断处理方法。
1. 优先级中断处理优先级中断处理是指对多个中断源按照优先级进行划分和处理的方法。
在单片机的中断系统中,每个中断源都被赋予了一个优先级,高优先级的中断可以打断当前正在执行的低优先级中断,从而增加了中断的响应速度和灵活性。
优先级中断处理需要在编程时设置中断的优先级,并根据不同的中断事件编写相应的中断服务程序。
2. 嵌套中断处理嵌套中断处理是指当一个中断正在执行的过程中,又发生了另一个中断时,将当前中断挂起,转而处理新发生的中断,并在处理完毕后返回原中断继续执行的方法。
高二微机学考操作题知识点

高二微机学考操作题知识点一、基础知识点1. 二进制和十进制的转换方法:在微机学考操作题中,常常需要将二进制数转换成十进制数或相反。
二进制数转换为十进制数的方法是,将每一位的二进制数乘以2的n次方,再将结果相加即可得到十进制数。
十进制数转换为二进制数的方法是,将十进制数除以2,取余数,然后倒序排列所得的余数。
2. 位、字节与字的关系与计算:在微机学操作题中,要了解位、字节和字的概念以及它们之间的关系。
一个位表示一个二进制数,8个二进制位组成一个字节,而一个字由多个字节组成。
3. 存储器的地址与容量计算:在微机学考操作题中,会涉及到存储器的地址和容量计算。
存储器的地址是从0开始连续编号的,而容量的单位常用字节表示。
计算存储器容量的方法是,将存储器的字节数除以1024,即可得到以KB为单位的容量。
二、指令系统1. 指令的格式与寻址方式:在微机学考操作题中,指令的格式包括操作码、寻址方式和操作数。
操作码表示指令的类型,寻址方式决定了如何获取操作数。
常见的寻址方式有直接寻址、立即寻址、寄存器寻址和间接寻址。
2. 数据传送指令的使用与特点:数据传送指令用于将数据从一个地方传输到另一个地方。
在微机学操作题中,要了解不同数据传送指令的使用方法以及它们的特点。
常见的数据传送指令有MOV、LOAD和STORE等。
3. 算数和逻辑运算指令的使用与特点:算数和逻辑运算指令用于进行数值运算和逻辑运算。
在微机学操作题中,要了解不同算数和逻辑运算指令的使用方法以及它们的特点。
常见的算数和逻辑运算指令有ADD、SUB、AND和OR等。
三、微处理器1. CPU的工作原理与主要组成部分:在微机学考操作题中,要了解CPU的工作原理和主要组成部分。
CPU包括运算器、控制器和寄存器等组件,其中运算器负责执行算术和逻辑运算,控制器负责解码和执行指令,寄存器用于存储数据和地址等。
2. 寄存器的种类及其作用:在微机学考操作题中,要了解不同类型的寄存器及其作用。
天脉(ACoreOS)操作系统培训第六章:异常、中断与定时器

启动(或)重启动看门定时器
STATUS wdStart (WDOG_ID wdId, int delay,
FUNCPTR pRoutine,int parameter )
wdId 看门狗ID,由创建wdCreate返回源自delay 延时的tick值
pRoutine 延时时间到时调用程序
23 parameter
wdStart() + semGive():更加健壮
28
查询警告
下列代码是正确的,只有当系统时钟频率是15Hz 的整数倍
void myWdISR() {
wdStart(myWdId,sysClkRateGet()/15,myWdISR,0); pollMyDevice(); }
为了防止系统在每个时钟tick开销过大,不能 够将系统时钟频率设置过高
中断的工作原理
10
中断处理示例-PowerPC
11
中断处理示例说明
PowerPC有单独的外部中断引脚。板级支持包 (BSP)可以支持外部中断控制器实现中断嵌套。
中断表中中断入口数量取决于BSP中中断控制器的 能力。目前中断向量表最多可支持256个。
外部中断的处理流程
保存CPU寄存器 从中断控制器中读取中断号 调用用户连接的中断处理程序(用户关心) 清中断控制器状态 12 恢复CPU寄存器并返回
fooDoWork()必须每 10秒运行,如果执行小 于10秒钟,看门狗重新 启动(fooISR()没有被 调用)。如果 fooDoWork()执行时间 超过10秒钟,则看门狗 程序fooISR()将被调用 处理紧急事件
停止看门狗
取消先前启动的看门狗 STATUS wdCancel (WDOG_ID wdId)
操作系统中的中断与异常处理机制

操作系统中的中断与异常处理机制在计算机系统中,操作系统起着至关重要的作用,它负责管理和控制计算机的资源,并提供给用户一个友好和高效的界面。
而在操作系统中,中断与异常处理机制是其中的重要组成部分。
一、什么是中断与异常处理机制中断与异常处理机制是操作系统用来响应特定事件或异常情况的方式。
当计算机系统发生某些事件,例如硬件故障、外部设备的请求等,操作系统会立即停止正在执行的任务,转而处理该事件。
在这种情况下,中断与异常处理机制起到了极为重要的作用。
二、中断与异常的区别尽管中断和异常都能够引发操作系统的响应,但两者之间存在一些区别。
1. 中断:中断是由外部设备发起的,例如键盘输入、鼠标点击等。
当外部设备需要与操作系统进行交互时,它会发出中断信号,这时操作系统会中断当前任务的执行,转而响应中断事件。
中断是一种在程序执行时突然发生的外部事件,需要处理器立即中断正在执行的任务并执行相应的中断处理程序。
2. 异常:异常是由程序内部产生的事件,也称为软中断。
当程序运行过程中出现错误、非法操作或者某些特殊事件时,会触发异常。
操作系统会根据异常的类型和优先级来处理该异常,进而采取相应的行动,例如打印错误信息、终止程序执行,或者进行异常处理。
三、中断与异常的处理流程中断与异常处理机制的处理流程如下:1. 中断发生:当外部设备产生中断信号时,处理器会暂停当前任务的执行,并将控制权交给操作系统。
2. 中断处理程序:操作系统会根据中断类型调用对应的中断处理程序。
中断处理程序会执行与中断相关的操作,例如获取键盘输入、响应鼠标事件等。
3. 中断处理完成:中断处理程序执行完毕后,操作系统会将控制权重新交还给之前的任务,使其继续执行。
4. 异常发生:在程序执行过程中,如果出现错误、非法操作或其他特殊事件,会触发异常。
5. 异常处理程序:操作系统会根据异常类型和优先级调用相应的异常处理程序。
异常处理程序会处理异常情况,例如打印错误信息、修复错误、终止程序执行等。
中断和异常处理读书笔记

中断和异常处理读书笔记中断(interrupt)通常被定义为一个事件,该事件改变处理器执行的指令顺序。
这样的事件与CPU芯片内外部硬件电路产生的电信号相对应。
中断通常分为同步(synchronous)中断和异步(asynchronous)中断:同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。
异步中断是由其他硬件设备依照CPU时钟信号随机产生的。
在Intel微处理器手册中,把同步和异步中断分别称为异常(exception)和中断(interrupt)。
中断是由间隔定时器和I/O设备产生的,而异常是由程序的错误产生的,或者是由内核必须处理的异常条件产生的。
中断信号的作用:中断信号提供了一种特殊的方式,使处理器转而去执行正常控制流之外的代码。
当一个中断信号达到时,CPU必须停止它当前正在做的事情,并且切换到一个新的活动。
为了做到这一点,就要在内核态堆栈保存程序计数器的当前值,并把与中断类型相关的一个地址放进程序计数器。
中断处理与进程切换有一个明显的差异:由中断或异常处理程序所执行的代码不是一个进程,更确切的说,它是一个内核控制路径,代表中断发生时正在运行的进程执行。
作为一个内核控制路径,中断处理程序比一个进程要轻,中断的上下文很少,建立蒙昧无知中止中断处理所需要的时间很少。
中断处理是由内核执行的最敏感的任务之一,因为它必须满足以下约束:当内核正打算去完成一些别的事情时,中断随时会到来。
因此,内核的目标就是让中断尽可能快的处理完,尽其所能把更多的处理向后推迟。
内核响应中断后需要进行的操作分为两部分:关键而紧急的部分,内核立即执行;其余推迟的部分,内核随后执行。
因为中断随时会到来,所以内核可能正在处理其中一个中断时,另一个中断又发生了。
因此,中断处理程序必须编写成使相应的内核控制路径能以嵌套的方式执行。
当最后一个内核控制路径终止时,内核必须能恢复被中断进程的执行,或者,如果中断信号已导致了重新调度,内核能切换到另外的进程。
Windows异常处理流程

Windows异常处理流程作者:SoBeIt出处:/articles/200412/761.html日期:2005-01-06先来说说异常和中断的区别。
中断可在任何时候发生,与CPU正在执行什么指令无关,中断主要由I/O设备、处理器时钟或定时器等硬件引发,可以被允许或取消。
而异常是由于CPU执行了某些指令引起的,可以包括存储器存取违规、除0或者特定调试指令等,内核也将系统服务视为异常。
中断和异常更底层的区别是当广义上的中断(包括异常和硬件中断)发生时如果没有设置在服务寄存器(用命令号0xb向8259-1中断控制器0x20端口读出在服务寄存器1,用0xb向8259-2中断控制器的0xa0端口读出在服务寄存器2)相关的在服务位(每个在服务寄存器有8位,共对应IRQ 0-15)则为CPU的异常,否则为硬件中断。
下面是WINDOWS2000根据INTEL x86处理器的定义,将IDT中的前几项注册为对应的异常处理程序(不同的操作系统对此的实现标准是不一样的,这里给出的和其它一些资料不一样是因为这是windows的具体实现):中断号名字原因0x0 除法错误1、DIV和IDIV指令除02、除法结果溢出0x1 调试陷阱1、EFLAG的TF位置位2、执行到调试寄存器(DR0-DR4)设置的断点3、执行INT 1指令0x2 NMI中断将CPU的NMI输入引脚置位(该异常为硬件发生非屏蔽中断而保留)0x3 断点执行INT 3指令0x4 整数溢出执行INTO指令且OF位置位0x5 BOUND边界检查错误BOUND指令比较的值在给定范围外0x6 无效操作码指令无法识别0x7 协处理器不可用1、CR0的EM位置位时执行任何协处理器指令2、协处理器工作时执行了环境切换0x8 双重异常处理异常时发生另一个异常0x9 协处理器段超限浮点指令引用内存超过段尾0xA 无效任务段任务段包含的描述符无效(windows不使用TSS进行环境切换,所以发生该异常说明有其它问题)0xB 段不存在被引用的段被换出内存0xC 堆栈错误1、被引用内存超出堆栈段限制2、加载入SS寄存器的描述符的present位置00xD 一般保护性错误所有其它异常处理例程无法处理的异常0xE 页面错误1、访问的地址未被换入内存2、访问操作违反页保护规则0x10 协处理器出错CR0的EM位置位时执行W AIT或ESCape指令0x11 对齐检查错误对齐检查开启时(EFLAG对齐位置位)访问未对齐数据其它异常还包括获取系统启动时间服务int 0x2a、用户回调int 0x2b、系统服务int 0x2e、调试服务int 0x2d等系统用来实现自己功能的部分,都是通过异常的机制,触发方式就是执行相应的int指令。
嵌入式系统基础第7章中断和异常

为减少延时,ARM在快中断中采取了 两个措施: (1)专门为快中断FIQ设置了一个FIQ模式, 并为这个模式配置了较多的私有寄存器, 从而可使中断服务程序有足够的寄存
器来使用,而不必与被中断服务程序使用 同一组寄存器,这样就免去了因寄存器冲 突而必需的保护及恢复现场工作。
(2)ARM把FIQ的中断向量放在了中断 (异常)向量表末尾0X0000001C处,因此 它后面没有其它中断向量,允许用户将中 断服务车工许程序直接放在这里。
除了外部设备可以发出可以发出中断 请求之后,处理器内部也会有一些事件可 以发出中断请求,例如读取指令出错或在 进行除法运算时除数为零等。为了与外部 事件引起的中断相区别,人们把这种由内 部事件引起的中断叫做异常。
7.1.2
中断请求信号的屏蔽
处理器中用来屏蔽中断的积存器和开 关如下:
1、可屏ห้องสมุดไป่ตู้中断
1、低端和高端向量表
ARM有低端和高端两种向量表,用户可 以根据需要选用其中一种,如下所示:
ARM中断(异常)的各个向量在向量表 中的分配如下:
中断(异常) 复位(RESET) 未定义指令(UNDEF) 向量在低端向量表的地址 0x00000000 0x00000004 向量在高端向量表的地址 0xFFFF0000 0xFFFF0004
一般情况下,这个优先排队机构可能 在处理器中有一套,在中断控制器中也有 一套,甚至在借口电路中也会有一套。
(2)软件实现方法
就是把所有中断源的中断请求信号分 成两路,其中一路经“或”逻辑送到处理 器的中断请求输入端,而另一路则送入中 断接口电路经数据总线送入处理器。
中断源的软件查询法电路的接线如下 图所示:
异常/中断 复位(RESET) 未定义指令(UNDEF) 软中断(SWI) 地址 LR LR 说明 指向未定义指令的下一条指令 指向SWI指令的下一条指令
操作系统学习(十三)、中断和异常

操作系统学习(⼗三)、中断和异常⼀、中断和异常中断何和异常是指明系统、处理器或当前执⾏程序(或任务)的某处出现⼀个事件,该事件需要处理器进⾏处理。
通常,这种事情会导致执⾏控制器被强迫从当前运⾏程序转移到被称为终端处理程序或异常处理程序的特殊软件函数或任务中。
处理器响应中断或异常所采取的⾏动称为中断/异常服务(处理)。
通常中断发⽣在程序执⾏的随机时刻,以响应硬件发出的信号。
系统硬件使⽤中断来处理外部事件,例如要求为外部设备提供服务。
当然,软件也能通过执⾏ INT n 指令产⽣中断。
异常发⽣在处理器执⾏⼀条指令时,检测到⼀个出错条件时发⽣,例如被0除出错条件。
处理器可以检测到各种出错条件,包括违反保护机制。
页错误以及机器内部错误。
对应⽤程序来说,80x86的中断和异常处理机制可以透明地处理发⽣的异常和中断事件。
当收到⼀个中断或检测到⼀个异常时,处理器会⾃动把当前正在正在执⾏的程序或任务挂起,并开始运⾏中断或异常处理程序。
当处理程序执⾏完毕,处理器就会恢复并继续执⾏被中断的程序或任务。
被中断程序的恢复过程并不会失去程序执⾏的连贯性,除⾮从异常中恢复是不可能的或者中断异常导致当前运⾏程序被终⽌。
⼆、异常和中断向量为了有助于处理异常和中断,每个需要被处理器进⾏特殊处理的处理器定义的异常和中断条件都被赋予了⼀个标识号,称为向量。
处理器把赋予异常或中断的向量⽤作中断描述符表IDT中的⼀个索引号,来定位⼀个异常或中断的处理程序⼊⼝点位置。
允许的向量号范围是0到255.其中0到31保留⽤作80x86处理器定义的异常和中断,不过⽬前该范围内的向量号并⾮每个都已定义了功能,未定义功能的向量号将留在以后使⽤。
范围在32到255的向量号⽤于⽤户定义的中断。
这些中断通常⽤于外部I/O设备,使得这些设备可以通过外部硬件中断机制向处理器发送中断。
三、中断源和异常源(⼀)、中断源处理器从两种地⽅接收终端:外部(硬件产⽣)的中断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
≥1
中断 & & & & & & & &
IMR IR0
中 断 请 求 寄 存 器 IRR
求 优 先 级 编 码 器
… …
INT
&
A0 A1 ACPU响应可屏蔽中断条件: 响应可屏蔽中断条件 当前指令执行完毕; 当前指令执行完毕; EFLAGS中IF=1; 中 ; INTR信号有效. 信号有效. 信号有效 中断响应过程:8259向CPU送中断类型号. 送中断类型号. 中断响应过程: 向 送中断类型号 第一个INTA#,CPU封锁总线 , 封锁总线(LOCK#有效 ,8259A 有效), 第一个 封锁总线 有效 最高优先级请求对应ISR位置位,对应 位置位, 复位. 最高优先级请求对应 位置位 对应IRR复位. 复位 第二个INTA#,总线解锁,ALE无效,8259A将当前 ,总线解锁, 无效, 第二个 无效 将当前 中断服务程序对应中断类型号送到数据总线上. 中断服务程序对应中断类型号送到数据总线上. ISR的复位在自动结束 非自动结束时不一致. 的复位在自动结束/非自动结束时不一致 的复位在自动结束 非自动结束时不一致. DMA传送方式比中断方式速度快 响应与传送) DMA传送方式比中断方式速度快(响应与传送). 传送方式比中断方式速度快(
14
连接总线与级联方式: 连接总线与级联方式: 非缓冲方式:小系统中, 非缓冲方式:小系统中,8259A数据线直接连 数据线直接连 系统数据总线,不需要总线缓冲器, 系统数据总线,不需要总线缓冲器,此时 SP#/EN#表示级联时主 从关系. 表示级联时主/从关系. 表示级联时主 从关系 主片: 接高电平; 主片:SP#/EN#接高电平; 接高电平 从片: 接低电平. 从片:SP#/EN#接低电平. 接低电平 缓冲方式:大系统中,数据总线都具有总线 缓冲方式:大系统中, 缓冲器,此时SP#/EN#表示数据传送方向,级联 表示数据传送方向, 缓冲器,此时 表示数据传送方向 时主/从关系通过软件设定 从关系通过软件设定ICW4来决定. 来决定. 时主 从关系通过软件设定 来决定 PC机初始化为非缓冲方式 PC机初始化为非缓冲方式
12
回ICW3
级联方式结构: 级联方式结构:
级联1
13
级联2
级联3
3.8259A工作方式 3.8259A工作方式 中断请求方式: 中断请求方式: 边沿触发方式:正跳变向8259A请求中断. 请求中断. 边沿触发方式:正跳变向 请求中断 电平触发方式:高电平向8259A请求中断,响应 请求中断, 电平触发方式:高电平向 请求中断 中断后要及时清除高电平. 中断后要及时清除高电平. 查询中断方式:外设向8259A请求中断,但 请求中断, 查询中断方式:外设向 请求中断 8259A不向 8259A不向CPU发中断请求信号 不向CPU发中断请求信号 INT.而是将请求状态保存等待 . CPU来查询. 来查询. 来查询 PC机初始化为边沿触发 PC机初始化为边沿触发
17
级联结构
4.8259A的操作功能及命令 4.8259A的操作功能及命令 I/O端口地址:只提供二个端口(使用 区别 ; I/O端口地址:只提供二个端口 使用 区别); 使用A0区别 端口地址 命令:初始化--ICW1~ICW4, 命令:初始化 , 操 作--OCW1~OCW3. . 状态: 状态:IRR,ISR,IMR,查询字. , , ,查询字. I/O端口操作冲突时解决方法: I/O端口操作冲突时解决方法: 端口操作冲突时解决方法 信息字节中有空闲位时:特征位方法; 信息字节中有空闲位时:特征位方法; 信息字节中无空闲位时:时序方法, 写区 信息字节中无空闲位时:时序方法,读/写区 分法. 分法.
3
7.1.2 中断与异常类型
1.外部硬件(如键盘,鼠标,串口,并口打印机等)中断 1.外部硬件 如键盘,鼠标,串口,并口打印机等) 外部硬件( 属性:硬件,可屏蔽,向量. 属性:硬件,可屏蔽,向量. 中断请求: 中断请求:多个中断请求的排队和判优由中断控制器完 产生的有无中断请求的信号送到CPU的INTR引脚. 引脚. 成,产生的有无中断请求的信号送到 的 引脚 中断类型号:通过数据总线送到CPU中. 中断类型号:通过数据总线送到 中
9
2.8259A内部结构 2.8259A内部结构
10
电路: 电路:CPU ,I/O . 内部逻辑: 及控制电路. 内部逻辑:IRR,IMR,PR,ISR及控制电路. , , , 及控制电路 中断请求过程:IR->INT. 中断请求过程: .
D0
…
D7
ISR编码 编码 中 断 请 B0 B1 B2
IRQx
SERIRQ SIO LPC47B27X 中断类型号
EFLAGS寄存器的 位影响 寄存器的IF位影响 对中断请求的响应. 寄存器的 位影响CPU对中断请求的响应. 对中断请求的响应 处理器在当前指令执行结束的时候启动中断识别INTA 当前指令执行结束的时候启动中断识别 处理器在当前指令执行结束的时候启动中断识别 总线周期. 总线周期.
4
…
82801HB
82G965
PIRQx
INTR
Pentium 4/Conroe
2.不可屏蔽中断 2.不可屏蔽中断 属性:硬件,不可屏蔽,向量. 属性:硬件,不可屏蔽,向量. 中断请求:中断请求的信号送到 引脚. 中断请求:中断请求的信号送到CPU的NMI引脚. 的 引脚 中断类型号:固定为 . 中断类型号:固定为2. CPU不需要进行中断识别,直接处理中断. 不需要进行中断识别,直接处理中断. 不需要进行中断识别 NMI由0跳变到 以后要维持至少 个连续的处理 由 跳变到 以后要维持至少4个连续的处理 跳变到1以后要维持至少 器时钟周期的高电平才被识别. 器时钟周期的高电平才被识别. NMI由1跳变到 以后要维持至少 个连续的处理 跳变到0以后要维持至少 由 跳变到 以后要维持至少4个连续的处理 器时钟周期的低电平,新的NMI中断才能被识别. 中断才能被识别. 器时钟周期的低电平,新的 中断才能被识别
6
4.内部中断和异常 4.内部中断和异常 属性:软件,不可屏蔽,向量. 属性:软件,不可屏蔽,向量. 中断请求:指令执行中产生. 中断请求:指令执行中产生. 中断类型号: 规定. 中断类型号:CPU规定. 规定 失效(故障):错误在指令完成前,错误指令的CS: 失效(故障):错误在指令完成前,错误指令的 : ):错误在指令完成前 EIP压栈.该指令会重做. 压栈. 压栈 该指令会重做. 陷阱:错误在指令完成后,错误指令下一指令的CS: 陷阱:错误在指令完成后,错误指令下一指令的 : EIP压栈. 压栈. 压栈 中止:不保存,重启机器. 中止:不保存,重启机器. CPU不需要进行中断识别,直接处理中断. 不需要进行中断识别, 不需要进行中断识别 直接处理中断.
15
屏蔽方式: 屏蔽方式: 缺省特性:自动屏蔽低于自己优先级的IR. 缺省特性:自动屏蔽低于自己优先级的IR. 正常屏蔽: 中相应位置位; 正常屏蔽:IMR中相应位置位; 中相应位置位 特定屏蔽:开放比自己优先级低的IR. 特定屏蔽:开放比自己优先级低的 . 优先级管理方式: 优先级管理方式: 缺省特性: 的优先级为一循环队列. 缺省特性:IR0~IR7的优先级为一循环队列. 固定优先权: 降序; 固定优先权:从IR0~IR7降序; 轮转优先权: 轮转优先权: 自动轮转:刚被服务的IR的优先级降至最低 的优先级降至最低; 自动轮转:刚被服务的 的优先级降至最低; 指定轮转:指定的IR的优先级降至最低 的优先级降至最低. 指定轮转:指定的 的优先级降至最低. PC机初始化为缺省屏蔽特性,固定优先权 PC机初始化为缺省屏蔽特性, 机初始化为缺省屏蔽特性
中断请求 中断响应 中断服务 中断结束 中断处理
中断处理的隐操作: 中断处理的隐操作:程序状态及程序断点地址 的进栈及出栈. 的进栈及出栈.
2
中断系统其他功能: 中断系统其他功能: 支持多中断源和多种中断源. 支持多中断源和多种中断源. 支持中断屏蔽处理. 支持中断屏蔽处理. 支持中断嵌套处理. 支持中断嵌套处理. 支持中断优先级修改. 支持中断优先级修改. 支持中断结束方式选择. 支持中断结束方式选择.
7
7.2 Intel 8259A
7.2.1 8259A主要任务 8259A主要任务
接受外部的中断请求; 接受外部的中断请求; 管理所有外部的中断请求(排队 判优,屏蔽,嵌套); 排队, 管理所有外部的中断请求 排队,判优,屏蔽,嵌套 ; 产生中断请求INTR信号及中断类型号; 信号及中断类型号; 向CPU产生中断请求 产生中断请求 信号及中断类型号 进行中断结束处理; 进行中断结束处理; 接受CPU命令及返回状态. 命令及返回状态. 接受 命令及返回状态
8
7.2.2 8259A引脚及内部结构 8259A引脚及内部结构
1.8259A引脚 1.8259A引脚 CPU侧 CPU侧: CS#; ; DB0~DB7; RD#,WR#,A0; , , INT,INTA#; , ; 外设侧: 外设侧: IR0~IR7; 级联: 级联: SP#/EN#, , CAS0~CAS2.
18
8259A命令关系表(地址以PC机中为例 8259A命令关系表(地址以PC机中为例): 机中为例): 命令关系表
PIC1 20H PIC2 0A0H 操作 写 内容 ICW1 OCW2 OCW3 ICW2~ICW4 特征位 D4D3D2 1×× ×× 00× × 01× × 无 无 时序
第7章 中断与异常 章
张明武
scauzhang@
华南农业大学信息(软件)学院 华南农业大学信息(软件)
1
7.1 中断基本概念
7.1.1 中断基本概念 定义: 暂停现行程序, 定义:CPU暂停现行程序,转而处理随机到来 暂停现行程序 的事件, 的事件,待处理完后再回到被暂停的程序继续 执行,这个过程就是中断. 执行,这个过程就是中断. 中断过程: 中断过程: