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

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

    你好,我现在正在调试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号队列始终不行,请问造成这种问题的原因可能有哪些呢?

Andy Yin1:

发送队列640时,查看640中是否有描述符,如果依然在640中,则说明通道没使能,如果没有堵塞在640中,但是没有返回完成队列中,这说明可能跟配置有关,建议check一下配置,另外PDSP中需要先下载相应的firmware。

xin he2:

回复 Andy Yin1:

感谢您的回复,我测试时发现,同样的代码有时好使,有时不好使,请问一般出现这种问题原因有哪些?没有头绪了,请指点

xin he2:

回复 Andy Yin1:

我刚才又测试了下,将通道禁能,进行push操作后,640队列中确实存在描述符,将通道开启后,描述符就不存在,但是返回队列也没获取到描述符,不知道描述符哪里去了,PDSP中固件已经下载了。

赞(0)
未经允许不得转载:TI中文支持网 » PDSP0 配置问题,发送队列没有反应
分享到: 更多 (0)