#include "dsklib.h" int testpattern(unsigned long address, unsigned long length, unsigned long data) { unsigned long addr; unsigned long c31data; int ch; int i; int error = 0; addr = address; gotoxy(1,15); clreol(); printf("Data 0x%.8lX is being written to C31 Memory ", data); for (i = 0; i < length; i++) { putmem(addr, 1, &data); addr++; } gotoxy(1,15); clreol(); printf("Data is being read from C31 Memory "); gotoxy(1,16); addr = address; for (i = 0; i < length; i++) { getmem(addr, 1, &c31data); printf("0x%.8lX = 0x%.8lX \r", addr, c31data); if (c31data != data) { printf("0x%.8lX = 0x%.8lX - FAILED ", addr, c31data); gotoxy(1,24); clreol(); printf("Press 'c' to Continue or 'q' to quit. "); while (!kbhit()); ch = getch(); gotoxy(1,24); clreol(); gotoxy(1,16); clreol(); error++; if ((ch == 'q') || (ch == 'Q')) return error; } addr++; } gotoxy(1,17); clreol(); if (error == 0) printf("Memory Test PASSED"); else printf("Memory Test encountered %d errors", error); gotoxy(1,24); clreol(); printf("Press 'c' to Continue. "); while (!kbhit()); ch = getch(); return error; } int testcntpat(unsigned long address, unsigned long length) { unsigned long addr; unsigned long c31data; unsigned long data; int ch; int i; int error = 0; addr = address; gotoxy(1,15); clreol(); printf("Data is being written to C31 Memory "); for (i = 0; i < length; i++) { data = addr; putmem(addr, 1, &data); addr++; } gotoxy(1,15); clreol(); printf("Data is being read from C31 Memory "); gotoxy(1,16); addr = address; for (i = 0; i < length; i++) { getmem(addr, 1, &c31data); printf("0x%.8lX = 0x%.8lX \r", addr, c31data); if (c31data != addr) { printf("0x%.8lX = 0x%.8lX - FAILED ", addr, c31data); gotoxy(1,24); clreol(); printf("Press 'c' to Continue or 'q' to quit. "); while (!kbhit()); ch = getch(); gotoxy(1,24); clreol(); gotoxy(1,16); clreol(); error++; if ((ch == 'q') || (ch == 'Q')) return error; } addr++; } gotoxy(1,17); clreol(); if (error == 0) printf("Memory Test PASSED"); else printf("Memory Test encountered %d errors", error); gotoxy(1,24); clreol(); printf("Press 'c' to Continue. "); while (!kbhit()); ch = getch(); return error; } void main() { int sel; clrscr(); Detect_Windows(); Init_Communication(10000); HALT_CPU(); // Put C31 into spin0 mode do { clrscr(); gotoxy(1,5); printf("\t\t\tTESTING C31 EXTERNAL SRAM MEMORY \n\n"); printf("\t\t\t 1)..........0xAAAAAAAA \n"); printf("\t\t\t 2)..........0x55555555 \n"); printf("\t\t\t 3)..........Data = Address \n"); printf("\t\t\t 4)..........Quit \n\n"); printf("\t\t\t Select option number (1-4) : "); while (!kbhit()); sel = getch(); switch (sel) { case '1': testpattern(0x100000L, 0x8000, 0xAAAAAAAAL); break; case '2': testpattern(0x100000L, 0x8000, 0x55555555L); break; case '3': testcntpat(0x100000L, 0x8000); break; } } while (sel != '4'); }