TI中文支持网
TI专业的中文技术问题搜集分享网站

OMAP 5 DMA中断问题

刚才发了个发错地方了。。。

OMAP5的DMA中断看迷糊了,主要是文档中的一句话:

In contrast to the DMA4_CSRi registers, the DMA4_IRQSTATUS_Lj registers are updated regardless of the
corresponding bits in the DMA4_IRQENABLE_Lj registers.

这句话是不是说不管DMA4_IRQENABLE_Lj配置如何,当32个逻辑通道中的任何通道(假设为 i)产生中断时,都会更新DMA4_IRQSTATUS_Lj的相应位(i位),但只有使能DMA4_IRQENABLE_Lj的相应位(i位)后才会提交中断信号给相应的中断控制器(与Line j相连的中断控制器)。

例如:

(1)当四个Line的DMA4_IRQENABLE_Lj寄存器的i位都使能时,若逻辑通道i产生中断,则四条Line都会向相应的中断控制器提交中断信号。

(2)当四个Line的DMA4_IRQENABLE_Lj寄存器的i位都没有使能时,若逻辑通道i产生中断,则四条Line都不会向相应的中断控制器提交中断信号。

以上理解对吗?

如果不对的话请论坛或TI的诸位高手解释下这个误区;

如果对的话,请告诉我下面这种情况如何区分哪个逻辑通道发生了中断:

前提:同时使用两个DMA逻辑通道m和n,且都配置了对应的CICR寄存器,但是仅使能了DMA4_IRQENABLE_L0的n位,m位没有使能。

场景:逻辑通道m先产生了中断,由于没有设置DMA4_IRQENABLE_L0的m位,系统中断控制器不会处理该中断,这时,中断DMA4_IRQSTATUS_L0中的m位置1,且不会被清除,而此时,逻辑通道n产生中断,由于使能了逻辑通道n,系统中断控制器会处理该中断,但中断处理函数确定哪个通道产生中断时需要先读取DMA4_IRQSTATUS_L0,而此时DMA4_IRQSTATUS_L0中有两个1,莫非还要根据DMA4_IRQENABLE_L0的配置来确定究竟哪个逻辑通道产生了中断吗?

Eason Wang:

Could you post on e2e forum, currently we dont have OMAP5 forum on deyisupport.

Sorry for inconvenience

BR,

Eason

赞(0)
未经允许不得转载:TI中文支持网 » OMAP 5 DMA中断问题
分享到: 更多 (0)