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

TCP3d_C 和AB有些矛盾

谢谢Andy,接上次的提问http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/69186/164797.aspx#164797。

目前:TCP3d_C.目前这个片只要使用,头两个块肯定就是错的 ,即使头两个块是 TCP3d_A做的。

比如:TCP3d_A做#1-# 9  TCP3d_C做#10-# 17   TCP3d_C做#18 -# 25    这时候#1 和#2 肯定错;

单独让A、B、A&B跑都没问题,单独跑C、A&C B&C都会出现问题。

(电源打开了的)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* hardware resource init */
    ucUsedTcpId_A = 0;
    tTcp3dResInfo.ucTCPId = ucUsedTcpId_A;
    tTcp3dResInfo.ucInEdmaTpcc = gtTcp3dInstInfo[ucUsedTcpId_A].ucEdmaCCInst;  /* set the same EDMACC with the TCP3D output channel */
    tTcp3dResInfo.ucInEdmaTc[0] = 0; /* TC for input channel, set different TC for ping-pong channel */
    tTcp3dResInfo.ucInEdmaTc[1] = 0;
    tTcp3dResInfo.ucOutEdmaTc[0] = 0;/* set the same TC for the in/out channel pair */
    tTcp3dResInfo.ucOutEdmaTc[1] = 0;
    tTcp3dResInfo.ucInEdmaCh[0] = 10;
    tTcp3dResInfo.ucInEdmaCh[1] = 11;
    tTcp3dResInfo.uwInPaRAMSetStartIdx = 10;
    tTcp3dResInfo.uwOutPaRAMSetStartIdx = 50;
    /* common application parameters */
    tTcp3dComAppInfo.ucModeSel = TEST_MODE;/* 1-LTE mode, 3-WCDMA split mode, 2-Wimax double buffer mode */
    tTcp3dComAppInfo.ucStopSel = STOP_SEL;/* 1-CRC stop, 0-max iteration */
    tTcp3dComAppInfo.ucMaxItr = 8;
    tTcp3dComAppInfo.ucSNRVal = 14;
    /* called after cell setup */
    Keystone_TCP3D_Init((void*)&gtTcp3dHdl[ucUsedTcpId_A],
                        &tTcp3dResInfo,
                        &tTcp3dComAppInfo,
                        gtTcp3dIcCfg_A,
                        TCP3d_A_BLOCK_NUM);
    /* hardware resource init */
    ucUsedTcpId_B = 1;
    tTcp3dResInfo.ucTCPId = ucUsedTcpId_B;
    tTcp3dResInfo.ucInEdmaTpcc = gtTcp3dInstInfo[ucUsedTcpId_B].ucEdmaCCInst;  /* set the same EDMACC with the TCP3D output channel */
    tTcp3dResInfo.ucInEdmaTc[0] = 1; /* TC for input channel, set different TC for ping-pong channel */
    tTcp3dResInfo.ucInEdmaTc[1] = 1;
    tTcp3dResInfo.ucOutEdmaTc[0] = 1;/* set the same TC for the in/out channel pair */
    tTcp3dResInfo.ucOutEdmaTc[1] = 1;
    tTcp3dResInfo.ucInEdmaCh[0] = 12;
    tTcp3dResInfo.ucInEdmaCh[1] = 13;
    tTcp3dResInfo.uwInPaRAMSetStartIdx = 110;
    tTcp3dResInfo.uwOutPaRAMSetStartIdx = 150;
    /* common application parameters */
    tTcp3dComAppInfo.ucModeSel = TEST_MODE;/* 1-LTE mode, 3-WCDMA split mode, 2-Wimax double buffer mode */
    tTcp3dComAppInfo.ucStopSel = STOP_SEL;/* 1-CRC stop, 0-max iteration */
    tTcp3dComAppInfo.ucMaxItr = 8;
    tTcp3dComAppInfo.ucSNRVal = 14;
    /* called after cell setup */
    Keystone_TCP3D_Init((void*)&gtTcp3dHdl[ucUsedTcpId_B],
                        &tTcp3dResInfo,
                        &tTcp3dComAppInfo,
                        gtTcp3dIcCfg_B,
                        TCP3d_B_BLOCK_NUM);
    /* hardware resource init */
    ucUsedTcpId_C = 2;
    tTcp3dResInfo.ucTCPId = ucUsedTcpId_C;
    tTcp3dResInfo.ucInEdmaTpcc = gtTcp3dInstInfo[ucUsedTcpId_C].ucEdmaCCInst;  /* set the same EDMACC with the TCP3D output channel */
    tTcp3dResInfo.ucInEdmaTc[0] = 2; /* TC for input channel, set different TC for ping-pong channel */
    tTcp3dResInfo.ucInEdmaTc[1] = 2;
    tTcp3dResInfo.ucOutEdmaTc[0] = 2;/* set the same TC for the in/out channel pair */
    tTcp3dResInfo.ucOutEdmaTc[1] = 2;
    tTcp3dResInfo.ucInEdmaCh[0] = 14;
    tTcp3dResInfo.ucInEdmaCh[1] = 15;
    tTcp3dResInfo.uwInPaRAMSetStartIdx = 210;
    tTcp3dResInfo.uwOutPaRAMSetStartIdx = 250;
    /* common application parameters */
    tTcp3dComAppInfo.ucModeSel = TEST_MODE;/* 1-LTE mode, 3-WCDMA split mode, 2-Wimax double buffer mode */
    tTcp3dComAppInfo.ucStopSel = STOP_SEL;/* 1-CRC stop, 0-max iteration */
    tTcp3dComAppInfo.ucMaxItr = 8;
    tTcp3dComAppInfo.ucSNRVal = 14;
    /* called after cell setup */
    Keystone_TCP3D_Init((void*)&gtTcp3dHdl[ucUsedTcpId_C],
                        &tTcp3dResInfo,
                        &tTcp3dComAppInfo,
                        gtTcp3dIcCfg_C,
                        TCP3d_C_BLOCK_NUM);
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        Keystone_TCP3D_TTICfg((void*)&gtTcp3dHdl[ucUsedTcpId_A],
                              gtTcp3dBlockInfo_A,
                              TCP3d_A_BLOCK_NUM,
                              1);
