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

C6670 EDMA 只有core0可以搬数据

我有几个问题,附件是一个非常简化的DMA例子,可以实现一个核内数据的搬移,但是只有Core0可以用,其他Core都一直在等待interrupt,一直在while中出不来。。

while (irqRaised1 == 0u)
{

      printf ("waiting for interrupt…\n");
}

也就是只有core0在transfer complete之后触发了完成中断,修改了irqRaised1。

其他核并不能产生中断。

   我理解的是,根据手册:完成中断有两种类型,一种是Global Transfer Completion Interrupt,一种是Transfer Completion Interrupt Shadow Region x。

为了使每个核都可以搬移数据,是不是需要采用第二种方式?这是由哪里配置的?

unsigned int gblCfgReqdArray [NUM_DSPS] = {
0, /* DSP#0 is Master, will do the global init */
1, /* DSP#1 is Slave, will not do the global init */
1, /* DSP#2 is Slave, will not do the global init */
1, /* DSP#3 is Slave, will not do the global init */
};

Andy Yin1:

EDMA中断是到CIC上,每个core的CIC输入事件是不一样的,所以需要确认一下现在的CIC配置映射关系输出的CIC是否会输入到其他core,否则得重新选择CIC输出映射,具体参阅数据手册中断章节。

na zhang1:

回复 Andy Yin1:

不好意思我还是没有看懂,CIC具体指什么? 

您说的映射在给出的多核edma的例子中对应的是哪一步分代码,能麻烦您继续说明一下么?

非常感谢!

na zhang1:

回复 Andy Yin1:

能麻烦您给我一份多核edma 的例子么?

非常感谢!

na zhang1:

回复 Andy Yin1:

我的工程是不管从 哪个核开始单核跑,只有core0可以顺利的搬移完进入到中断,别的核都一直在等待中断

赞(0)
未经允许不得转载:TI中文支持网 » C6670 EDMA 只有core0可以搬数据
分享到: 更多 (0)