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.

急求:c6455内的VCP2怎么才能知道译码结束了?



看例程是用while语句,调用VCP2_statRun函数。可是发现这个语句运行完,好像一帧没有译完? 怎么才知道译完并通过什么方式通知EDMA,同时何时可以去取值? 谢谢
  • VCP2_statRun这个函数只是在check VCP2是否除以run状态,不能反映译码结果已经输出到外部相应的memory.VCP2在译码完成后会产生事件驱动EDMA将结果输出,所以建议使用EDAM的中断来确定结果输出完成,具体可以参考如下帖子。

    http://www.deyisupport.com/question_answer/dsp_arm/c6000_dsp/f/32/p/46990/110638.aspx#110638

  • Andy, 谢谢你

    我昨天看了那个帖子,今天试了试,不知道为什么经过设置后 我的IPR都是0?同时我也不理解你们说的读取TCC的bit位来判断VCP2是否异完。

    我首先调用 EDMA_intEnable(tccIntNum)函数来设置 IPR,这个tccIntNum的函数是指EDMA分配给VCP2的28或者29通道吗?

    然后通过调用CSL_edma3Init(context),CSL_edma3Open(&edmaObj,CSL_EDMA3,NULL,&status)后,通过CSL_edma3GetIntrPendStaus(hModule,CSL_EDMA3_REGION_0,&demaIntrLo,&edmaIntrHi)函数来读取这个status。demaIntrLo和edmaIntrHi是不是对应IPR的高32bits和低32bits?这两个形参作为输入,应该怎么设置?

    谢谢。

  • 使用VCP2时肯定是需要配置EDMA将结果搬到外部memory,你需要确认输出EDMA 对应PaRAM set中的TCINTEN被置位,之后在结果搬移完成后硬件会自动置上IPR bit,然后软件查询IPR来确认VCP2译码完成。

  • 感谢ti的工程师Andy和Jane两位工程师。 今天恍然大悟,之前把问题想复杂了。今天中午将IPR的TCC位设置好了,也通过读IPR的TCC来判断译码是否结束。。 同时通过EDMA_intClear对IPR清零。 谢谢。