1. 中断相关概念
中断过程-----------------------------------你在下象棋,突然电话响了,你回屋接电话,然
后回来继续下象棋,这个过程就叫做中断响应过程。
CPU执行正常任务---------------------下象棋
保护现场----------------------------------你已经想好要“将军”,先在脑海中记下来。
中断发生----------------------------------电话响-
中断服务程序----------------------------接电话
恢复现场----------------------------------回来后恢复刚才想法
中断返回----------------------------------你回来继续下象棋
中断屏蔽----------------------------------Boss 正在训话,要求所有电话关机,你不能接电话
了。
非屏蔽中断—----------------------------你内急,即使是 Boss 在训话,你还是得到外面去
嘘嘘。
可屏蔽中断-------------------------------你在“闭关修炼”,可以不受外界干扰。
2. 中断源
C6000 支持软件中断和硬件中断。软件中断由指令产生中断请求,硬件中断可以来自
外设的一个请求信号,如外部中断。C620x/C670x 中断向量表
中断号 中断名称 中断功能
00000b DSPINT Host port host to DSP interrupt
00001b TINT0 Timer 0 interrupt
00010b TINT1 Timer 1 interrupt
00011b SD_INT EMIF SDRAM timer interrupt
00100b EXT_INT4 External interrupt 4
00101b EXT_INT5 External interrupt 5
00110b EXT_INT6 External interrupt 6
00111b EXT_INT7 External interrupt 7
01000b EDMA_INT EDMA channel (0 through 15) interrupt
01001b Reserved Not used
01010b Reserved Not used
01011b Reserved Not used
01100b XINT0 McBSP 0 transmit interrupt
01101b RINT0 McBSP 0 receive interrupt
01110b XINT1 McBSP 1 transmit interrupt
01111b RINT1 McBSP 1 receive interrupt
Other Reserved
不同型号的 DSP 定义中断号所对应的中断功能不同,为了达到统一使用中断号功能,
DSP 可以使用中断复用寄存器进行重新映射。通过中断复用寄存器映射可以把中断源映射
到任何 CPU中断。
中断复用寄存器默认中断号映射表
CPU
Related
INTSEL
Interrupt
Interrupt
INTSEL field
Reset Value
Acronym
Interrupt Deion
INT4
INTSEL4
00100b
EXT_INT4
External interrupt pin 4
INT5
INTSEL5
00101b
EXT_INT5
External interrupt pin 5
INT6
INTSEL6
00110b
EXT_INT6
External interrupt pin 6
INT7
INTSEL7
00111b
EXT_INT7
External interrupt pin 7
INT8
INTSEL8
01000b
DMA_INT0/
DMA Channel 0 Interrupt/
EDMA_INT
EDMA interrupt
INT9
INTSEL9
01001b
DMA_INT1
DMA Channel 1 interrupt??
INT10
INTSEL10
00011b
SD_INT
EMIF SDRAM timer interrupt
(C62x/C67x)
SD_INTA
EMIFA SDRAM timer interrupt
(C64x)
INT11
INTSEL11
01010b
DMA_INT2
DMA Channel 2 interrupt??
INT12
INTSEL12
01011b
DMA_INT3
DMA Channel 3 interrupt??
INT13
INTSEL13
00000b
DSPINT
Host port to DSP interrupt
INT14
INTSEL14
00001b
TINT0
Timer 0 interrupt
INT15
INTSEL15
00010b
TINT1
Timer 1 interrupt
3. 常用中断寄存器
通过对中断寄存器进行配置,可以实现各种中断功能。
IER(中断使能寄存器)
IFR(中断标志寄存器)
ISR(中断设置寄存器)
ICR(中断清除寄存器)
ISTP(中断向量表起始地址寄存器)中断向量程序的地址可以通过 ISTP寄存器进行重新映
射
MUXH(中断复用寄存器)
MUXL(中断复用寄存器)
通过 DSP data sheet 可以很容易找到寄存器的绝对地址,但为了减少配置错误和方便移
植,在编程时一般采用 CSL 函数对中断寄存进行配置。
4. CSL(DSP API 函数)函数使用说明
在开发 DSP 的过程中一定要用好 CSL 函数,它给 DSP 的编程带来很多方便。使用 CSL
函数可以使程序更容易理解和维护,同时可以有效避免在编程中的笔误。
IRQ_clear(IRQ_EVT_TINT0);//对 IFR寄存器进行操作,定时中断标志位清零
IRQ_enable(IRQ_EVT_TINT0;//对 IER寄存器进行操作,使能定时中断
IRQ_map(IRQ_EVT_TINT0,12);//对 MUX 寄存器进行配置,根据需要把中断号进行重新映
射。
IRQ_globalEnable();//对CSR 中 GIE 标志位进行配置,标志位置 1;
。。。。。。。。。。。。。
相应的 CSL函数可以在 CCS自带的PDF 文档《TMS320C6000Chip Support Library API
Reference Guide》中进行查找