This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

测试DM8168 DDR2 EVM的ddr代码含义



使用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;
}