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

下载本文档

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

文档简介

第3讲TMS320C54xDSP的中断系统§3.1TMS320C54xDSP中断系统概述中断:是由硬件驱动或者软件驱动的信号

DSP既支持软件中断,也支持硬件中断:

(1)软件中断:由程序指令执行如:INTR、TRAP或RESET(2)硬件中断:由外设产生的信号

1)外部:由外部中断口信号触发,如AD,DA2)内部:由片内外设信号触发,如定时器§3.1中断系统概述—续1.中断分类(1)可屏蔽中断:可以用软件来屏蔽或使能的硬件和软件中断(2)非屏蔽中断:无法用软件屏蔽,一旦发生,CPU立即响应从主程序转移到中断服务程序(ISR)

共16个:14个软件中断,用软件控制

2个外部硬件中断/RS和/NMI/RS:对DSP所有操作方式产生影响的非屏蔽中断

/NMI:不会对DSP的任何操作模式产生影响§3.1中断系统概述—续2.处理中断的三个步骤:

(1)接收中断请求。通过软件(程序代码)或硬件(引脚或片内外设)请求挂起主程序。如果中断源正在请求一个可屏蔽中断,则当中断被接收到时中断标志寄存器(IFR)的相应位被置1。(2)应答中断。DSP必须应答中断请求。如果中断是可屏蔽的,则预定义条件的满足与否决定DSP如何应答该中断。如果是非屏蔽硬件中断和软件中断,中断应答是立即的。(3)执行中断服务程序(ISR)。一旦中断被应答,DSP执行中断向量地址所指向的分支转移指令,并执行中断服务程序(ISR)。§3.2中断标志寄存器(IFR)中断标志寄存器是一个存储器映射的CPU寄存器,可以识别和清除有效的中断。当一个中断出现的时候,IFR中的相应的中断标志位置1,直到CPU识别该中断为止。以下四种情况都会将中断标志清除:

(1)DSP复位(/RS引脚为低电平)。

(2)中断得到处理。

(3)将1写到IFR中的适当位(相应位变成0),相应的尚未处理完的中断被清除。

(4)利用合适的中断号执行INTR指令,相应的中断标志位清0。§3.3中断屏蔽寄存器(IMR)主要用来屏蔽外部和内部中断。如果状态寄存器ST1中的INTM位=0,IMR的某一位为1,使能相应的中断。用户可以对IMR寄存器进行读写操作。§3.4接收中断请求一个中断由硬件器件或软件指令产生(1)硬件中断请求来自外部中断:RS和NMI引脚;INT3~INT0引脚来自片内外设:串行口中断:接收中断:BRINT0,BRINT1

发送中断:BXINT0,BXINT1

定时器中断:TINT0,TINT1DMA中断:DMAC5~DMAC0HPI中断:HPINT§3.4接收中断请求—续(2)软件中断请求

1)INTRK;0≤K≤31

该指令允许执行任何一个中断服务程序。指令操作数(K)表示CPU分支转移到哪个中断向量地址。在响应中断时,ST1寄存器的中断模式位INTM=1,屏蔽所有可屏蔽中断。

2)TRAPK;0≤K≤31:该指令执行的功能与INTR指令一致,但不用设置INTM位。INTRK指令TRAPK指令§3.4接收中断请求—续3)RESET:该指令执行一个非屏蔽软件复位,可以在任何时候被使用并将DSP置于已知状态。RESET指令影响ST0和ST1寄存器,但是不会影响PMST寄存器。

/RS硬复位,ST0,ST1,PMST初始化§3.5应答中断软件中断和非屏蔽硬件中断:立刻响应可屏蔽中断:(仅仅在如下条件满足后才被响应)(1)优先级最高。(2)INTM位清0。

1)当INTM=0,所有未屏蔽中断被使能。

2)当INTM=1,所有可屏蔽中断被禁止。当响应一个中断后,INTM位被置1。如果程序使用RETE指令退出中断服务程序(ISR)后,从中断返回后INTM=0重新使能。使用硬件复位(/RS)或执行SSBXINTM指令,会将INTM位置1。通过执行RSBXINTM指令,将INTM位复位清0。INTM不会自动修改IMR或IFR。

