DSP 第3讲 中断系统_第1页
DSP 第3讲 中断系统_第2页
DSP 第3讲 中断系统_第3页
DSP 第3讲 中断系统_第4页
DSP 第3讲 中断系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3讲 TMS320C54x DSP的中断系统3.1 TMS320C54x DSP中断系统概述l中断:是由硬件驱动或者软件驱动的信号中断:是由硬件驱动或者软件驱动的信号 lDSP既支持软件中断,也支持硬件中断:既支持软件中断,也支持硬件中断: (1) 软件中断软件中断: 由程序指令执行由程序指令执行 如:如:INTR、TRAP或或RESET (2) 硬件中断:由外设产生的信号硬件中断:由外设产生的信号 1)外部:由外部中断口信号触发,如外部:由外部中断口信号触发,如AD,DA 2)内部:由片内外设信号触发,如定时器内部:由片内外设信号触发,如定时器3.1 中断系统概述续1.中断分类中断分类(1

2、)可屏蔽中断:可以用软件来屏蔽或使能的硬件和软件中断可屏蔽中断:可以用软件来屏蔽或使能的硬件和软件中断(2)非屏蔽中断:无法用软件屏蔽,一旦发生,非屏蔽中断:无法用软件屏蔽,一旦发生,CPU立即响应立即响应 从主程序转移到中断服务程序从主程序转移到中断服务程序(ISR) 共共16个:个:14个软件中断,用软件控制个软件中断,用软件控制 2个外部硬件中断个外部硬件中断/RS和和/NMI /RS :对:对DSP所有操作方式产生影响的非屏蔽中断所有操作方式产生影响的非屏蔽中断 /NMI:不会对:不会对DSP的任何操作模式产生影响的任何操作模式产生影响3.1 中断系统概述续2.处理中断的处理中断的三个

3、三个步骤:步骤: (1)接收中断请求接收中断请求。通过软件。通过软件(程序代码程序代码)或硬件或硬件(引引脚或片内外设脚或片内外设)请求挂起主程序。如果中断源正请求挂起主程序。如果中断源正在请求一个可屏蔽中断,则当中断被接收到时中在请求一个可屏蔽中断,则当中断被接收到时中断标志寄存器断标志寄存器(IFR)的相应位被置的相应位被置1。(2)应答中断应答中断。DSP必须应答中断请求。如果中断必须应答中断请求。如果中断是可屏蔽的,则预定义条件的满足与否决定是可屏蔽的,则预定义条件的满足与否决定DSP如何应答该中断。如果是非屏蔽硬件中断和软件如何应答该中断。如果是非屏蔽硬件中断和软件中断,中断应答是立

4、即的。中断,中断应答是立即的。(3)执行中断服务程序执行中断服务程序(ISR)。一旦中断被应答,一旦中断被应答,DSP执行中断向量地址所指向的分支转移指令,执行中断向量地址所指向的分支转移指令,并执行中断服务程序并执行中断服务程序(ISR)。3.2 中断标志寄存器(IFR)中断标志寄存器是一个存储器映射的中断标志寄存器是一个存储器映射的CPU寄存器,可以识寄存器,可以识别和清除有效的中断。别和清除有效的中断。当一个中断出现的时候,当一个中断出现的时候,IFR中的中的相应的中断标志位置相应的中断标志位置1,直到,直到CPU识别该中断为止。识别该中断为止。以下以下四种情况都会将中断标志清除:四种情

5、况都会将中断标志清除: (1)DSP复位复位(/RS引脚为低电平引脚为低电平)。 (2)中断得到处理。中断得到处理。 (3)将将1写到写到IFR中的适当位中的适当位(相应位变成相应位变成0),相应的尚未处,相应的尚未处理完的中断被清除。理完的中断被清除。 (4)利用合适的中断号执行利用合适的中断号执行INTR指令,相应的中断标志位指令,相应的中断标志位清清0。3.3 中断屏蔽寄存器(IMR) l主要用来屏蔽外部和内部中断。主要用来屏蔽外部和内部中断。l如果状态寄存器如果状态寄存器ST1中的中的INTM位位0,IMR的的某一位为某一位为1,使能相应的中断。,使能相应的中断。l用户可以对用户可以对

6、IMR寄存器进行读写操作。寄存器进行读写操作。 3.4 接收中断请求l一个中断由硬件器件或软件指令产生一个中断由硬件器件或软件指令产生 (1)硬件中断请求硬件中断请求 来自外部中断:来自外部中断:RS和和NMI引脚;引脚;INT3INT0引脚引脚来自片内外设:来自片内外设: 串行口中断:接收中断:串行口中断:接收中断:BRINT0,BRINT1 发送中断:发送中断:BXINT0,BXINT1 定时器中断:定时器中断:TINT0,TINT1 DMA中断:中断:DMAC5DMAC0 HPI中断:中断:HPINT3.4 接收中断请求续(2)软件中断请求软件中断请求 1)INTR K ;0K31 该指

