DSP技术分享:dsp有关中断总结
dsp吧
全部回复
仅看楼主
level 7
中断定义:由硬件或软件驱动的信号,使DSP将当前的程序挂起,执行另一个称为中断服务子程序(ISR)的任务。
C55x支持32个ISR。有些ISR可以由软件或硬件触发,有些只能由软件触发。
当CPU同时收到多个硬件中断请求时,CPU会按照预先定义的优先级对它们做出响应和处理。所有的软件中断都是不可屏蔽中断
DSP处理中断的步骤:(1)接收中断请求。软件和硬件都要求DSP将当前程序挂起。
(2)响应中断请求。CPU必须响应中断。如果是可屏蔽中断,响应必须满足某些条件。如果是不可屏蔽中断,则CPU立即响应。
(3)准备进入中断服务子程序。
CPU要执行的主要任务有:
完成当前指令的执行,并冲掉流水线上还未解码的指令
自动将某些必要的寄存器的值保存到数据堆栈和系统堆栈
从用户实现设置好的向量地址获取中断向量,该中断向量指向中断服务子程序(4)执行中断服务子程序。
CPU执行用户编写的ISR。ISR以一条中断返回指令结束,自动恢复步骤(3)中自动保存的寄存器值。
☼ 注意:
外部中断只能发生在CPU退出复位后的至少3个周期后,否则无效;
在硬件复位后,不论INTM位的设置和寄存器IER0、IER1的值如何,所有的中断都被禁止,直到通过软件初始化堆栈后才开放中断。 2 可屏蔽中断所有的可屏蔽中断都是硬件中断。
无论硬件何时请求一个可屏蔽中断,在一个中断标志寄存器里就有相应的中断标志置位。该标志一旦置位,相应的中断还必须使能,否则不会得到处理。当CPU在实时硬件仿真模式下暂停时,只能处理时间临界中断。 可屏蔽中断标准处理流程:1. 向CPU发送中断请求。2. 设置响应的IFR标志。CPU检测到一个有效的可屏蔽中断请求时,它设置并锁上某个中断标志寄存器的响应标志位,这个位保持锁定,直到该中断得到响应或者复位,才清楚3. IER中断使能?根据中断使能寄存器是否使能,响应中断。4. INTM = 0?全局开放中断,才响应5. 跳转到ISR服务程序,6. 执行ISR服务程序7, 返回。 3 不可屏蔽中断当CPU接收到一个不可屏蔽中断请求时,立即无条件响应,并很快跳转到相应的中断服务子程序(ISR)
C55x的不可屏蔽中断有:
硬件中断/RESET。如果引脚/RESET为低电平,则触发了一个DSP硬件复位和一个中断(迫使执行复位ISR)。
硬件中断/NMI。如果引脚/NMI为低电平,则CPU必须执行相应的ISR。 /NMI提供了一种通用的无条件中断DSP的硬件方法。
软件中断。 4 按键中断
按键中断,属于可屏蔽中断,用户自定义硬件中断,当CPU响应按键后,检查相关引脚中断标记寄存器,若标志位为1,则响应该中断。同时,清除中断标志寄存器位.
5 c_int00
当C环境被初始化时,启动程序禁止中断。 如果系统使用中断,必须处理有关的中断使能或屏蔽。
2015年08月28日 03点08分 1
1