//      Keystone_TCP3D_TTICfg((void *)&gtTcp3dHdl[ucUsedTcpId_B],
//                            gtTcp3dBlockInfo_B,
//                            TCP3d_B_BLOCK_NUM,
//                            1);
        Keystone_TCP3D_TTICfg((void*)&gtTcp3dHdl[ucUsedTcpId_C],
                              gtTcp3dBlockInfo_C,
                              TCP3d_C_BLOCK_NUM,
                              1);
        /* get the TCP3D handle according to ucFreeTcpId */
        Keystone_TCP3D_Submit((void*)&gtTcp3dHdl[ucUsedTcpId_A],TCP3d_A_BLOCK_NUM);
        /* get the TCP3D handle according to ucFreeTcpId */
//      Keystone_TCP3D_Submit((void *)&gtTcp3dHdl[ucUsedTcpId_B],TCP3d_B_BLOCK_NUM);
        /* get the TCP3D handle according to ucFreeTcpId */
        Keystone_TCP3D_Submit((void*)&gtTcp3dHdl[ucUsedTcpId_C],TCP3d_C_BLOCK_NUM);
        /* check all UE's decoder status */
//        Keystone_TCP3D_PollFree((void *)&gtTcp3dHdl[ucUsedTcpId_B], TCP3d_B_BLOCK_NUM);
        /* check all UE's decoder status */
        Keystone_TCP3D_PollFree((void*)&gtTcp3dHdl[ucUsedTcpId_C], TCP3d_C_BLOCK_NUM);
        /* check all UE's decoder status */
        Keystone_TCP3D_PollFree((void*)&gtTcp3dHdl[ucUsedTcpId_A], TCP3d_A_BLOCK_NUM);

谢谢Andy!

Xie
Andy Yin1:

我基于你的配置修改只测试TCP3D_C, 输入3个block,输出译码结果都是对的,你那边先用例程中的测试数据进行TCP3D C单独测试能对么。

chen xie:

回复 Andy Yin1:

您好!

1.使用的是测试数据;

2.只测试TCP_C我这也是对的,A、B、A&B也是对的,错误的是A&B&C、B&C、A&C同时使用的情况。而且多输入几个块,每个intsance 8个块。

(测试数据的对错没看数,就是和例程一样看他的output status寄存器是对的)

3.我又想了想不同的地方可能是我开启了BCP,不知道这个会不会有影响,我在测试一下BCP不初始化的情况。

谢谢!

xie

赞(0)
未经允许不得转载:TI中文支持网 » TCP3d_C 和AB有些矛盾
分享到: 更多 (0)