大家好:
最近在看CPPI的这个工程,有很多不懂的还请专家解释。
请问这个工程的payload的数据是从哪里传哪里的,我看TestCPPI里面的程序是不是说从FDQ_USED_FOR_SEND里取一个descriptor,然后加入payload数据,将这个descriptor推·入queue 800?这个怎么展示了core与core之间的通信呢?hostDescriptor->src_tag_lo= 0的作用是什么呢?
guoping Lee:
回复 Bruce Chen1:
你好Bruce Chen
我在void interrupt Exeception_ISR(void)函数内加入语句printf("enter isr\n");发现当工程运行时没有执行这一语句,请问是不是代表工程运行时没有发生中断服务程序?
我发现目的地址是rpacketBuffer,可是这个地址还是在core 0的L2空间,怎么代表核间传输的呢?谢谢
Andy Yin1:
回复 guoping Lee:
您好,
你这个例子是是你自己写的么?
在程序中没有配置中断,并且在push完descriptor后也没有等待数据搬运完成,就直接打印测试完成。如果要使用pktDMA实现核间数据搬运,配置RXFDQ中descriptor上挂的buffer的目的地址为你程序所需要的,同时配置完成中断对应关系就好。建议参考一下pdk中的例子qmInfraMCExampleProject,在如下链接中存在对该例子的说明。www.deyisupport.com/…/4899.aspx
guoping Lee:
回复 Andy Yin1:
Andy 你好
这个例子是我论坛下载的
www.deyisupport.com/…/9217.aspx
这个例子没有配置中断可是实现了core 0的L2空间内数据的搬移。是不是QMSS 的packet DMA不需要设置中断的?
Andy Yin1:
回复 guoping Lee:
可以通过查询和中断两种方式确定数据完成,你下载的例子写的没有任何一步就退出了,所以当程序运行完后不一定通信完成,你可以自己再完善修改一下。或者参考FAQ中的keystone navigator例子进行修改。