本文是对TI的TMS320C645x DSP SRIO User’s Guide中5.15~5.20节内容的搬运
与2.3.4节、2.3.6节、第4章大部分内容相关
一、门铃中断
门铃中断状态寄存器(DOORBELLn_ICSR)
n为0~3,因此共有4个寄存器,但和SRIO的4个端口并没有对应关系。
该寄存器中的相应的位是门铃事务接收的标识,每个寄存器中有16个标志位,分别指示16种不同的门铃中断。4个寄存器总共能够指示64种门铃中断。
64种门铃中断只能区分不同的6位二进制数。但是门铃事务包中的Info字段共有16位,所以只有特定的字段内容会产生门铃中断。可以观察例子得出具体字段内容和中断源的对应关系。
- 最左侧四列表示的是Info字段16位二进制数的表示,可以看出,第5、6位对应寄存器号;从最后一列可以看出,[3:0]这四位的值对应寄存器中16个中断源之一。
- 第5列为门铃事务Info字段的十六进制表示
- 倒数第二列为中断源对应的中断路由寄存器内具体的位置。(中断路由寄存器中每4位的内容值指定该中断源的中断目的,共有8个中断目的,后续细说)
门铃中断清除寄存器(DOORBELLn_ICCR)
该寄存器与门铃中断状态寄存器一一对应,某位置一后,则可以将门铃中断状态寄存器中的相应位清零
中断路由寄存器(DOORBELLn_ICRR and DOORBELLn_ICRR2)
ICRx的值与中断目的对应关系
ICRx的值 | 中断目的 |
---|---|
0000b | INTDEST0 |
0001b | INTDEST1 |
0010b | INTDEST2 |
0011b | INTDEST3 |
0100b | INTDEST4 |
0101b | INTDEST5 |
0110b | INTDEST6 |
0111b | INTDEST7 |
1xxxb | 保留 |
DOORBELL中断小总结
共64个中断源,8个中断目的。4个门铃中断寄存器,每个寄存器对应16个中断源。
ICSx、ICCx、ICRx有一一对应的关系,分别是中断状态、中断标识清除和中断目的路由。
二、CPPI中断
CPPI接收/发送中断状态寄存器(RX_CPPI_ICSR、TX_CPPI_ICSR)
CPPI(Communications Port Programming Interface)是专用于消息(MESSAGE)事务传输的模块
消息事务总共有16个接收队列和16个发送队列,对应这里的16个中断状态标识。队列中存放的消息通过缓冲描述符来描述,一旦有一段完整的消息存放到队列中或者有一段完整的消息被发送,就会产生中断标识。
CPPI接收/发送中断清除寄存器(RX_CPPI_ICCR、TX_CPPI_ICCR)
与接收/发送中断状态寄存器对应,某一位置一,可以使相应为清零
CPPI接收/发送中断路由寄存器(RX_CPPI_ICRR 、RX_CPPI_ICRR2 and TX_CPPI_ICRR 、TX_CPPI_ICRR2)
与门铃中断相同,将16个中断源指向8个中断目的之一。