Quantcast
Channel: C6000™多核 - 最近的话题
Viewing all articles
Browse latest Browse all 5545

PDSP0 配置问题,发送队列没有反应

$
0
0

    你好,我现在正在调试6678网络模块(硬件平台是C6678),在配置PDSP0接收指定MAC地址数据包时遇到问题,代码大致流程如下:

ret = Pa_addMac(pa_inst_hdl,
                                pa_LUT1_INDEX_NOT_SPECIFIED,
                               &ethInfo,
                               &routeInfo,
                               &nFailInfo,
                               &handle,
                               buf,
                               &size,
                               &cmdReplyInfo,                 //cmdReplyInfo.queue = 712   接收应答队列
                               &cmdDest);

然后获取并填充描述符,对应代码如下:

Cppi_setData(Cppi_DescType_HOST, txPkt, buf, size);
Cppi_setPacketLen(Cppi_DescType_HOST, txPkt, size);
Cppi_setReturnQueue(Cppi_DescType_HOST, txPkt,  inQueue);

//inQueue申请代码如下

//Qmss_queueOpen (Qmss_QueueType_GENERAL_PURPOSE_QUEUE, QMSS_PARAM_NOT_SPECIFIED, &isAllocated)

cmdDest获取的数值为0,也就是发送通道0,因为发送通道0对应PDSP0,描述符设置好后,压入对应的发送队列(640号),压入前进行cache回写,

    Qmss_queuePushDescSize(txQueHnd, desc, desc_size);

目前存在的问题是:

1.push完成后,监听inQueue队列,没有获取任何表述符,712号队列也没有获取任何描述符。

2.正常情况下,应该可以在inQueue队列中获取到发送完成的描述符,并且在712号队列中接收到应答。

3.我故意将txQueHnd改为641-648其余队列,虽然此时操作有问题,因为并没有配置PDSP0,但是在inQueue可以监听到发送完成的描述符,712队列监听不到应答描述符(属于正常,因为PDSP0只能通过640队列发送)。

问题总结:

我在利用640号队列配置PDSP0时,将描述符压入640号队列后,在返回队列中接收不到发送完成描述符,但是换成641~648都可以,虽然这种方法操作不正确,但至少发送队列将描述符发送出去了,但是640号队列始终不行,请问造成这种问题的原因可能有哪些呢?



Viewing all articles
Browse latest Browse all 5545