This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DMA求助



DMA问题求助
1:在核2的工程里,核2如果要向核0的空间0x1086ffff处,写512个字节。在
  核2的工程里,只要赋值 myParamSetup.dstAddr = (Uint)(0x1086ffff);
   那么核0怎么来定义这么一个空间,让核2去写数据?怎么在这个0x1086ffff
   固定的地址处,开辟一个512字节的空间?

2:在核2的工程里,除了用
    do{
       CSL_edma3GetHwSatatus(hModuel, CSL_EMDA3_QUERY_IINTERPEND, &regionIntr);
 }while(!regionIntr.intr&0x1);
   来判断DMA已经搬移完毕。怎么定义一个自己写的中断函数,让DMA搬移完成后,
   会跳转到自己定义的中断函数里?
3:CCS,每次新建工程后,都要在工程属性里添加csl库文件,在哪里可以设置下,自动添加的呢?

谢谢,

  • 问题1:我觉得你的理解是反的,首先要核0有个内存地址,然后核2才能去写这个内存地址。而不是核2决定核0的地址。

    方法如下,使用cmd文件定义以段,段的起始地址就是0x1086fffff,长度512,然后在c文件里面定义一个全局变量,使用DATA_SECTION命令将这个全局变量放置到先前定义的段里面。(如果写cmd文件就不介绍了,可以参考例子程序中的)

    问题2:老问题了,请在论坛里面搜索EDMA相关帖子,有很多介绍EDMA的中断。不过推荐LZ去看EDMA3的User guide。

    问题3:建议LZ自定义一个空的工程,将csl文件添加进去。以后每次要新建工程时,直接使用import方式将工程导入,然后直接添加其余文件即可。