TMS320C55x作为常见的DSP芯片,一直以来是很多初入数字芯片领域的小白首选DSP芯片之一,但有很多人都看不懂TMS320C55x的中断机制,经常认错成指令执行等,所以为更好了解TMS320C55x芯片,今天我们走进探索TMS320C55x的中断机制。
一般来说,中断是由硬件或软件驱动信号产生的,它使DSP暂停当前程序的执行而去执行中断服务程序(ISR)。TMS320C55x DSP支持32个中断服务程序(ISR),其中有些中断可由软件或硬件触发,有些则只能由软件触发,软件中断由程序指令产生,硬件中断由设备的一个信号产生,包括:
1、外部硬件中断由外部中断口的信号触发;
2、内部硬件中断由片内外设的信号触发。
所有C55x中断,无论是硬件还是软件中断,都可以分为可屏蔽中断和非屏蔽中断两类,对可屏蔽中断可用软件将其设置为禁止中断或允许中断;而对非屏蔽中断则不能禁止,CPU总是立即响应这种中断。
DSP按这4种主要步骤处理中断:
1、接受中断请求,挂起当前程序;
2、响应中断请求,若中断是可以屏蔽的,则在响应时必须满足某些条件;对非屏蔽中断,则立即响应;
3、准备中断服务程序,CPU执行的主要任务是:
完成当前指令的执行,清除流水线中未译码的指令;
将相关寄存器的自动保存到数据堆栈和系统堆栈中;
从中断矢量表取出中断矢量,中断矢量指针(IVPD、IVPH)指向中断服务程序。
4、执行中断服务程序,ISR中包含了中断返回指令,当中断返回时,自动回复前面保存的寄存器。