TI中文支持网
TI专业的中文技术问题咨询交流网站

6678运行一段时间后OpcodeException

使用6678开发程序,今年要添加新功能。

软件环境CCSV5.5,编译器7.4.4/7.4.14/7.4.24都试过,BIOS6.35.4.50.仿真器使用XDS560V2.

8核的核1到核6都要运行相同的代码。

如果开O1级优化,程序运行一切正常,很稳定。

如果开O2级优化,运行一段时间(1分钟到5分钟不等),某一个核心会跳出Opcode Exception.使用ROV跟踪可以看到每次都是在循环的第一句上抛出异常。

出错打印如下:

[C66xx_2] A0=0x0 A1=0xc1c1a00
A2=0x0 A3=0xc1f6d92
A4=0xc3bd49a3 A5=0xc41627c9
A6=0x3ac30727 A7=0xb9c7a59b
A8=0xc45cf011 A9=0x446150bc
A10=0x449c2865 A11=0x44991fb3
A12=0xc1a0d00 A13=0x0
A14=0x0 A15=0x0
A16=0x23c01b9 A17=0x14401ad
A18=0x48a34d00 A19=0x4a35d558
A20=0x2cafe88 A21=0xfc99fdec
A22=0x49719f40 A23=0x4a002150
A24=0x2c9b A25=0x2d7568
A26=0x6a7ffde A27=0xfd3dfeb0
A28=0x7b207fc A29=0x7fc07b2
A30=0xc180000 A31=0x3a000142
B0=0x501 B1=0xc0370ac
B2=0xfea10553 B3=0xfeaffad7
B4=0xfff10882 B5=0x98938
B6=0xfffdbdd4 B7=0xdcb8
B8=0x10cfd02 B9=0xf9ed0097
B10=0x8 B11=0x8
B12=0x49867038 B13=0x0
B14=0x128745b0 B15=0x1285b0b8
B16=0x1219d914 B17=0x0
B18=0x449c2865 B19=0x44991fb3
B20=0xc5377000 B21=0xc03e5dc
B22=0x478adc80 B23=0xc9526f50
B24=0xc9862eb8 B25=0x48d275e0
B26=0x4702f400 B27=0x492ca300
B28=0xc6f6ce00 B29=0xca040448
B30=0x49800378 B31=0xc8d584a0
NTSR=0x1820e
ITSR=0x20d
IRP=0x1282e7f0
SSR=0x1
AMR=0x0
RILC=0x9
ILC=0x0
Exception at 0x12805540
EFR=0x2 NRP=0x12805540
Internal exception: IERR=0x8
Opcode exception
{module#21}: line 255: E_exceptionMin: pc = 0x12805540, sp = 0x1285b0b8.
To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
xdc.runtime.Error.raise: terminating execution

这个问题折磨一个月了。多谢各位的指导。

对应的代码出下:

for (i = 1; i < nInds; i += 2)
{
/*load H*/
H[0] = _mem8_const(&CH_ESTsAnt0[pInds[i]][0]);//ROV指示的异常位置
H[1] = _mem8_const(&CH_ESTsAnt1[pInds[i]][0]);

M_S0 = _dssub2(H[0], H[1]);
M_S1 = _dsadd2(H[0], H[1]);
H[0] = _itoll(_loll(M_S0), _hill(M_S0));
H[1] = _itoll(_loll(M_S1), _hill(M_S1));

/*M = H[0][0]*H[1][1] – H[1][0]*H[0][1]*/
result = _dcmpy(M_S1, H[0]);
M = _dintsp(_dssub(_hi128(result), _lo128(result)));
M_M = _dmpysp(M, M);
M_2 = _rcpsp(M_DEMOD_ROT_FACTOR * (_hif2(M_M) + _lof2(M_M)));
M = _dmpysp(M, _fdmvd_f2(M_2, M_2));

M_S1 = _amem8_const(&AntREs[pInds[i]][0]);
/*layer 0, HY[0] = H[1][1]Y[0] – H[1][0]Y[1]*/
result = _dcmpy(M_S1, H[1]);
M_M = _dintsp(_dssub(_lo128(result), _hi128(result)));
result = _cmpysp(M, M_M);
M_M = _dsubsp(_hif2_128(result), _lof2_128(result));

_amem4(&CodeWordSofts[0][i*qm0]) = _swap2(_dspinth(M_M));

/*layer 1, HY[1] = H[0][0]Y[1] – H[0][1]Y[0]*/
result = _dcmpy(M_S1, H[0]);
M_M = _dintsp(_dssub(_hi128(result), _lo128(result)));
result = _cmpysp(M, M_M);
M_M = _dsubsp(_hif2_128(result), _lof2_128(result));

_amem4(&CodeWordSofts[1][i*qm1]) = _swap2(_dspinth(M_M));
}

Shine:

请问只运行单核会有这个问题吗?是6个核同时运行的时候才有这个问题?

赞(0)
未经允许不得转载:TI中文支持网 » 6678运行一段时间后OpcodeException
分享到: 更多 (0)