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

TMS320C6670 多核导航 高优先级累加器中断

如上图所示,当接受队列为高优先级累加器队列705时,配置的是给核1发中断,队列705是接收一个描述符就产生一个中断。

我希望的是核0给核1传1024字节(一个描述符就可以了)的数据,当传送完数据后给核1产生一个高优先级累加器中断,使核1去读取描述符的信息,并将接收到的数据都乘以2,然后再回传给核0。

我看书上写的是描述符被弹出队列,并放置在主机提供的一个缓存中。当集合被填满或者一个定时器超时时,累加器通过中断通知主机从缓存中读取描述符的信息。

我的问题是,中断后,主机(核1)怎么去获得缓存中的数据?高优先级累加器队列里的描述符会自动放置在ping/pong缓冲区里,中断发生后,描述符会不会自动返回到RXFDQ? 如果接受队列是通用队列的话,是不是把接收队列的描述符弹出来,把描述符链接的buffer内容读出来?

Andy Yin1:

在发数之前需要将接收buffer address配置到描述符,将其push到RxFDQ中,接收到中断后,需要接收方软件从RxQ中pop出描述符,获取接收数据地址,然后将描述符回收到RxFDQ,这都是软件控制的。

Evan:

回复 Andy Yin1:

1、接收队列是累加器队列的话,描述符是不会在累加器队列里的,会存放在相应的ping/pong buffer里面,如果发生中断后,要通知被中断的主机去取接收到的数据并做一定的处理,是不是从ping/pong buffer里面取出描述符,获得数据地址,然后对数据做处理?

2、当接收队列是通用队列时,我的想法是将接收队列的描述符弹出来,获取数据地址,对数据做处理,同时,

uipDstBufPtr= (Uint32 *)hostDescriptor->buffer_ptr; uiaDescriptorBuffer[j]= (Uint32)hostDescriptor;

当接收队列里的描述符都备份到uiaDescriptorBuffer数组里后,将uiaDescriptorBuffer数组里的描述符压到接收队列中,给核0回传处理过后的数据,同时,将描述符回收到RxFDQ, 请问这样的思路对不对?如果不对,我想要的这种功能该怎么实现,请提供下思路。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6670 多核导航 高优先级累加器中断
分享到: 更多 (0)