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.

关于6678 edma3的困惑



大家好:

         对于6678 的edma3一直有些困惑:

1、6678 有三个channel controler,tpcc0有两个transfer controllers,最多支持16个DMA通道,但是我初始化tpcc0后只能申请到两个channel ID,第三个就申请不到了。tpcc1有4个transfer controllers,最多支持64个DMA通道,但是也只能同时申请到两个channel ID。不知道是为啥?

2、对于EDMA3_DRV_SYNC_A,edma触发的次数为bcnt*ccnt,而对于EDMA3_DRV_SYNC_AB,触发的次数为ccnt,那么我触发了bcnt*ccnt(或者ccnt)次之后还想再调用这个channel怎么办呢,DMA方式的想再使用同样的配置难道只是再次对channel设置PaRAM?

  • 1. 关于channel 申请的问题,建议先在单核上测试看看,在出问题时尽量能够根据返回值对照源码查看到底是何原因造成的,可能是参数配置或者EDMA LLD底层驱动的限制等等,从硬件来看是完全可以使用超过2个channel;

    2. 你可以使用EDMA 的link属性,在完成当前PaRAM中的配置之后,硬件会根据参数中的link配置将相应的PaRAM中将下一组配置copy到Channel映射的PaRAM set中,这样在下一次事件时就会执行更新后的配置。