中断向量
中断向量概念
中断向量概念
中断向量是计算机系统中用于管理中断请求的数据结构。
中断是指在程序运行过程中,由于外部事件的发生,例如硬件设备发出的信号,或者由于程序内部错误等原因,需要暂时中止当前程序的执行,转而处理其他事务的情况。
中断向量记录了不同种类的中断请求的处理程序的入口地址,当中断请求发生时,计算机系统会根据中断向量中记录的地址找到对应的处理程序,并跳转到该程序执行相应的处理逻辑。
中断向量的每个入口地址对应一个中断类型,因此可以通过修改中断向量中的入口地址来改变中断请求的处理方式。
什么是中断?什么是中断向量?中断向量表的地址范围?
1.什么是中断?什么是中断向量?中断向量表的地址范围?答:中断就是CPU在执行当前程序时由于内外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的内外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址范围是00000H-003FFH。
2.3.微机系统的硬件由哪几部分组成?答:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。
4.什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。
分三组:地址总线,数据总线,控制总线。
5.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO 设备之间的数据传送。
执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。
6.8086指令队列的作用是什么?答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。
7.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。
8.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。
微机原理与接口技术:中断向量和中断向量表1
从类型32开始直到255作为用户中断类型,用户中断向量由用户填写 到中断向量表中,中断服务程序也由用户编写。
11
5
8086/8088CPU的中断系统可以处理256种中断。每种中断都有对应 的中断服务程序。中断服务程序的入口地址称为中断向量。256种中断 向量存储在内存中构成一张表,称为中断向量表。 每个中断向量都包括两部分:段基址和偏移地址。因此,存放1个中断 向量需要4个内存单元,256种中断向量共需要1K个内存单元。
6
中断向量在中断向量表中的存放 首地址称为向量地址,其值为: 中断类型码×4。 如DOS系统功能调用的中断类型号 为21H,向量地址为:n×4=84H。
7
当CPU调用中断类型码为n的中断服务程序时,首先把n乘以4,得到 它的向量地址4n,然后把4n+1:4n两个单元的内容取出并装入IP寄存 器;再把(4n+3:4n+2)两个单元的内容取出并装入CS寄存器, CPU就获得了n的中断服务程序的入口地址,进而转去执行中断服务程 序。
知识点 6.5
8086/8088中断系统
1
2
知识点 6.5.1
中断向量和中断向量表
3
6.5.1 中断向量和中断向量表
8086/8088CPU的中断系统可以处理256种中断。每种中断都有对应 的中断服务程序。中断服务程序的入口地址称为中断向量。256种中断 向量存储在内存中构成一张表,称为中断向量表。 每个中断向量都包括两部分:段基址和偏移地址。因此,存放1个中断 向量需要4个内存单元,256种中断向量共需要1K个内存单元。
4
中断向量表位于内存起始地址00000~003FFH的存储区
内。从地址00000H开始,每4个单元存放一个中断向量,
AVR_中断向量表
C中断向量:#if defined(_ICC_A VR_) // "ICCA VR 编译器"条件编译开始/*==================================================================== ==================中断向量定义====================================================================== ================*/#define IT_RESET 1// 外部引脚、上电复位、掉电检测复位、看门狗复位、以及 JTAG A VR 复位中断向量#define IT_INT0 2 // 外部中断请求0中断向量#define IT_INT1 3 // 外部中断请求1中断向量#define IT_TIMER2_COMP 4 // 定时器/计数器2比较匹配中断向量#define IT_TIMER2_OVF 5 // 定时器/计数器2溢出中断向量#define IT_TIMER1_CAPT 6 // 定时器/计数器1输入捕获中断向量#define IT_TIMER1_COMPA 7 // 定时器/计数器1A比较匹配中断向量#define IT_TIMER1_COMPB 8 // 定时器/计数器1B比较匹配中断向量#define IT_TIMER1_OVF 9 // 定时器/计数器1溢出中断向量#define IT_TIMER0_OVF 10 // 定时器/计数器0溢出中断向量#define IT_SPI_STC 11 // SPI串行传输结束中断向量#define IT_USART_RXC 12 // USART接收结束中断向量#define IT_USART_UDRE 13 // USART数据寄存器空中断向量#define IT_USART_TXC 14 // USART传送结束中断向量#define IT_ADC 15 // ADC转换结束中断向量#define IT_EE_RDY 16 // EEPROM就绪中断向量#define IT_ANA_COMP 17 // 模拟比较器中断向量#define IT_TWI 18 // 两线串行接口中断向量#define IT_INT2 19 // 外部中断请求2中断向量#define IT_TIMER0_COMP 20 // 定时器/计数器0比较匹配中断向量#define IT_SPM_RDY 21 // 保存程序存储器内容就绪中断向量#endif // "_ICC_A VR_" 条件编译结束#if defined(_CodeVision_A VR_) // "CodeV ision A VR C 编译器"条件编译开始#define EXT_INT0 2 // 外部中断请求0中断向量#define EXT_INT1 3 // 外部中断请求1中断向量#define TIM2_COMP 4 // 定时器/计数器2比较匹配中断向量#define TIM2_OVF 5 // 定时器/计数器2溢出中断向量#define TIM1_CAPT 6 // 定时器/计数器1输入捕获中断向量#define TIM1_COMPA 7 // 定时器/计数器1A比较匹配中断向量#define TIM1_COMPB 8 // 定时器/计数器1B比较匹配中断向量#define TIM1_OVF 9 // 定时器/计数器1溢出中断向量#define TIM0_OVF 10 // 定时器/计数器0溢出中断向量#define SPI_STC 11 // SPI串行传输结束中断向量#define USART_RXC 12 // USART接收结束中断向量#define USART_DRE 13 // USART数据寄存器空中断向量#define USART_TXC 14 // USART传送结束中断向量#define ADC_INT 15 // ADC转换结束中断向量#define EE_RDY 16 // EEPROM就绪中断向量#define ANA_COMP 17 // 模拟比较器中断向量#define TWI 18 // 两线串行接口中断向量#define EXT_INT2 19 // 外部中断请求2中断向量#define TIM0_COMP 20 // 定时器/计数器0比较匹配中断向量#define SPM_READY 21 // 保存程序存储器内容就绪中断向量#endif // "defined(_CodeVision_A VR_)" 条件编译结束#if defined(_IAR_EW_A VR_) // "IAR Embedded Workbench A VR 编译器"条件编译开始#define RESET_vect (0x00)// 外部引脚、上电复位、掉电检测复位、看门狗复位、以及 JTAG A VR 复位中断向量#define INT0_vect (0x04) // 外部中断请求0中断向量#define INT1_vect (0x08) // 外部中断请求1中断向量#define TIMER2_COMP_vect (0x0C) // 定时器/计数器2比较匹配中断向量#define TIMER2_OVF_vect (0x10) // 定时器/计数器2溢出中断向量#define TIMER1_CAPT_vect (0x14) // 定时器/计数器1输入捕获中断向量#define TIMER1_COMPA_vect (0x18) // 定时器/计数器1A比较匹配中断向量#define TIMER1_COMPB_vect (0x1C) // 定时器/计数器1B比较匹配中断向量#define TIMER1_OVF_vect (0x20) // 定时器/计数器1溢出中断向量#define TIMER0_OVF_vect (0x24) // 定时器/计数器0溢出中断向量#define SPI_STC_vect (0x28) // SPI串行传输结束中断向量#define USART_RXC_vect (0x2C) // USART接收结束中断向量#define USART_UDRE_vect (0x30) // USART数据寄存器空中断向量#define USART_TXC_vect (0x34) // USART传送结束中断向量#define ADC_vect (0x38) // ADC转换结束中断向量#define EE_RDY_vect (0x3C) // EEPROM就绪中断向量#define ANA_COMP_vect (0x40) // 模拟比较器中断向量#define TWI_vect (0x44) // 两线串行接口中断向量#define INT2_vect (0x48) // 外部中断请求2向量#define TIMER0_COMP_vect (0x4C) // 定时器/计数器0比较匹配中断向量#define SPM_RDY_vect (0x50) // 保存程序存储器内容就绪中断向量#endif // "defined(_IAR_EW_A VR_)" 条件编译结束汇编语言中断向量:;************************************************************************* ;* 中断向量位置声明 *;************************************************************************* ;******** 中断向量地址定义:.equ INT0addr = 0x002 ;外部中断请求0向量地址.equ INT1addr = 0x004 ;外部中断请求1向量地址.equ OC2addr = 0x006 ;定时器/计数器2比较匹配中断向量地址.equ OVF2addr = 0x008 ;定时器/计数器2溢出中断向量地址.equ ICP1addr = 0x00a ;定时器/计数器1输入捕获中断向量地址.equ OC1Aaddr = 0x00c ;定时器/计数器1A比较匹配中断向量地址.equ OC1Baddr = 0x00e ;定时器/计数器1B比较匹配中断向量地址.equ OVF1addr = 0x010 ;定时器/计数器1溢出中断向量地址.equ OVF0addr = 0x012 ;定时器/计数器0溢出中断向量地址.equ SPIaddr = 0x014 ;SPI串行传输结束中断向量地址.equ URXCaddr = 0x016 ;USART接收结束中断向量地址.equ UDREaddr = 0x018 ;USART数据寄存器空中断向量地址.equ UTXCaddr = 0x01a ;USART传送结束中断向量地址.equ ADCCaddr = 0x01c ;ADC转换结束中断向量地址.equ ERDY addr = 0x01e ;EEPROM就绪中断向量地址.equ ACIaddr = 0x020 ;模拟比较器中断向量地址.equ TWIaddr = 0x022 ;两线串行接口中断向量地址.equ INT2addr = 0x024 ;外部中断请求2向量地址.equ OC0addr = 0x026 ;定时器/计数器0比较匹配中断向量地址.equ SPMRaddr = 0x028 ;保存程序存储器内容就绪中断向量地址。
中断向量表
在DOS系统(实模式)下,从0x20开始,用于操作系统本身。
保护模式
在Linux下(保护模式),没有使用BIOS设置的中断向量表,0x00 ~ 0x1F是CPU保护模式下的默认中断向 量,而0x20开始,都是被Linux系统重新设置的。
X86占用的中断向量表如下: Linux自己设置的中断以后再添加。
谢谢观看
基本简介
基本简介
是指中断服务程序入口的偏移量与段基址,一个中断向量占据4字节空间。中断向量表是8086系统内存中最 低端1K字节空间,它的作用就是按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量。 在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并 从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口。
中断向量表
中断源的识别标志
目录
01 基本简介
02 列表
基本信息
中断源的识别标志,可用来形成相应的中断服务程序的入口或存放中断服务程序的首称为中断向量。在 Pc/AT中由硬件产生的中断标识码被称为中断类型号(当然,中断类型号还有其他的产生方法,如指令中直接给 出、CPU自动形成等),即在中断响应期间8259A产生的是当前请求中断的最高优先级的中断源的中断类型号。中 断类型号和中断向量之间有下面的关系:中断类型号×4=存放中断向量的首有了存放中断向量的首,从该开始的 4个存储单元中取出的就是中断服务程序的入口
mega16中断向量
TCCR0FOC0WGM00COM01COM00WGM01CS02CS01CS00TCCR0 76543210Bit7–FOC0:强制输出比较Bit6,3–WGM01:0:波形产生模式Bit5:4–COM01:0:比较PWM模式Bit2:0–CS02:0:时钟分频TCNT0[7:0] OCR0[7:0]输出比较寄存器包含一个8位的数据,不间断地与计数器数值TCNT0进行比较。
匹配事件可以用来产生输出比较中断,或者用来在OC0引脚上产生波形。
TIMSK OCIE2TOIE2TICIE1OCIE1A OCIE1B TOIE1OCIE0TOIE0 Bit1OCIE0:T/C0输出比较匹配中断使能Bit5TICIE1:T/C1输入捕捉中断使能Bit0TOIE0:T/C0溢出中断使能Bit4OCIE1A:输出比较A匹配中断使能Bit2TOIE1:T/C1溢出中断使能Bit3OCIE1B:T/C1输出比较B匹配中断使能Bit7–OCIE2:T/C2输出比较匹配中断使能Bit6–TOIE2:T/C2溢出中断使能TIFR中断标志OCF2TOV2ICF1OCF1A OCF1B TOV1OCF0TOV0Bit5–ICF1:T/C1输入捕捉标志位Bit2–TOV1:T/C1溢出标志Bit4–OCF1A:T/C1输出比较A匹配标志位Bit1–OCF0:输出比较标志Bit3–OCF1B:T/C1输出比较B匹配标志位0Bit0–TOV0:T/C0溢出标志Bit7–OCF2:输出比较标志2Bit6–TOV2:T/C2溢出标志TCCR1A COM1A1COM1ACOM1B1COM1BFOC1A FOC1B WGM11WGM1076543210Bit7:6–COM1A1:0:通道A的比较输出模式Bit5:4–COM1B1:0:通道B的比较输出模式Bit3FOC1A:A强制输出比较Bit2FOC1B:B强制输出比较Bit1:0–WGM11:0:波形发生模式TCCR1B ICNC1ICES1WGM13WGM12CS12CS11CS10Bit7–ICNC1:入捕捉噪声抑制器Bit6–ICES1:输入捕捉触发沿选择Bit4:3–WGM13:2:波形发生模式Bit2:0–CS12:0:时钟选择TCNT1[15:8] TCNT1[7:0]OCR1A[15:8]OCR1AHOCR1A[7:0]OCR1ALOCR1B[15:8]OCR1BHOCR1B[7:0]OCR1BLICR1[15:8]ICR1HICR1[7:0]ICR1LICR1的设定值可作为计数器TOP值TCCR2FOC2WGM20COM21COM20WGM21CS22CS21CS20 Bit7–FOC2:强制输出比较Bit6,3–WGM21:0:波形产生模式Bit5:4–COM21:0:比较匹配输出模式Bit2:0–CS22:0:时钟选择TCNT2[7:0] TCNT2OCR2[7:0]OCR2输出比较寄存器包含一个8位的数据,不间断地与计数器数值TCNT2进行比较。
汇编(中断向量的设置)
汇编(中断向量的设置)
1、关于中断向量的概念:
中断向量:即中断服务⼦程序的⼊⼝逻辑地址,由两部分组成:服务程序的段基址CS(2字节)和服务程序的偏移地址IP(2字节)。
中断向量表:存放中断向量的⼀个特定的内存区域,位于整个内存区域的最低端,物理地址范围从00000H~003FFH(⼀个中断向量占4字节的空间,因此256个中断⼀共需要1K字节的空间)。
共256个中断,中断类型号从0~255。
中断类型号和中断向量地址之间的关系:
中断向量地址 = 中断类型号*4(即可找到中断向量地址,前两位送给偏移量后两位送给段基址)
2、流程图:
3、程序:
设中断服务程序的⼊⼝地址标号为VINTSUB,中断类型号为10,中断向量的设置如下:
OFFSET是从地址标号中取出段偏移地址偏移地址IP
SEG是从地址标号中取出段基地址
.
.
.
MOV DX,OFFSET VINTSUB ;取偏移地址
PUSH DS ;将 DS 寄存器数据推⼊堆栈,要再次得到 DS 的值的时候可以⽤ POP DS,即临时保存⼀下DS的值,这⾥起保护数据段的作⽤
MOV AX,SEG VINTSUB ;取段基址
MOV DS,AX ;置⼊段基地址
MOV AL,10 ;中断类型号
MOV AH,25H ;调⽤功能号
INT 21H ;DOS功能调⽤
POP DS ;恢复 DS 中的数据
.
.
.。
微机原理与接口技术课件-7中断向量表(已看)
优先级从高到低顺序如下:
高
软件中断、内部中断 (除单步中断外)
NMI
INTR
单步中断
低
14
中断判优
中断优先级控制要处理两种情况: 对同时产生的中断:应首先处理优先级别较高的中断; 若优先级别相同,则按先来先服务的原则FIFO处理; 对非同时产生的中断:低优先级别的中断处理程序允 许被高优先级别的中断源所中断——即允许中断嵌套。
⑦ 取中断向量送入IP’和CS’19Leabharlann 可编程中断控制器8259A
PIC,Programmable Interrupt
Controller
可对8个中断源实现优先级控制 (单个管8个) 可扩展至对64个中断源实现优 先级控制(9个管64个)
可编程设置不同工作方式(多套 管理方案)
根据中断源向x86提供不同中断 类型码n(来访者1人1号)
操作命令字OCW
OCW1~OCW3 向8259A写入OCW的过程称为操作方式编程
35
8259A的初始化顺序
8259的初始化流程 如图
8
与(外部)中断有关的引脚
与中断有关的控制线为:NMI和INTR、INTA NMI:上升沿出发。 INTR:高电平出发。 INTA:可屏蔽中断的响应信号。
9
中断过程
五个步骤:
中断请求
中断判优/排队
(有时还要进行中断源
识别)
请求
中断响应
中断服务/处理
中断返回
主程序
中断服务程序
响应
排队 硬/ 软 INT n
NMI DB
n
INTR
INTA
中断控 制器 8259A PIC
非屏蔽中断请求
可 屏 蔽
中断向量码和中断类型码
中断向量码和中断类型码1.引言1.1 概述中断向量码和中断类型码是计算机系统中重要的概念和组成部分。
在计算机运行过程中,当发生某些特定事件或条件时,系统需要立即中断当前操作,转而处理这些事件或条件的相应操作。
中断向量码和中断类型码就是用来识别和区分不同中断事件和类型的标识符。
简单来说,中断向量码是一种用于唯一标识各种不同中断事件的编码方式。
它通常是一个整数值,拥有特定的含义和对应的处理程序。
当发生中断事件时,系统会根据中断向量码找到对应的处理程序,从而按照预定义的方式对中断事件进行处理。
而中断类型码则是用于区分不同类型中断的编码方式。
计算机系统中可能存在多种不同类型的中断,如硬件中断、软件中断等。
每种类型的中断都有特定的中断类型码,用于区分和识别不同类型的中断。
通过中断类型码,系统可以准确地判断中断的来源和类型,从而进一步调度相应的处理程序或资源。
中断向量码和中断类型码在计算机系统中起到了至关重要的作用。
它们不仅为系统提供了灵活、快速的中断处理机制,还允许系统针对不同类型的中断事件进行有针对性的处理。
通过合理设计和使用中断向量码和中断类型码,可以提高系统的稳定性、可靠性和响应能力。
在接下来的篇章中,我们将详细介绍中断向量码和中断类型码的定义、作用以及使用方法。
通过深入了解这些概念,读者将能够更好地理解中断处理的机制和原理,并且能够在实际应用中灵活使用和调度中断处理程序。
我们希望通过这篇文章的介绍,读者能够对中断向量码和中断类型码有更深入的认识,并且能够将其应用于自己的实际工作和学习中。
1.2 文章结构本文共分为三个主要部分:引言、正文和结论。
下面将详细介绍每个部分的内容和结构安排。
1. 引言部分将提供本文的背景和目的。
首先,我们将概述中断向量码和中断类型码的基本概念和作用。
然后,我们将介绍本文的结构和各个部分的内容安排。
最后,我们将明确本文的目的,即深入探讨中断向量码和中断类型码对于中断处理的重要性。
ARM中断向量表与响应流程
一首先中断向量表定义在哪里?如何加载?二中断向量表与中断服务程序三处理流程/////////////////////////////////////////////////////////////////// /////////////////////////////////一首先中断向量表定义在哪里?__vectors_start首先中断向量表定义的是什么?定义的就是中断服务程序的跳转指令,因为每个中断向量在向量表中只有一个字节的存储空间,只能存放一条指令,所以通常存放跳转指令,使程序跳转到存储器的其他地方,再执行中断处理。
这里cpu就可以找中断服务程序,跳转指令如例如:LDR PC, =ISR_HANDLER;或者指令与不同的cpu平台有关系。
1.1 vector表定义的方式:往往是变量地址:如 ..globl __vectors_start 定义__vectors_start符号,这样外部程序可以访问到。
entry-armv.S__vectors_start:swi SYS_ERROR0b vector_und + stubs_offsetldr pc, .LCvswi + stubs_offsetb vector_pabt + stubs_offsetb vector_dabt + stubs_offsetb vector_addrexcptn + stubs_offsetb vector_irq + stubs_offsetb vector_fiq + stubs_offsetARM的异常处理向量表在entry-armv.S文件中:1.2 中断向量表类型From ARM.globl __vectors_start 定义__vectors_start符号,这样外部程序可以访问到。
__vectors_start:定义异常(地址逻辑自上而下0x00----0x1c) 跟具体的cpu 特性有关ARM( swi SYS_ERROR0 )向量0:reset,但是这里被修改了,如果是cpu跑到了0地址,用软件中断SYS_ERROR0来处理.THUMB( svc #0)向量1THUMB( nop)向量2W(b) vector_und + stubs_offset 向量3 #未定义指令异常W(ldr) pc, .LCvswi + stubs_offset 向量4#软中断W(b) vector_pabt + stubs_offset #向量5指令预取异常中断(Prefetch Abort )W(b) vector_dabt + stubs_offset #向量6数据中止W(b) vector_addrexcptn + stubs_offset #向量7地址异常These aren't too critical.W(b) vector_irq + stubs_offset #向量8.IRQ(一般中断)W(b) vector_fiq + stubs_offset #向量9 FIQ(快速中断)/*关于.globl指令:.global/.globl 命令.global symbol.global 使得连接程序(ld)能够识别 symbl声明symbol是全局可见的。
dsp 中断向量表
中断向量表单片机的程序一般情况下上电之后是从0x0地址开始运行的,而0x0后面是关于硬件的一些对应的中断的入口地址。
所以中断向量表其实就是硬件查表跳转表,相当于C语言的switch 语句。
如:Switch(i){Case 0: goto reset;Case 1: goto int0 ;….}关于I的值就是硬件给出的中断向量。
2406中断向量表:.ref _bad_trap.ref _c_int0.sect "vectors" ;自定义段名_vector: ;向量表地址标识RSVECT B _c_int0 ;C项目初始化入口地址INT1 B _bad_trap ;没有用到的中断跳转到非法中断陷阱INT2 B _bad_trapINT3 B _PM6 ;有用到的中断,则写其实际中断的地址或标号INT4 B _bad_trap ; PM 8 Int level 4 7INT5 B _bad_trap ; PM A Int level 5 8INT6 B _bad_trap ; PM C Int level 6 9……..endPAGE 0 : /* program memory */ VECS: origin = 00000h, length = 0007Fhvectors : > VECS PAGE = 0这样就可以把中断向量表写到正确的地址。
.ref _bad_trap 这个标号外部没有定义,为什么还用.ref,而不是用..global?因为_bad_trap在这里只是声明函数,它实际函数可能是.C文件里的bad_trap()函数。
CPU中断向量地址和外设中断向量PIV有什么不同?什么是外设中断向量PIV?一个CPU中断包括好几个外设中断,如INT1包括了PDPINTA、PDPINTB、ADCINT、XINT1、XINT2、SPIINT、RXINT、TXINT、CANMBINT、CANERINT。
单片机中断号、中断源及中断向量的对应关系
单片机中断号、中断源及中断向量的对应关系1.引言1.1 概述概述概述部分将介绍单片机中断的概念和作用。
单片机中断是指CPU在执行某个任务的过程中,由于外部事件的发生而被迫中断当前任务,转而去执行其他任务,待中断事件处理完毕后再返回原任务继续执行。
它是一种实现多任务处理的重要机制,也是提高单片机并发性能和系统响应速度的关键技术。
单片机中断的作用主要有以下几个方面:1. 提高系统的实时性:当需要对某些事件进行实时处理时,使用中断可以使系统快速响应,及时处理外部事件。
例如,在控制系统中,当某个传感器检测到某个事件发生时,可以通过中断及时读取传感器数据并进行相应的控制。
2. 实现多任务处理:通过合理设置中断优先级,可以实现多个任务的高效切换执行。
这样一来,即使单片机在处理一个任务的同时发生了其他紧急事件,也可以及时中断当前任务去处理这个紧急事件,从而提高系统的并发性。
3. 减少系统资源浪费:使用中断可以有效利用系统资源。
例如,当需要等待外部事件发生时,使用中断可以使CPU暂停执行,而不必浪费掉CPU 的处理能力。
这样一来,CPU 可以利用这段时间去处理其他任务,提高系统的整体效率。
在单片机中,中断源是指可以触发中断的硬件或软件事件,如外部中断、定时器中断、串口中断等。
而中断号则是为了区分不同中断源而定义的一个编号。
中断向量表是一个存储中断服务程序入口地址的表格,用于建立中断号与对应中断服务程序的映射关系。
接下来,本文将详细介绍中断向量表的概念和作用,并解释中断号和中断源的含义。
通过深入理解单片机中断号、中断源和中断向量之间的关系,可以更好地理解单片机中断的机制和应用。
1.2文章结构文章结构:本文将围绕单片机中断号、中断源以及中断向量的对应关系展开讨论。
总体上,本文分为引言、正文和结论三个部分。
引言部分首先介绍单片机中断的概念和作用,说明了中断在单片机系统中的重要性和应用场景。
接着,文章结构的目的是为读者提供一个清晰的章节结构和内容安排,以便更好地组织和理解全文的内容。
软硬中断以及中断向量表
软硬中断以及中断向量表概述中断(英语:Interrupt)是指处理器接收到来⾃硬件或软件的信号,提⽰发⽣了某个事件,应该被处理器注意,这种情况就称为中断。
通常,在接收到来⾃外围硬件(相对于中央处理器和内存)的异步信号,或来⾃软件的同步信号之后,处理器将会进⾏相应的硬件/软件处理。
发出这样的信号称为进⾏中断请求(interrupt request,IRQ)。
硬件中断导致处理器通过⼀个运⾏信息切换(context switch,也叫上下⽂切换)来保存执⾏状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的⼀个指令,以可编程的⽅式直接指⽰这种运⾏信息切换,并将处理导向⼀段中断处理代码。
中断在计算机多任务处理,尤其是即时系统中尤为有⽤。
这样的系统,包括运⾏于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。
中断是⽤以提⾼计算机⼯作效率、增强计算机功能的⼀项重要技术。
最初引⼊硬件中断,只是出于性能上的考量。
如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进⾏忙等待(Busy waiting),反复轮询该设备是否完成了动作并返回结果。
这就造成了⼤量处理器周期被浪费。
引⼊中断以后,当处理器发出设备请求后就可以⽴即返回以处理其他任务,⽽当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。
这样,在设备进⾏处理的周期内,处理器可以执⾏其他⼀些有意义的⼯作,⽽只付出⼀些很⼩的切换所引发的时间代价。
后来被⽤于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个⽅⾯,并产⽣通过软件⽅式进⼊中断处理(软中断)的概念。
在硬件实现上,中断可以是⼀个包含控制线路的独⽴系统,也可以被集成进存储器⼦系统中。
对于前者,在IBM个⼈机上,⼴泛使⽤(Programmable Interrupt Controller,PIC)来负责中断响应和处理。
中断向量
习题八中断控制器8.1 8088/8086CPU管理有哪些中断源?各种中断的产生条件是什么?【答】NMI中断和INTR中断。
INTR中断产生的条件是:无总线请求、FR.IF=1、CPU执行完当前指令。
8.2 8088/8086中断向量表的作用是什么?【答】中断向量是中断服务程序的入口地址。
将所有中断向量集中放在一起,形成中断向量表。
8086系统有256个类型的中断源。
每个类型对应一个中断向量,一个中断向量由四个字节组成:2个高地址字节:存放中断服务程序的代码段的段值;2个低地址字节:存放中断服务程序的偏移地址。
中断向量表放在内存的地段地址0单元开始的单元:00000H~03FFFH。
8.3 什么叫中断向量?它放在哪里?对应于1CH的中断向量在哪里?如1CH中断程序从5110H:2030H开始,则中断向量应怎样存放?【答】中断向量是中断处理子程序的入口地址,它放在中断向量表中,由1ch*4=70h知中断向量存放在0000:0070处。
由于中断处理入口地址为5110:2030所以0070H,0071H,0072H,0073H 这四个单元的值分别为30H,20H,10H,51H。
8.4 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中是什么内容?【答】当CPU在INTR引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU 就会在当前指令执行完后开始响应外部的中断请求,具体如下:1、从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中;2、将标志寄存器的值推入堆栈;3、将标志寄存器中IF和TF清零;4、将断点保护到堆栈中;5、根据中断类型获取中断向量转入中断处理子程序;6、处理完后恢复现场。
响应后堆栈的顶部4个单元是IP,CS。
8.5 从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范围?【答】从8086/8088的中断向量表中可以看出,由于系统占用了部分中断类型码,主要包括:(1)专用中断:0~4,占中断向量表000~013H。
中断向量表详解
8.4 BIOS中断调用8.4.1 BIOS中断调用概述BIOS (BasicInput/OutputSystem)是IBM-PC机的监控程序,它固化在微型机主板的ROM中,其内容主要有系统测试程序 (Post)、初始化引导程序(Boot)、I/O设备的基本驱动程序和许多常用程序模块,它们一般以中断服务程序的形式存在。
例如,负责显示输出的显示 I/O程序为10H号中断服务程序;负责打印输出的打印I/O程序为17H中断服务程序等。
图8.5 是用户程序和操作系统关系示意图,由图可见BIOS程序直接建立在硬件基础上,磁盘操作系统(DOS)和其他操作系统建立在BIOS基础上,各种高级语言 则建立在操作系统基础上。
用户程序可以使用高级语言,也可以调用DOS 或其他操作系统,还可以调用BIOS,甚至直接指挥硬件设备。
通常应用程序调用DOS提供的系统功能,完成输入/输出或其他操作,这样做用户可以少考虑硬件,实现起来容易。
图8.5 用户程序和操作系统关系示意图应用程序直接对硬件编程的优点是程序的效率高,缺点是需要程序员对硬件性能有较深的了解。
总的来说,编程复杂,所以一般不直接对硬件编程。
BIOS中断程序处于DOS功能调用和硬件环境之间。
和DOS功能调用相比其优点是效率高,缺点是编程相对复杂;和直接对硬件编程相比,优点是实现相对容易,缺点是效率相对低。
在下列情况下可考虑使用BIOS中断:(1)有些功能DOS没有提供,但BIOS提供了;(2)有些场合无法使用DOS功能调用;(3)其他原因。
8.4.2BIOS中断调用方法BIOS的调用实际上是利用每一台计算机中BIOS固有的I/O操作程序来方便地解决自己的问题,由于这些已经在计算机中了,故使用时不必要再把它写入自己的程序,只要指明它的操作位置就可以了。
1.BIOS调用的基本操作由于BIOS中的每一种功能调用往往包含不同的几个操作细节,因此调用时需要说明三部分,基本步骤为:(1)设置分功能号。
设置和获取中断向量
2.获取中断向量 获取中断向量也有两种常用方法:直接读取法 和使用DOS功能调用法。
方法1:直接读取法 利用MOV指令直接读取中断向量。 例 利用直接读取法读取n号中断向量,并保存在双字 变量OLDVECTOR中: XOR AX,AX MOV ES,AX MOV AX,ES∶[n*4] MOV WORD PTR OLDVECTOR,AX MOV AX,ES∶[n*4+2] MOV WORD PTR OLDVECTOR+2,AX
CLI MOV WORD PTR[BX],OFFSET INTHAND MOV WORD PTR[BX+2],SEG INTHAND STI MOV AX,0 MOV DS,AX MOV BX,n*4
方法2:使用DOS功能调用法 使用25H号DOS功能调用 可以设置中断向量,出口参数如下: 预置:AH=25H
设置和获取中断向量 在系统程序或应用程序由于某种需要而提供新的 中断处理程序时,就要设置对应的中断向量,使其指向 方法:直接写入法和使用DOS 调用法。 方法1:直接写入法 用MOV指令将中断向量直接写入 中断向量表,下面是一个直接写入法的例子。 例 使用直接写入法设置中断向量。
MOV AH,35H MOV AL,n INT 21H MOV WORD PTR OLDVECTOR,ES MOV WORD PTR OLDVECTOR,BX
方法2:使用DOS功能调用法 利用35H号 DOS功能调用 可以取得指定中断号的中断向量,其出入口参数如下: 预置:AL=中断类型号 执行:INT 21H 功能:读取指定中断的中断向量,其中: ES=中断处理程序的段地址 BX=中断处理程序的偏移地址 例7-4 使用DOS功能调用取得n号中断的中断向量
中断向量表
中断向量表中断向量表是DSP程序的重要组成部分,当有中断发生并且处于允许状态时,程序指针跳转到中断向量表中对应的中断地址。
由于中断服务程序一般较长,通常中断向量表存放的是一个跳转指令,指向实际的中断服务程序。
下面是5402中断向量表的一个范例,可以作为模板,使用时稍作修改就行:******************************************************************5402Vectors.asm*完整的5402中断向量表示例*5402共有30个中断向量,每个向量占4个字的空间。
*使用向量一般用一条跳转指令转到相应中断服务子程序,其余空位用NOP填充*未使用的向量直接用RETE返回,是为了防止意外进入未用中断。
*****************************************************************.sect ".vectors" ;开始命名段.vecotrs.global CodeStart ;引用程序入口的全局符号定义…;引用其它中断程序入口的全局符号定义.align 0x80 ;中断向量表必须对齐128字的页边界RESET: B CodeStart; Reset中断向量,跳转到程序入口NOP ;用NOP填充表中其余空字NOP ;B指令占了两个字,所以要填两个NOPNMI: RETE ;不可屏蔽中断NOPNOPNOP; 软件中断SINT17 .space 4*16 ;软件中断使用较少,简单起见用0填充SINT18 .space 4*16SINT19 .space 4*16SINT20 .space 4*16SINT21 .space 4*16SINT22 .space 4*16SINT23 .space 4*16SINT24 .space 4*16SINT25 .space 4*16SINT26 .space 4*16SINT27 .space 4*16SINT28 .space 4*16SINT29 .space 4*16SINT30 .space 4*16INT0: RETE ;外部中断INT0NOPNOPINT1: RETE ;外部中断INT1NOPNOPNOPINT2: RETE ;外部中断INT2NOPNOPNOPTINT: RETE ;Timer0中断NOPNOPNOPBRINT0: RETE ;McBSP #0 接收中断NOPNOPNOPBXINT0: RETE ;McBSP #0 发送中断NOPNOPNOPDMAC0: RETE ;无定义(默认)DMA0中断NOPNOPNOPTINT1: RETE ;Timer1中断(默认)或DMA1中断. NOPNOPNOPINT3: RETE ;外部中断3NOPNOPNOPHPINT: RETE ;HPI中断NOPNOPBRINT1: RETE ;McBSP #1接收中断(默认)或DMA2中断NOPNOPNOPBXINT1: RETE ;McBSP #1发送中断(默认)或DMA3中断NOPNOPNOPDMAC4: RETE ;DMA4中断NOPNOPNOPDMAC5: RETE ;DMA5中断NOPNOPNOP.end*vectors.asm for 方波发生*在本实验中只要把在开头加上中断子程序标号的引用,并在中断表的TINT部分换成跳转指令就行了:.sect ".vectors" ;开始命名段.vecotrs.global CodeStart ;引用程序入口的全局符号定义.global TINT0_ISR ;引用Timer0中断子程序<节省篇幅,中间省略>TINT: B TINT0_ISR ;Timer0中断NOPNOPBRINT0: RETE ;McBSP #0 receive interrupt<节省篇幅,下略>技巧提示:只有第一个中断(Reset中断)是每个程序都应该有的,在不需要其它中断的情况下,可以只用这一部分,后面可以省略。
简述中断向量表及其作用
简述中断向量表及其作用
中断向量表简称IV,是计算机科学家用来提高安全性的一种工具。
例如,它可以在加密算法中起到重要作用,如Twofish、AES等,也可以应用于网络安全领域,如IPsec等。
IV表示一个有序的、可复制的、用于加密数据的“许可”,并且它是加密算法中不可或缺的一部分。
从定义上讲,中断向量表(IV)是一个特定大小的字符串,它是在特定的加密算法中用于装入加密轮的。
其作用是,在特定时刻,根据用于初始化加密轮的IV值确定每一轮加密的起始位置,从而阻止恢复秘密。
IV的大小一般为8个字节,也可以是16个字节或更多,取决于所采用的加密算法的复杂性。
对安全来说,IV的最重要作用是防止重放攻击(Replay attack),该攻击是指攻击者可以抓取加密后的数据,然后重复发送以实现一定的目的。
IV为被加密数据添加额外的随机性,从而使相同的明文加密后产生的不同的密文,从而防止重放攻击。
IV的另一种重要作用是它可以防止解密并重新加密的攻击(Decrypt and reencrypt attack),也就是攻击者可以解密用户的数据,然后重新加密,使用自己的密钥。
IV为加密轮提供了足够的随机性,使得攻击者无法确定哪一轮会加密和解密,从而影响重新加密的行为,因此可以有效防止此类攻击。
因此,中断向量表是计算机科学家最常用的工具之一,具有重要的安全作用,是防止重放攻击和解密重新加密攻击的重要组成部分。
它的大小一般在8-16个字节左右,根据不同的算法有所不同,但是IV都是加密算法的一部分,而且也是加密软件一般都会使用的安全技术。
中断向量表——精选推荐
中断向量表中断向量地址⼀览表⼀、8088中断向量0-3 4-7 8-B C-F 10-13 14-17 18-1F123456,7除以零单步(⽤于DEBUG)⾮屏蔽中断断点指令溢出打印屏幕保留⼆、8259中断向量20-23 24-27 28-2B 2C-2F 30-33 34-37 38-3B 3C-3F 89ABCDEF定时器键盘彩⾊/图形异步通讯(secondary)异步通讯(primary)硬磁盘软磁盘并⾏打印机三、BIOS中断40-43 44-47 48-4B 4C-4F 50-53 54-57 58-5B 5C-5F 60-63 64-67 68-6B 101112131415161718191A屏幕显⽰设备检验测定存储器容量磁盘I/O串⾏通讯⼝I/O盒式磁带I/O键盘输⼊打印机输出BASIC⼊⼝代码引导装⼊程序⽇时钟四、提供给⽤户的中断6C-6F 70-731B1CCtrl-Break控制的软中断定时器控制的软中断五、数据表指针74-77 78-7B 7C-7F 1D1E1F显⽰器参量表软盘参数表图形表六、中断80-83 84-87 88-8B 8C-8F 20212223程序结束系统功能调⽤结束退出Ctrl-Break退出90-93 94-97 98-9B 9C-9F A0-BB BC-BF C0-FF2425262728-2E2F30-3F严重错误处理绝对磁盘读功能绝对磁盘写驻留退出DOS保留打印机DOS保留七、BASIC中断100-17F 180-19F 1A0-1FF 200-217 218-3C3 3C4-3FF 40-5F60-6768-7F80-8586-F0F1-FF保留⽤户软中断保留由BASIC保留BASIC中断保留DOS功能调⽤* AH=0-2E适⽤DOS1.0以上版本;*AH=2F-57适⽤DOS2.0以上版本;*AH=58-62适⽤DOS3.0以上版本.BIOS中断INT AH功能调⽤参数返回参数100设置显⽰⽅式AL=00 40*25⿊⽩⽅式=01 40*25彩⾊⽅式=02 80*25⿊⽩⽅式=03 80*25彩⾊⽅式=04 320*200彩⾊图形⽅式=05 320*200⿊⽩图形⽅式=06 640*200⿊⽩图形⽅式=07 80*25单⾊⽂本⽅式=08 160*200 16⾊图形=09 320*200 16⾊图形=0A 640*200 16⾊图形=0B 保留(EGA)=0C 保留(EGA)=0D 320*200彩⾊图形(EGA)=0E 640*200彩⾊图形(EGA)=0F 640*350⿊⽩图形(EGA)=10 640*350彩⾊图形(EGA)=11 640*480单⾊图形(EGA)=12 640*480 16⾊图形(EGA)=13 320*200 256⾊图形(EGA)=40 80*30彩⾊⽂本(CGE400)=41 80*50彩⾊⽂本(CGE400)=42 640*400彩⾊⽂本(CGE400)101置光标类型(CH)0-3=光标起始⾏(CL)0-3=光标结束⾏102置光标位置BH=页号,DH,DL=⾏,列103读光标位置BH=页号CH=光标起始⾏,DH,DL=⾏,列104读光笔位置AH=0光笔未触发,=1光笔触发CH=象素⾏, BX=象素列,DH=字符⾏,DL=字符列105置显⽰页AL=页号106屏幕初始化或上卷AL=上卷⾏数,AL=0整个窗⼝空⽩BH=卷⼊⾏属性,CH=左上⾓⾏号,CL=左上⾓列号,CH=右下⾓⾏号,DL=右下⾓列号107屏幕初始化或下卷AL=下卷⾏数,AL=0整个窗⼝空⽩BH=卷⼊⾏属性,CH=左上⾓⾏号,CL=左上⾓列号,DH=右下⾓⾏号,DL=右下⾓列号108读光标位置的字符和属性BH=显⽰页AH=属性,AL=字符109在光标位置显⽰字符及其属性BH=显⽰页,AL=字符,BL=属性CX=字符重复次数10A在光标位置显⽰字符BH=显⽰页,AL=字符CX=字符重复次数10B置彩⾊调板(320*200图形)BH=彩⾊调板IDBL=和ID配套使⽤的颜⾊10C写象素DX=⾏(0-199) CX=列(0-639)AL=象素值10D读象素DX=⾏(0-199) CX=列(0-639)AL=象素值10E显⽰字符(光标前移)AL=字符,BL=前景⾊10F取当前显⽰⽅式AH=字符列数,AL=显⽰⽅式1013显⽰字符串(适⽤AT)ES:BP=串地址,CX=串长度DH,DL=起始⾏,列,BH=页号AL=0,BL=属性串:char,char...AL=1,BL=属性串:char,char...AL=2 光标返回起始位置 光标跟随移动光标返回起始位置AL=2串:char,attr,char, attr,... AL=3串:char,attr,char,attr,...光标返回起始位置 光标跟随移动11设备检验AX=返回值bit0=1,配有磁盘bit1=1,80287协处理器bit4,5=01,40*25BW(彩⾊板)=10,80*25BW(彩⾊板)=11,80*25BW(⿊⽩板)bit6,7=软盘驱动器号bit9,10,11= RS-232板号bit12=游戏适配器bit13=串⾏打印机bit14,15=打印机号12测定存储器容量AX=字节数(KB)130软盘系统复位131读软盘状态AL=状态字节132读磁盘AL=扇区数CH,CL=磁道号,扇区号DH,DL=磁头号,驱动器号ES:BX=数据缓冲区地址读成功:AH=0AL=读取的扇区数读失败:AH=出错代码133写磁盘同上写成功:AH=0 AL=写⼊的扇区数写失败: AH=出错代码134检验磁盘扇区同上(ES:BX不设置)成功:AH=0 AL=检验的扇区数失败:AH=出错代码135格式化盘磁道ES:BX=磁道地址成功:AH=0 失败:AH=出错代码140初始化串⾏通讯⼝AL= 初始化参数DX=通讯⼝号(0,1)AH = 通讯⼝状态AL = 调制解调器状态141向串⾏通讯⼝写字符AL=字符,DX=通讯⼝号(0,1)写成功:(AH)7=0写失败:(AH)7=1(AH)0-5=通讯⼝状态142从串⾏通讯⼝读字符DX=通讯⼝号(0,1)读成功:(AH)7=0,(AL)=字符读失败:(AH)7=1,(AH)0-6=通讯⼝状态143取通讯⼝状态DX=通讯⼝号(0,1)AH=通讯⼝状态AL=调制解调器状态150启动盒式磁带马达151停⽌盒式磁带马达152磁带分块读ES:BX=数据转输区地址AH=状态字节CX=字节数AH=00读成功,=01冗余检验错=02⽆数据传输,=04⽆引导,=80⾮法命令AH=状态字节(同上)153磁带分块写DS:BX=数据传输区地址CX=字节数160从键盘读字符AL=字符码,AH=扫描码161读键盘缓冲区字符ZF=0 AL=字符码,AH=扫描码ZF=1 缓冲区空162取键盘状态字节AL=键盘状态字节170打印字符,回送状态字节AL=字符,DX=打印机号AH=打印机状态字节DX=打印机号AH=打印机状态字节171初始化打印机,回送状态字节172取状态字节DX=打印机号AH=打印机状态字节1A0读时钟CH:CL=时:分DH:DL=秒:1/100秒1A1置时钟CH:CL=时:分,DH:DL=秒:1/100秒1A2读实时钟CH:CL=时:分(BCD)DH:DL=秒:1/100秒(BCD)1A6置报警时间CH:CL=时:分(BCD)DH:DL=秒:1/100秒(BCD)1A7清除报警。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我的DSP之路-关于中段向量的一些心得与问题
2008-2-26
中断向量表的编写
.ref _bad_trap ; 这个标号外部没有定义,为什么还用.ref,而不是
用..global?
.ref _c_int0 ; entry point to the code .sect "vectors" ;自定义段名_vector: ;向量表地址标识RSVECT B _c_int0 ;_c_int0复位程序入口地址
INT1 B _bad_trap ;没有用到的中断跳转到非法中断陷阱INT2 B _bad_trap ;前面的标号INT2只是为了让人更容易理解是这是
什
;么中断的向量,还是有其它的什么用处?INT3 B PM6 ;有用到的中断,则写其实际中断的地
址或标号
INT4 B _bad_trap ; PM 8 Int level
4 7
INT5 B _bad_trap ; PM A Int level
5 8
INT6 B _bad_trap ; PM C Int level
6 9
…….
.end
PAGE 0 : /* program memory */ VECS: origin = 00000h, length = 0007Fh
vectors : > VECS PAGE = 0
这样就可以正确装入中断向量表
CPU中断向量地址和外设中断向量PIV有什么不同?什么是外设中断向量PIV?
中断的优先级是否固定不可变,还是说书中列出的是默认的优先级?
ADC、外部引脚、SPI、SCI、CAN邮箱、CAN错误有高低优先级选择,其它的优先级固定。
为什么同一个中断源里的中断还有不同的中断优先级?进的是同一个中断程序,不同优先级
有什么作用?
2008-2-27
按例子改的lf2406a中断向量表:
; ssembly language code, vectors for test code on TMS320C2406
; filename: Vectors.asm
*/
; original: 02/27/2008 by:
CQ */
; last update: 02/27/2008 by:
CQ */
.ref _bad_trap ; illegal trap
.ref int0 ; entry point to the code
.global _vector
; also check the conditional compile in ; scidrv.c and scidrv.h
.sect "vectors"
_vector:
RSVECT B int0 ;复位
INT1 B _bad_trap ; 外部中断1
DPINTA EVA
功率驱动保护引脚中断
DPINTB EVB功
率驱动保护引脚中断
;ADCINT
高优先级
;XINT1
高优先级
;XINT2
高优先级外部引脚中断
;SPIINT
高优先级
;RXINT
高优先级 SCI接收中断
;TXINT
高优先级 SCI发送中断
;CANMBINT 高优先
级 CAN邮箱中断
;CANERINT 高优先
级 CAN错误中
断
INT2 B _bad_trap ;外部中断1
;CMP1INT
比较器中断
;CMP2INT
;CMP3INT
;TIPINT
定时器1周期中断
;T1CINT
定时器1比较中断
;T1UFINT
定时器1下溢中断
;T1OFINT
定时器1上溢中断
;CMP4INT
;CMP5INT
;CMP6INT
;T3PINT
;T3CINT
;T3UFINT
;T3OFINT
INT3 B _bad_trap ;外部中断3
;T2PINT
;T2CINT
;T2UFINT
;T2OFINT
;T4PINT
;T4CINT
;T4UFINT
;T4OFINT
INT4 B _bad_trap ;外部中断4
;CAP1INT 捕获中
断1
;CAP2INT
;CAP3INT
;CAP4INT
;CAP5INT
;CAP6INT
INT5 B _bad_trap ;外部中断5
;SPIINT
低优先级
;RXINT
低优先级 SCI接收中断
;TXINT
低优先级 SCI发送中断
;CANMBINT 低优先
级 CAN邮箱中断
;CANERINT 低优先
级 CAN错误中断
INT6 B _bad_trap ;外部中断6
;ADCINT
低优先级
;XINT1
低优先级外部引脚中断
;XINT2 低优
先级外部引脚中断
RESERVED B _bad_trap ;保留,分析中断用SW_INT8 B _bad_trap ;软件中断8~16 SW_INT9 B _bad_trap ;
SW_INT10 B _bad_trap ;
SW_INT11 B _bad_trap ;
SW_INT12 B _bad_trap ;
SW_INT13 B _bad_trap ;
SW_INT14 B _bad_trap ;
SW_INT15 B _bad_trap ;
SW_INT16 B _bad_trap ;
TRAP B _bad_trap ;TRAP指令中断NMI B _bad_trap ;不可屏蔽软中断EMU_TRAP B _bad_trap ;用于仿真SW_INT20 B _bad_trap ;软件中20~31 SW_INT21 B _bad_trap ;
SW_INT22 B _bad_trap ;
SW_INT23 B _bad_trap ;
SW_INT24 B _bad_trap ;
SW_INT25 B _bad_trap ;
SW_INT26 B _bad_trap ;
SW_INT27 B _bad_trap ;
SW_INT28 B _bad_trap ;
SW_INT29 B _bad_trap ;
SW_INT30 B _bad_trap ;
SW_INT31 B _bad_trap ;
.end。