TI中文支持网
TI专业的中文技术问题搜集分享网站

关于multicore navigator 收发队列的联系

在看multicore navigator有关文档和代码时,关于收发队列是如何关联起来的不清楚。descriper是如何从发队列到收队列的?在配置descriper和发对列时没有看到地址或者类似的东西指向特定的收队列,如果有多个收发队列,之间是怎么区分的,descriptor怎么知道该到哪里去?用的例子是c6678 驱动中pa_emac_example。

Bruce Chen1:

您好!

每个descriptor都会有一个指定的 Rx flow ,由Rx flow 指定将descriptor放到哪个RxQ.

striker Qian:

回复 Bruce Chen1:

这个rxflow是在收端制定的还是在descriptor上定义的?在Host packet descriptor上没有看到定义rxflow的域啊?

striker Qian:

回复 Andy Yin1:

以host packet descriptor为例,和包rxflow是在哪里指定的呢?另外“将descriptor回收到RX FLOW中配置的RxQ”的操作是手动编辑完成的吗?

Bruce Chen1:

回复 striker Qian:

您好!

1. 程序初始化时候配置好RxFlow,

   For loopback PKTDMA modes (i.e. infrastructure cases), the Rx flow is specified in the

   Tx descriptor, in the SOURCE_TAG_LO field. The PKTDMA will pass this value to the

   streaming I/F as flow index.

   In non-loopback cases, the Rx flow is specified in the packet

   info structure of the Streaming I/F.

   In the event no Rx flow is specified, the Rx DMA will use Rx flow N for Rx channel N.

2.你只需在RxFlow中配置好RxQ, Rx DMA 会将decriptor 放到指定的queue中;无须手动编辑

striker Qian:

回复 Bruce Chen1:

1,确实在文档中看到了这一段,但是还是有些不解。首先SOURCE_TAG_LO field和the packet

  info structure of the Streaming I/F在TX descriptor中似乎是一段;其次,我用的例子是PA_EMAC EXAMPLE,其中SOURCE_TAG_LO field这个域并没有配置,而是在PA内部有申明。是不是RXFLOW的配置还和具体的外设有关?另外,Streaming I/F具体怎么解释?

2,在Rxflow的配置中找到了有关RXQ的配置,但我所用的例子PA_EMAC EXAMPLE仍有手动将完成操作的descriptor手动PUSH回RXFQ的语句

/* Reset the buffer lenght and put the descriptor back on the free queue */      

   pHostDesc->buffLen = pHostDesc->origBufferLen;

   Qmss_queuePush (gRxFreeQHnd, (Ptr)pHostDesc, pHostDesc->buffLen, SIZE_HOST_DESC, Qmss_Location_TAIL);

这是为什么?

谢谢~~~

Wei:

回复 striker Qian:

在PA的例子里面,收到的RX报文是需要软件处理的,在软件处理结束以后,再由软件推送到FreeQ。如果自动回收,软件在什么时候通过什么方式能够处理收到的数据呢?:)

lyman_uestc:

回复 Bruce Chen1:

这里列举了三种情况,loopback、no loopback和no flow,这三种情况有什么区别么,loopback是在做回环么?

赞(0)
未经允许不得转载:TI中文支持网 » 关于multicore navigator 收发队列的联系
分享到: 更多 (0)