DSP中断实验报告.doc

DSP实验大作业 班级:020851 姓名:徐宏立 学号实验目的: ?了解和熟悉中断的原理 ?能够保护中断程序下条指令的地址,能够转到中断请求所相应的处理程序,能够回到原来的程序。 ?熟悉中断向量的访问。 ?熟悉用户模式,仿真模式和监控模式的相互转换过程。 ?熟悉FIR_DIR,FIR_FLAG_S,FIO_FLAG_C,FIO_EDGE,FIO_POLAR,FIO_MASKA_S,SIC_IMASK,IMASK的设置。 ?熟悉计时器的配置 实验任务 ?使用外部中断实现LED闪烁频率的改变 ?实现嵌套中断 实验分析: 中断的基本认识 处理器的事件控制器处理所有的同步和异步事件,并管理5种类型的事件:仿真、复位、非屏蔽中断(NMI)、异常和中断(11种)。 中断:一种改变处理器正常指令流的异步事件。 处理器在正常执行程序过程中,由于内部/外部事件的触发或程序的预先安排,引起处理器暂时中断当前正在运行的程序,而去执行内部/外部事件或程序预先安排事件的服务子程序。 ? 等中断服务子程序执行完毕后,处理器再返回到暂时中断程序处继续执行原来的程序。 事件系统有优先级而且可嵌套,优先级高的任务可以占用优先级低的任务的资源。 Blackfin DSP采用2级事件控制机制,一起控制所有系统中断并管理它们的优先级 ?1)系统中断控制器(SIC) ?2)内核事件控制器(CEC) SIC提供多个外设中断源和内核通用中断输入之间的映射。某个中断可以在SIC中屏蔽掉 CEC支持9个通用中断(IVG7~IVG15)。通常选用优先级最低的两个中断IVG14和IVG15作为软件中断 事件列表如下: 系统中断过程: 中断是由能够产生中断的外设产生的,系统中断过程简要概述为: 当一个中断产生时: ? = 1 \* GB3 ①SIC_IWR检查DSP内核是否从一个空闲状态中被中断唤醒 ? = 2 \* GB3 ②SIC_ISR记录中断请求,并且跟踪被激活但未被服务的系统中断 ? = 3 \* GB3 ③SIC_IMASK可以在系统级上屏蔽、使能外设的中断。如果有一个中断A未被屏蔽,那么中断请求过程进入下一步 ? = 4 \* GB3 ④SIC_IARx寄存器组用来将外设中断映射到通用的内核中断组(IVG7-IVGl5),并且决定中断A的优先级 ? = 5 \* GB3 ⑤ILAT将中断A记录在内核中,但此时该中断还没有真正被响应 ? = 6 \* GB3 ⑥IMASK屏蔽、使能不同优先级的内核中断。如果中断A对应的IVG事件没有被屏蔽,中断过程就进入下一步 ? = 7 \* GB3 ⑦访问事件向量表(EVT),查找中断A 的中断服务程序(ISR)的中断矢量。 = 8 \* GB3 ⑧当中断A 的事件矢量进入内核的流水线时,相应的IPEND位被置位,该位将清除对应的ILAT位。因此,IPEND可以记录所有的被系统挂起的中断和正在服务的中 断 = 9 \* GB3 ⑨在执行中断A 的中断服务程序时,RTI指令就会清除相应的IPEND位。但是,相关的SIC_ISR位不会被清除,除非中断服务程序清除了产生中断A 的机制,或者服务中断的进程清除了该位。 系统中断过程如下图: 对于上述中断过程: ?仿真、复位、NMI、异常事件、硬件错误和内核定时器中断请求在ILAT 级上进入中断处理链,所以它们不受系统级的中断寄存器组(SIC_IWR, SIC_ISR, SIC_IMASK, SIC_IARx)的影响 ?如果有很多个中断源共享一个内核中断,那么中断服务程序就必须能识别产生中断的外设。 中断控制寄存器: 1. 系统中断唤醒使能寄存器 (SIC_IWR) 系统中断唤醒使能寄存器 (SIC_IWR):1唤醒使能,0唤醒使能禁止 通过设置该寄存器的相应位,任一外设都可以唤醒内核从空闲状态进入中断过程 ? 如果内核没有处于空闲状态,则该寄存器对内核没有影响 寄存器状态功能图如下: 系统中断状态寄存器 (SIC_ISR) 系统中断状态寄存器(SIC_ISR):1中断被激活,0中断未激活 寄存器每个有效位对应于一个外设中断源 ? SIC发现一个中断被激活时,相应位被置位;被撤销时,相应位被清除 ?3. 系统中断屏蔽寄存器 (SIC_IMASK) 系统中断屏蔽寄存器(SIC_IMASK):0中断屏蔽,1中断使能 该寄存器可以屏蔽SIC上的任何外设中断源, ?复位时所有外设的中断被屏蔽 ?唤醒功能和中断屏蔽功能相互独立:如果在SIC_ISR使能一个中断源,在SIC_

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档