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

c6678的EDMA传输及中断

想用edma从core0的local L2搬移到core1的local L2。core0上的程序传输结束后,core1的程序能够收到中断。

问题:core1上只需要安装edma中断就可以了么?core1也需要初始化edma和channel么?

Andy Yin1:

EDMA是多核共享资源,EDMA的配置只需要一个核做就好。像你这种应用,可以由core0进行EDMA的配置,core1上配置中断映射即可。

对于keystone DSP来说,core与core之间的数据传输,还可以用CPPI完成,此时core0上配置发送端,core1上配置接收端,具体请参考Navigator手册。

Enoeht lea:

回复 Andy Yin1:

andy你好,问题是如果我先跑core0上的edma等的初始化以及,再跑core1,core1可以收到中断

如果先跑core1,再跑core0,core1就收不到中断了。

是不是core1上也要加上下面这段代码?

regionIpr.region = CSL_EDMA3_REGION_GLOBAL; regionIpr.intr = 1 << (channel_num); regionIpr.intrh = 0;

CSL_edma3HwControl(hModule1,CSL_EDMA3_CMD_INTR_ENABLE, &regionIpr);

Andy Yin1:

回复 Enoeht lea:

初始化只需要在一个core上做就可以,你上面提到的代码是用于enable某个channel的中断,我觉得只需要在一个core上运行就好,你可以试试在core1上加上后效果如何。建议在初始化后查看EDMA相关的寄存器确认配置是否符合预期,这样可以确认在没收到中断时的中断寄存器IPR是否置位,如果置位,则说明中断事件已经产生,需要确认中断控制器的配置等。

赞(0)
未经允许不得转载:TI中文支持网 » c6678的EDMA传输及中断
分享到: 更多 (0)