Пример #1
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();
}
Пример #2
0
void write_test(void) {
  int i;
  unsigned int then, now;
  eFile_Init();
  eFile_Format();
  // format buffer with dummy data
  for(i = 0; i < 512; i++) {
    buffer[i] = 0xA5;
  }
  // possibly should just use OS_Time()
  then = OS_MsTime();
  // write 10 blocks
  for(i = 0; i < 10; i++) {
    eDisk_WriteBlock(buffer, i);
  }
//   now = OS_MsTime();
//   OS_AddThread(&SH_Shell, 128, 0);
// 	OS_Sleep(1000);
// 	OS_Suspend();
//   printf("Write test took %d ms", now - then);
//   eFile_Format();
  OS_Kill();
}