最近有个项目要用6670的TCP3E&D加速器,于是参考了一下PDK自带的例子,先将TCP3E的有关问题请教如下:
(1) 初始化一开始就用了一个HeapMem_Handle_upCast( ), 不懂这个函数是干什么用的?SYS/BIOS下对该函数的解释就一句话,不是太明白。还有C66X下面的heap到底是个什么概念?如何使用?哪个文档有介绍?
(2) 在发送任务SendBlockTaskFunc( )中为何将destQueue强制在0x02A20000到0x02AC0000之间?我看pushAddrUsed的注释说EDMA2_TC无法连接到QMSS的data space ,所以强制到QMSS的config space,是这样的么?还有为什么要加个偏移0xC?
(3) TCP3e是不是根据输入的参数自动配置link EDMA的?为什么需要84个link EDMA 通道?为什么最多只能有86个link EDMA通道?计算max link EDMA的表达式
2*(magazineSize*numPerCb+5+4)+2+2是什么意思?
(4) 在EDMA3初始化中的注册中断函数中,有个EventCombiner_dispatchPlug( )函数到底是做什么用的?该函数的参数CpIntc_dispatch做为一个函数入口何时被调用?调用该函数做什么用?
(5) MagazineSwitch_CallBack( ) 函数是在何时被调用的?debug下似乎未见调用。
以上是关于编码的一些问题,可能有看文档时没有注意到的,谢谢!