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.

关于6670里面的VCP2



http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/5101.aspx

我利用以上论坛的工程修改代码得到了正确的结果,在EDMA3ISR中比较结果正确,但是只能做一次,第二次的时候就进入不了中断了,请问这是什么原因?我EDMA3的ISR和例子一样做了中断的clear,但是还是不能第二次进入EDMA3的中断。请问是不是还有什么可能的中断没有清除?谢谢!

 

  • Chong,

                  有两种可能性没有产生中断:

                     1    VCP2译码没有完成,所以EDMA没有中断, 建议查一下VCP2的寄存器状态

                     2    EDMA传输已经完成,但没有生成中断。 这个要把EDMA事件寄存器,corepac的中断寄存器以及CIC(如果用的话)寄存器对照查一下。

                    例子应该能支持多次中断,或者对照例子再看一下。

  • 1 确认一下VCP是否有EDMA输出;

    2 在中断中需要清除IPR及CPINT System interrupt input,可以使用如下代码进行中断清除。

    CSL_CPINTC_clearSysInterrupt,

    CSL_edma3ClearLoPendingInterrupts。

  • Andy,请问这两个函数(CSL_CPINTC_clearSysInterrupt,CSL_edma3ClearLoPendingInterrupts)哪里可以下载? 我试过EDMA_intClear函数也可以清楚IPR。可是CPINTC我怎么没有找到?
  • 在csl_cpIntcAux.h及csl_edma3Aux.h中有这些函数的实现,一般这些以CSL开头的函数定义都在pdk下的csl中,使用时需要保护相应的头文件并在工程中包含其csl lib即可。

  • 目前 我用EDMA_intClear来清除IPR,但是没有对CPINT进行清除。在目前来看,是不影响VCP2的使用,不知道根据您的经验,这样做是否可以?会不会留下什么隐患?目前我用的是C6455片子。

  • 如果没有清楚CPINTC system interrupt中断服务函数可能只能响应一次中断,你可以测试反馈一下,谢谢。

  • 目前通话验证,没有清楚CPINT对VCP好像没有影响。但是您居然提到这个,我还是想把清除CPINT加到我的工程内。 但是今天我在贵网站没有找到您提到的这两个文件,不知道方便给一个链接不?还有我使用的是C6455芯片。 同时,使用TCP时,和VCP一样使能和清除IPR,可是有时候检测IPR就过不去。不知道是不是没有清除CPINT的缘故。所以我更加觉得我还是得把清除CPINT加上。 谢谢!
  • 问题已经解决了,需要每次手动触发EDMA传输……