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.

关于CPPI传输的几个问题



大家好,这个图是sprugr9d.pdf(KeyStone Architecture Multicore Navigator User guide)中表示的关于Packet发送的原理图

 

请问PKTDMA将Tx Queue中的一个packet取出,放到Tx port进行传输时,PKTDMA有没有将packet中的descriptor放在Tx port进行传输,还是仅仅将packet中的数据放在Tx Port进行传送?如果传送了descriptor,那么是将descriptor的指针进行传递还是将descriptor的内容进行传递?谢谢

  • 您好,

    Tx PktDMA将从TXQ pop descriptor,解析根据其配置将数据搬进来,然后根据descriptor的配置将其回收到相应的TXFDQ,也就是说只有数据传到RX。

  • Andy Yin 你好,那么如果只有数据被发送到Rx Port的话,Rx Port怎么通过数据来判断使用哪一种Rx flow呢?Rx Port难道不是根据接收到的数据判断使用哪一种Rx flow的吗?

  • 你好!

    在Tx传输数据之前我们需要配置Rx flow,infrastructure mode和Navigator支持的各个外设以及加速器模块的flow数量都是不一样的,每个flow 都有A-H这么多个word,在flow中我们可以指定该flow作用在哪个Rx FDQ以及Rx queue,Rx Port 接收过来的数据需要按照flow的规则来处理,比如使用哪个FDQ中的free descriptor等等。

    Navigator 是基于硬件机制来进行数据传输的,所以有些东西不需要软件编程人员干预。

    非常感谢!

  • Hi Phyllis

    多谢你和Andy的耐心解答

  • 这是前天答应给你的infrastructure mode的一个简单例子,希望可以帮到你。

    谢谢!

    core2core_new1.zip
  • Hi Phyllis

    非常感谢你提供的例子,但是在我运行的时候出现了一些问题,还请解答:

    1,在工程设置里面的File Search Pach 中的"C:\ti\ccsv5\tools\compiler\c6000\lib\rts6600e_elf.lib"

    "C:\ti\ccsv5\tools\compiler\c6000\lib\rts6600_elf.lib"这两个文件的作用是什么意思?我在我的CCS5上运行还需要添加

    ti.csl.intc.ae66和ti.csl.ae66吗?

    2,在修改了Include option中的路径之后,工程build正确,但是我load到板子上时出错,原因是大小端不匹配,在设置EVM为大端模式下,.out文件加载,运行正确。

    但是我将工程设置为小端模式,biuld工程出现错误,发现在Descriptor.h下的HostPacketDescriptor只在大端模式下被定义,请问这个结构体的定义在大小端下有什么不同吗?谢谢