1. 大家谁知道KeyStone I Navigator模块中,Descriptors的详细释放和回收过程,在手册里没找到。
2. 环境:C6678,6670平台上,网口的裸机驱动程序
数据的发送过程描述:CPU从发送完成队列里Pop出一个Descriptors,将Descriptors填充完毕后,又将Descriptors Push进发送队列,后启动PktDMA将发送队列里的数据搬运到net外设,将数据发送出去。Descriptors Push进发送队列后,程序通过读取外设统计发送成功的包数来判断发送成功。Descriptors数量为32个。
问题描述:当数据成功发送完成后,发送完成队列中Descriptors的数量还没有回收成功(32)个,这样会导致下次发送时,从发送完成队列中读取的Descriptors数量小于本次发送所需要的Descriptors数量。该现象具有偶发性,大部分时候发送完成后,Descriptors都被正常回收,有时会出现上述情况。
调试程序片段:
谢谢大家!