本文是对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个中断目的之一。
本文详细解析了TI的TMS320C645xDSP中的SRIO门铃中断和CPPI中断机制。介绍了门铃中断状态寄存器、清除寄存器及中断路由寄存器的工作原理,以及64种门铃中断如何区分不同二进制数。同时,阐述了CPPI模块的中断状态、清除及路由寄存器,深入理解16个接收/发送队列的中断标识。
9292

被折叠的 条评论
为什么被折叠?



