初学C6670,请教几个问题:
1. CPPI 与 Navigator 的关系,CPPI是Navigator的编程接口?
只是在 QueueManager 和 PktDMA上的一个驱动吗? 我以为是个实际的接口
2. 看文献有提到 CPPI 的CPDMA,又说是之前的叫法,
那么 CPDMA是不是就是 PktDMA?
3. 目前只看了Navigator 的<UserGuide>和<LLD Software Design Spec> 2个文档
没怎么看明白,还有没有其它文档?
4. 对Navigator的工作流程还是不太明白,
比如要从DSP core 传输数据到FFTc,core配置好descriptor,写入QM,
启动传输,传输完成后 QM会自动将descriptor转到Tx completion queue ,
然后通过中断通知core? 是这样的流程吗?
那么FFTc怎么知道要接收descriptor对应的数据呢,又是什么时候接收数据呢?
在core启动QM传输之前需要同时配置FFTc去接收数据吗?
5. 在FFTc等的测试程序中,定义不同类型 descriptor的数量,
如Host类型 num = 64等,通过FFTc的higher layer driver 配置,
如果系统多次使用FFTc,这些descriptor会不会耗尽?
每一次Navigator传输完成后,descriptor会由驱动自己回收吗?
Andy Yin1:
1 CPPI和Navigator指的是同一个硬件模块;
2 CPDMA就是pktDMA;
3 还可以参考相关的培训文档:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/24488.aspx
4 Navigator的工作流程可以划分成发送和接收侧,发送侧配置好描述符,由core推入TxQ,在数据传输进入PKTDMA内部后,由QMSS将描述符自动回收到TxCompletionQ;对于接收侧,在pktDMA内部收到处理完的数据后,根据RxFlowID从相应flow指定的RxFDQ中获取描述符,然后将处理的数据传输到外部buffer,并将描述符回收到RxQ,从而完成整个过程。
5 发送侧描述符会自动回收到TxCompletionQ,接收侧描述符会放到RxQ,可以循环利用。