(3)IMR屏蔽位为1。(使能一个中断)§3.6执行中断服务程序(ISR)当应答中断后,CPU会采取如下的操作:(1)保存程序计数器(PC)值(返回地址)到数据存储器的堆栈项部。(将PC值压入堆栈)(2)将中断向量的地址加载到PC。(3)取出中断向量地址处的指令。(4)执行分支转移,转到中断服务程序(ISR)地址。(5)执行ISR,直到一个返回指令中止ISR。(6)将返回地址从堆栈中弹出到PC中。(7)继续执行主程序。§3.7保存中断上下文当执行一个中断服务程序时,一些寄存器必须保存在堆栈中。PSHM和POPM:对CPU寄存器和外设寄存器进行保存和取出。PSHD和POPD:对数据存储器中的数据进行保存或读出。PSHM指令POPM指令PSHD指令POPD指令§3.9中断操作流程中断操作流程§3.10重新映射中断向量地址中断向量可以映射到程序存储器的任何128字页面的起始位置,除保留区域外。中断向量地址是由PMST寄存器中的IPTR(9位中断向量指针)和左移2位后的中断向量序号(中断向量序号为0~31,左移2后变成7位)所组成。例:IPTR=0001h,/INT0的中断向量号为16或10h,则中断向量的地址为00C0h

。§3.11中断和中断向量表中断号(K)优先级名称向量位置功能01RS/SINTR0复位(硬件和软件复位)12NMI/SINT164非屏蔽中断2-SINT178软件中断#173-SINT18C软件中断#184-SINT1910软件中断#195-SINT2014软件中断#206-SINT2118软件中断#217-SINT221C软件中断#228-SINT2320软件中断#239-SINT2424软件中断#2410-SINT2528软件中断#2511-SINT262C软件中断#2612-SINT2730软件中断#2713-SINT2834软件中断#2814-SINT2938软件中断#2915-SINT303C软件中断#30§3.11中断和中断向量表中断号(K)优先级名称向量位置功能163INT0/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/SINT964HPI中断2613BRINT1/DMAC2/SINT1068McBSP#1接收中断/DMA通道2中断2714BXINT1/DMAC3/SINT116CMcBSP#1发送中断/DMA通道3中断2815DMAC4/SINT1270DMA通道4中断2916DMAC5/SINT1374DMA通道5中断30~31-保留78~7F保留§3.12VC5402的中断向量表文件程序中需要响应中断处理时,应将中断向量表文件加入到工程中去。这个文件的格式也比较固定,下面给出一个向量表文件的例程。;Filename:vectors.asm

.sect

“.vectors”

;sect表示:定义初始化自定义段,并且使后面的代码和数据与该段相关联。使用.sect定义的段可以包含可执行的代码和数据。

.ref_myISP

;主程序中的一个C中断响应函数

.ref_c_int00

;C程序执行入口,定义在rst.lib库中(C语言运行支持库,CCStudio

系统库,在此库中定义了_c_int00为C程序执行入口);.ref伪指令识别在当前模块中使用的但是在其它模块中所定义的符号。汇编器会标记该符号为未定义的外部符号,并且将他输入到目标符号表中,以便链接器能分辨它的定义。

.align128

;将段程序计数器SPC对准于1~128字的边界。确保在伪指令后的代码开始于第X个字或页面边界。如果SPC已经在所选的边界被对准,则它不会增加。§3.12VC5402的中断向量表文件—续RESET:;复位中断,优先级最高

BD_c_int00;执行完该语句下面的一条语句后,跳转到_c_int00处

STM#128,SP;设置堆栈大小为128个字nmi:RETE;nmi非屏蔽中断返回,下面依次为VC5402的各个中断,NOP;每个只占4个字节

NOPNOPsint17.space4*16;VC5402的软中断sint18.space4*16;.space表示开辟空间(单位:bit)sint19.space4*16sint20.space4*16sire21.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16;这部分可以直接写为.space14*4*16§3.12VC5402的中断向量表文件—续int0:B_myISP

;外部中断0入口点,2字指令

NOPRETEint1:RETE;外部中断1NOPNOPNOPint2:RETE;外部中断2NOPNOPNOPtint0:RETE;定时器0中断

NOPNOPNOPbrint0:RETE;多通道缓冲串口0接收数据中断

NOPNOPNOP§3.12VC5402的中断向量表文件—续bxi

温馨提示

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

评论

0/150

提交评论