#话不多说,先上图,再上代码!
ddr_base = DDR_BASE;
ddr_size = 0x100000; // 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;
Uint32 memfill32( Uint32 start, Uint32 len, Uint32 val )
{
Uint32 i;
Uint32 end = start + len;
Uint32 errorcount = 0;
/* Write Pattern */
for ( i = start; i < end; i += 4 )
{
*( volatile Uint32* )i = val;
}
/* Read Pattern */
for ( i = start; i < end; i += 4 )
{
if ( *( volatile Uint32* )i != val )
{
errorcount++