7、令允许执行任何一个中断服务程序。指令该指令允许执行任何一个中断服务程序。指令 操作数操作数(K)表示表示CPU分支转移到哪个中断向量地分支转移到哪个中断向量地址。址。在响应中断时在响应中断时,ST1寄存器的中断模式位寄存器的中断模式位INTM1,屏蔽所有可屏蔽中断。,屏蔽所有可屏蔽中断。 2)TRAP K ;0K31: 该指令执行的功能与该指令执行的功能与INTR指令一致,但指令一致,但不用设置不用设置INTM位。位。INTR K 指令TRAP K 指令3.4 接收中断请求续3)RESET:该指令执行一个非屏蔽软件复位,可以在任:该指令执行一个非屏蔽软件复位,可以在任何时候被使用并将何时候被使

8、用并将DSP置于已知状态。置于已知状态。RESET指令影指令影响响ST0和和ST1寄存器,但是不会影响寄存器,但是不会影响PMST寄存器。寄存器。 /RS 硬复位,硬复位,ST0,ST1,PMST初始化初始化3.5 应答中断l软件中断和非屏蔽硬件中断:立刻响应软件中断和非屏蔽硬件中断:立刻响应l可屏蔽中断:(仅仅在如下条件满足后才被响应)可屏蔽中断:(仅仅在如下条件满足后才被响应)(1)优先级最高。优先级最高。(2)INTM位清位清0。 1)当当INTM=0,所有未屏蔽中断被使能。,所有未屏蔽中断被使能。 2)当当INTM=1,所有可屏蔽中断被禁止。,所有可屏蔽中断被禁止。l当响应一个中断后,

9、当响应一个中断后,INTM位被置位被置1。l如果程序使用如果程序使用RETE指令退出中断服务程序指令退出中断服务程序(ISR)后,从中断返回后,从中断返回后后INTM0重新使能。重新使能。l使用硬件复位使用硬件复位(/RS)或执行或执行SSBX INTM指令,会将指令,会将INTM位置位置1。l通过执行通过执行RSBX INTM指令,将指令,将INTM位复位清位复位清0。INTM不会自动不会自动修改修改IMR或或IFR。 (3)IMR屏蔽位为屏蔽位为1。(使能一个中断)。(使能一个中断)3.6 执行中断服务程序(ISR)l当应答中断后,当应答中断后,CPU会采取如下的操作:会采取如下的操作:(

10、1)保存程序计数器保存程序计数器(PC)值值(返回地址返回地址)到数据存储到数据存储器的堆栈项部。器的堆栈项部。(将将PC值压入堆栈值压入堆栈)(2)将中断向量的地址加载到将中断向量的地址加载到PC。(3)取出中断向量地址处的指令。取出中断向量地址处的指令。(4)执行分支转移,转到中断服务程序执行分支转移,转到中断服务程序(ISR)地址。地址。(5)执行执行ISR,直到一个返回指令中止,直到一个返回指令中止ISR。(6)将返回地址从堆栈中弹出到将返回地址从堆栈中弹出到PC中。中。(7)继续执行主程序。继续执行主程序。 3.7 保存中断上下文 l当执行一个中断服务程序时,一些寄存器当执行一个中断

11、服务程序时,一些寄存器必须保存在堆栈中。必须保存在堆栈中。lPSHM和和POPM:对:对CPU寄存器和外设寄存寄存器和外设寄存器进行保存和取出。器进行保存和取出。lPSHD和和POPD:对数据存储器中的数据进:对数据存储器中的数据进行保存或读出。行保存或读出。PSHM 指令POPM 指令PSHD 指令POPD 指令3.9 中断操作流程中断操作流程中断操作流程3.10 重新映射中断向量地址l中断向量中断向量可以映射到程序存储器的任何可以映射到程序存储器的任何128字页面的起字页面的起始位置,除保留区域外。始位置,除保留区域外。l中断向量地址中断向量地址是由是由PMST寄存器中的寄存器中的IPTR

12、(9位中断向量位中断向量指针指针)和左移和左移2位后的中断向量序号位后的中断向量序号(中断向量序号为中断向量序号为031,左移,左移2后变成后变成7位位)所组成。所组成。l例:例:IPTR=0001h,/INT0的中断向量号为的中断向量号为16或或10h,则,则中断向量的地址为中断向量的地址为00C0h 。3.11 中断和中断向量表中断号中断号(K)优先级优先级名名 称称向量位置向量位置功功 能能01RS/SINTR0复位复位(硬件和软件复位硬件和软件复位)12NMI/SINT164非屏蔽中断非屏蔽中断2-SINT178软件中断软件中断#173-SINT18C软件中断软件中断#184-SINT

