hi,
I am using AM/DM 37xx Evalution Board .
I am trying to test Memory RAM using ITBOK.
my RAM starting Address is 0x80000000 and end address is 0x8FFFFFFF so number of Bytes is 0xFFFFFFF
For address bus test .
typedef volatile unsigned char REG_U8
addressMask = (nBytes/sizeof(REG_U8) - 1);
pattern = (REG_U8) 0xAAAAAAAA;
antipattern = (REG_U8) 0x55555555;
printf("Running address bus test...");
/* Write the default pattern at each of the power-of-two offsets. */
for (offset = sizeof(REG_U8); (offset & addressMask) != 0; offset <<= 1) {
baseAddress[offset] = pattern;
}
/* Check for address bits stuck high. */
testOffset = 0;
baseAddress[testOffset] = antipattern;
for (offset = sizeof(REG_U8); (offset & addressMask) != 0; offset <<= 1) {
if (baseAddress[offset] != pattern) {
printf("SDRAM - Address Bus Test failed at 0x%x\n", offset);
printf("SDRAM - Check for address bits stuck high failed.\r\n");
p_test_status = test_status = FAILURE;
}
}
In my AM/DM 37x EVM Board , value of addressMask is 0xFFFFFFE
so expression (offset & addressMask) gives zero value at first time so never goes inside any of the for loop.
and address bus testing is not perform .
help me ....