Other Parts Discussed in Thread: C2000WARE
Dear Champs,
I am asking this for our customer.
The user has tested RAM parity without problem, but the user has problems on testing ECC RAM and Data.
The user is referring to
C:\ti\c2000\C2000Ware_3_01_00_00\libraries\diagnostic\f28004x\examples\sdl_ex_ram_ecc_parity_test
Questions:
1) The user tested as follows. It was successful in testing RAM parity, but fails in ECC and DATA. Would you please show us if there is anything wrong?
// Testing PARITY
#pragma DATA_SECTION(Ls2_Ram_1_U32, "ramls2");
volatile U32 Ls2_Ram_1_U32 = 0x00000000U;
…
MemCfg_setTestMode(MEMCFG_SECT_LS2, MEMCFG_TEST_WRITE_PARITY);
Ls2_Ram_1_U32 = 0x00000001U;
MemCfg_setTestMode(MEMCFG_SECT_LS2, MEMCFG_TEST_FUNCTIONAL);
Read_Back_Data_U32 = Ls2_Ram_1_U32;
// Testing DATA
#pragma DATA_SECTION(Ls2_Ram_1_U32, "ramls2");
volatile U32 Ls2_Ram_1_U32 = 0x00000000U;
…
MemCfg_setTestMode(MEMCFG_SECT_LS2, MEMCFG_TEST_WRITE_DATA);
Ls2_Ram_1_U32 = 0x00000001U;
MemCfg_setTestMode(MEMCFG_SECT_LS2, MEMCFG_TEST_FUNCTIONAL);
Read_Back_Data_U32 = Ls2_Ram_1_U32;
// Testing ECC
#pragma DATA_SECTION(M1_Ram_1_U32, "ramm1");
volatile U32 M1_Ram_1_U32 = 0x00000000U;
…
MemCfg_setTestMode(MEMCFG_SECT_M1, MEMCFG_TEST_WRITE_ECC);
M1_Ram_1_U32 = 0x00000001U;
MemCfg_setTestMode(MEMCFG_SECT_M1, MEMCFG_TEST_FUNCTIONAL);
Read_Back_Data_U32 = M1_Ram_1_U32;
2) During RAM ECC testing, PC ran to Line 65 (below fig. 1), the user tried to use MemCfg_setTestMode() to change memory M1 to "functional" mode, UCERRFLG.CPURDERR was triggered. And then the user was trying to stepped into function MemCfg_setTestMode(), UCERRFLG.CPURDERR was triggered when the user stepped to Line 400 (below Fig. 2). DXTEST.TEST_M1 was cleared to 00b at Line 399 and then set to 10b at Line 400.
Would you please help us clarify why and how this happened?
Fig. 1
Fig 2.
Wayne Huang






