使用CCS5.4 对EVMDM8168 DDR2 进行测试,测试结果为
第一次测试
Error at 8d033180
FAIL... error code 32... quitting
第二次测试
Error at 82b8ccac
FAIL... error code 32... quitting
第三次测试
Error at b80b7058
FAIL... error code 32... quitting
DDR2只有0x40000000这么大,为何会在上述地址出错?下面是测试代码。
Int16 ddr_test( )
{
Int16 errors = 0;
Uint32 ddr_base;
Uint32 ddr_size;
/* ---------------------------------------------------------------- *
* Quick Test *
* ---------------------------------------------------------------- */
ddr_base = DDR_BASE_0;
ddr_size = 0x1000; // 0x20000000; Full DDR2 memory range
if ( meminvaddr32( ddr_base, ddr_size ) )
errors += 0xff;
if (errors)
return errors;
/* ---------------------------------------------------------------- *
* Data Line Test *
* ---------------------------------------------------------------- */
ddr_base = DDR_BASE_0;
ddr_size = 0x010000; // Partial memory range
if ( memfill32( ddr_base, ddr_size, 0xffffffff ) )
errors += 0x01;
if ( memfill32( ddr_base, ddr_size, 0xaaaaaaaa ) )
errors += 0x02;
if ( memfill32( ddr_base, ddr_size, 0x55555555 ) )
errors += 0x04;
if ( memfill32( ddr_base, ddr_size, 0x00000000 ) )
errors += 0x08;
if (errors)
return errors;
/* ---------------------------------------------------------------- *
* Address Line Test *
* ---------------------------------------------------------------- */
/* Testing all DDR */
ddr_base = DDR_BASE_0;
ddr_size = 0x40000000; // Full DDR2 memory range
if ( meminvaddr32( ddr_base, ddr_size ) )//这个地方进去测试就出现了错误,前面一切正常pass
errors += 0x20;
return errors;
}