13、1910软件中断软件中断#195-SINT2014软件中断软件中断#206-SINT2118软件中断软件中断#217-SINT221C软件中断软件中断#228-SINT2320软件中断软件中断#239-SINT2424软件中断软件中断#2410-SINT2528软件中断软件中断#2511-SINT262C软件中断软件中断#2612-SINT2730软件中断软件中断#2713-SINT2834软件中断软件中断#2814-SINT2938软件中断软件中断#2915-SINT303C软件中断软件中断#303.11 中断和中断向量表中断号中断号(K)优先级优先级名名 称称向量位置向量位置功功 能能16

14、3INT0/SINT040外部用户中断外部用户中断#0174INT1/SINT144外部用户中断外部用户中断#1185IN12/SINT248外部用户中断外部用户中断#2196TINT0/SINT34C定时器定时器0中断中断207BRINT0/SINT450McBSP#0接收中断接收中断218BXINT0/SINT554McBSP#0发送中断发送中断229DMAC0/SINT658DMA通道通道0中断中断2310TINT1/DMAC1/SINT75C定时器定时器1(默认默认)/DMA通道通道1中断中断2411INT3/SINT860外部用户中断外部用户中断#32512HPINT/SINT964

15、HPI中断中断2613BRINT1/DMAC2/SINT1068McBSP#1接收中断接收中断/DMA通道通道2中断中断2714BXINT1/DMAC3/SINT116CMcBSP#1发送中断发送中断/DMA通道通道3中断中断2815DMAC4/SINT1270DMA通道通道4中断中断2916DMAC5/SINT1374DMA通道通道5中断中断3031-保留保留787F保留保留3.12 VC5402的中断向量表文件程序中需要响应中断处理时,应将中断向量表文件加入到工程中去。程序中需要响应中断处理时,应将中断向量表文件加入到工程中去。这个文件的格式也比较固定,下面给出一个向量表文件的例程。这个文

16、件的格式也比较固定,下面给出一个向量表文件的例程。 ;Filename:vectors.asm .sect“.vectors” ;sect表示:定义初始化自定义段,并且使后表示:定义初始化自定义段,并且使后面的代码和数据与该段相关联。使用面的代码和数据与该段相关联。使用.sect定义的段可以包含可执行定义的段可以包含可执行的代码和数据。的代码和数据。 .ref _myISP ;主程序中的一个;主程序中的一个C中断响应函数中断响应函数 .ref _c_int00 ;C程序执行入口,定义在程序执行入口,定义在rst.lib库中(库中(C语言运语言运行支持库,行支持库,CCStudio 系统库,在此

17、库中定义了系统库,在此库中定义了_c_int00为为C程序执程序执行入口)行入口) ;.ref伪指令识别在当前模块中使用的但是在其它模块中所定义的伪指令识别在当前模块中使用的但是在其它模块中所定义的符号。汇编器会标记该符号为未定义的外部符号,并且将他输入到符号。汇编器会标记该符号为未定义的外部符号,并且将他输入到目标符号表中,以便链接器能分辨它的定义。目标符号表中,以便链接器能分辨它的定义。 .align 128 ;将段程序计数器;将段程序计数器SPC对准于对准于1128字的边界。字的边界。确保在伪指令后的代码开始于第确保在伪指令后的代码开始于第X个字或页面边界。如果个字或页面边界。如果SPC

18、已经在已经在所选的边界被对准,则它不会增加。所选的边界被对准,则它不会增加。3.12 VC5402的中断向量表文件续RESET: ;复位中断,优先级最高;复位中断,优先级最高 BD _c_int00 ;执行完该语句下面的一条语句后,跳转到;执行完该语句下面的一条语句后,跳转到_c_int00处处 STM #128,SP ;设置堆栈大小为;设置堆栈大小为128个字个字 nmi:RETE ;nmi非屏蔽中断返回,下面依次为非屏蔽中断返回,下面依次为VC5402的各个中断,的各个中断, NOP ;每个只占;每个只占4个字节个字节 NOP NOP sint17 .space 4*16 ;VC5402的软中断的软中断 sint18 .space 4*16 ;.space表示开辟空间(单位:表示开辟空间(单位:bit)sint19 .space 4*16sint20 .space 4*16sire21 .space 4*16sint22 .space 4*16sint23 .space

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论