This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6670 TCP3d的问题



大家好,

关于TCP3D的使用,有几个疑问:

1. C6670的TCP3D A、B、C是不是完全一样的东西?

2. C6670有4个Core,每个Core同时调用一个TCP3D?3个TCP3D是否满足不了4个Core的需求?必然有两个Core分时调用其中某个TCP3D(A、B或C)?

3. 在PDK自带的TCP3D的例子中,有如下代码

instNum = getTcp3dInstNum(dspCoreID);

...

INLINE UInt8 getTcp3dInstNum(UInt32 dspCoreID)
{
    UInt8 instNum;

    if ( dspCoreID == 0 )
        instNum = CSL_TCP3D_A; //  First instance
    else
        instNum = CSL_TCP3D_B; //  Second instance

    return instNum;
}

即Core0使用TCP3D_A,而Core1~Core3调用TCP3D_B。

那么Core1~Core3同时调用TCP3D_B应该是互斥操作,需要用信号量进行维护的吧?

谢谢!

  • 3个TCP3D的功能是完全一样的,只是输入输出EDMA及寄存器的地址等不一样。注意TCP3D个数不是与DSP core数量完全设计匹配的,每个TCP3D与core也没有任何固定的连接使用关系,可以任意core使用任意TCP3D,具体可以根据应用的来决定。每个TCP3D最多有两个输入通道,在启动某一个TCP3D的某一个通道时,需要确保该通道前一个输入block的译码结果已经输出,从效率来说建议使用TCP3D输出完成事件来触发下一个block的输入。