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

使用multicore navigator从某个接口收数据时,descriptor是如何回收的?

PDSP从RxQ中pop出desc,并放入accumulation List中,然后core从accumulation List中读取desc,并分析。

请问被pop出的desc是在那个步骤被回收的呢,是由pdsp在每一次pop之后直接回收,还是由core在分析accumulation list中的每一个desc之后再回收呢?

对于前者,我看到在pktDMA 初始化程序中有:KeyStone_Qmss_Config_Reclaim_Queue (Qmss_PdspId_PDSP1, RECLAMATION_QUEUE);这是对pdsp进行配置的函数,使其将pop出的desc回收到制定queue。

对于后者,我看到在由accumulation list引发的中断程序中,有core对desc进行逐个分析,并回收的语句:KeyStone_queuePush(RECLAMATION_QUEUE, (Uint32)hostDescriptor|FETCH_SIZE_32);

请问为什么对于同一个desc要有两个回收的语句呢?

littleWhite:

有专家可以帮忙讲解一下吗,谢谢了

Andy Yin1:

需要软件回收,硬件不会自动回收描述符。

你说的KeyStone_Qmss_Config_Reclaim_Queue是配置使用PDSP提供的一种自动回收功能,将某个queue配置使能reclamation,则进到该queue的描述符会自动被放到描述符上配置的returnQ里,注意一个器件只能配置一个queue具有该功能。详请参考navigator user guide。

littleWhite:

回复 Andy Yin1:

既然已经配置pdsp提供自动回收功能了,为什么还要core来执行软件回收呢,而且回收的queue num是一样的

赞(0)
未经允许不得转载:TI中文支持网 » 使用multicore navigator从某个接口收数据时,descriptor是如何回收的?
分享到: 更多 (0)