你好,
在6678平台上调试PDK提供的qmss和cppi例程时,发现例程中的PacketDMA,只是在主核内传输“包数据”,并不是在核间传输。从文档中理解PacketDMA应该是核与核之间的吧!请问下PacketDMA是只能在核内使用吗?为什么提供的两个例程(单核和多核)均只是在主核(0核)内传输报数据??
谢谢!
King Wang:
shuyan HOU 您好:
PacketDMA是可以在核间传输的,实际上packetDMA是多核公用的设备。比如你core0配置Tx Queue,core1配置Rx Queue,那么就实现了core0发送到core1接收的过程。
我这里没有6678的PDK,但是单核的例子可以很容易的更改到多核上实现。您也可以描述下您需要什么样子的例子,我们可以再交流。
谢谢!
Haifei Wu:
回复 King Wang:
King Wang 您好!
我想问一下,我想把数据从core0发送至core1,如您所说的将core0配置Tx Queue,core1配置Rx Queue,这个步骤需要怎样操作?能否详细地说一下。谢谢!
Andy Yin1:
回复 Haifei Wu:
您好,
如果要使用Infrastructure PktDMA完成core0到core1的数据传输的话,可以由core0负责组包并推送到infrastructure PktDMA的TxQ,配置相应的RxQ被QMSS PDSP的Accumulator监视产生中断并路由到core1,当数据搬送完成后接收的descriptor送到RxQ中产生中断到Core1,core1接收中断后即可知数据搬送完成。
具体可以参考C6678 PDK中的Navigator multicore例程,包含了多核通信的例子。