TMS320F280039C: 使用stl库函数,测试march内存实验时,无法模拟错误注入的情形

Part Number: TMS320F280039C

这个是我的测试代码,在程序运行STL_March_testRAM这个函数的时候,我手动改掉0x0000D000这个地址上的值,但是STL_March_checkErrorStatus仍然返回一个测试通过的结果

STL_March_testRAM(STL_MARCH_PATTERN_ONE,0x0000D000, 0x00007FF);
SelfTestStatus = STL_March_checkErrorStatus();
if (SelfTestStatus != STL_MARCH_PASS)
{
gErrorTestFlag = 1;
gStructErrorTestFlag.RAM_Start_Check = 1;
}

然后我又使用库函数中的STL_March_injectError这个函数注入一个错误,结果还是返回一个测试通过的结果,请问这是为什么

  • 您好

    该测试依靠触发 RAM 的 ECC 逻辑来检测问题。 预计 STL_March_injectError()函数将不能与 STL_March_testRAM()函数一起使用。 错误注入函数使用 RAM 测试模式在数据和 ECC 之间创建不匹配、ECC 将在读取时被检测到。 然而,STL_March_testRAM()会在读取触发错误检测逻辑之前将其模式写入 RAM 位置(从而覆盖我们注入的错误)。 您会注意到,如果您使用 STL_March_testRAMCopy ()函数,您可以检测到错误,因为 STL_March_testRAMCopy ()函数会在写入模式之前读取内存位置。