//******************* Custom Test Main 3 ********** //do single eFile functions and check what they return. int main(void){ int x; char name[2]; extern union dirUnion DIRBlock; name[0]='a'; name[1]='\0'; x=eFile_Init(); x=eDisk_ReadBlock(DIRBlock.byte,0); DIRBlock.headers[0].name[0]='A'; eDisk_ReadBlock(DIRBlock.byte,0); x=x; x=eFile_Format(); x=x; x=eFile_Create(name); x=x; x=eFile_GetBlock(); while(1){ ;} return 0; }
void TestDisk(void){ DSTATUS result; unsigned short block; int i; unsigned long n; // simple test of eDisk printf("\n\rEE345M/EE380L, Lab 5 eDisk test\n\r"); result = eDisk_Init(0); // initialize disk if(result) diskError("eDisk_Init",result); printf("Writing blocks\n\r"); n = 1; // seed for(block = 0; block < MAXBLOCKS; block++){ for(i=0;i<512;i++){ n = (16807*n)%2147483647; // pseudo random sequence buffer[i] = 0xFF&n; } GPIO_PF3 = 0x08; // PF3 high for 100 block writes if(eDisk_WriteBlock(buffer,block))diskError("eDisk_WriteBlock",block); // save to disk GPIO_PF3 = 0x00; } printf("Reading blocks\n\r"); n = 1; // reseed, start over to get the same sequence for(block = 0; block < MAXBLOCKS; block++){ GPIO_PF2 = 0x04; // PF2 high for one block read if(eDisk_ReadBlock(buffer,block))diskError("eDisk_ReadBlock",block); // read from disk GPIO_PF2 = 0x00; for(i=0;i<512;i++){ n = (16807*n)%2147483647; // pseudo random sequence if(buffer[i] != (0xFF&n)){ printf("Read data not correct, block=%u, i=%u, expected %u, read %u\n\r",block,i,(0xFF&n),buffer[i]); OS_Kill(); } } } printf("Successful test of %u blocks\n\r",MAXBLOCKS); OS_Kill(); }
static int _SH_SectorDump(void) { int i; unsigned char* c = (unsigned char*)funcBuff.c; if(!_SH_cmd.args[0][0]) { fprintf(stderr, "Usage: %s <sector number>\n", _SH_cmd.command); return 1; } eDisk_ReadBlock(c, atoi(_SH_cmd.args[0])); for(i = 0; i < 512; i += 4) { unsigned long l; l = ((c[i] << 24) | (c[i+1] << 16) | (c[i+2] << 8) | c[i+3]); printf("%03x: %08x\n", i, l); } return 0; }
void read_test(void) { int i; unsigned int then, now; eFile_Init(); eFile_Format(); OS_AddThread(&write_test, 128, 0); OS_Sleep(2000); then = OS_MsTime(); // read 10 blocks for(i = 0; i < 10; i++) { eDisk_ReadBlock(buffer, i); } now = OS_MsTime(); OS_AddThread(&SH_Shell, 128, 0); OS_Sleep(1000); OS_Suspend(); printf("Read test took %d ms", now - then); eFile_Format(); OS_Kill(); }