Compact Flash I/O test

Dependencies:   mbed

Revision:
1:dc171f34db9b
Parent:
0:6b1e6c9e48ba
--- a/main.cpp	Tue Dec 27 02:03:56 2011 +0000
+++ b/main.cpp	Fri Dec 30 21:02:16 2011 +0000
@@ -1,166 +1,18 @@
 #include "mbed.h"
 #include "ff.h"
 #include "diskio.h"
-
-Serial pc(USBTX, USBRX); // tx, rx
-
-CHAR ModelName[81] = {0};
-CHAR SerialNumber[9] = {0};
-CHAR FirmwareVerion[41] = {0};
-BYTE DataBuf[512];
-BYTE DataBufCheck[512];
-
-
-Timer DataSpeedTimer;
-
-#define SECTORS_TO_READ_WRITE  4096
-
+#include "MODSERIAL.h"
+#include "Terminal.h"
+#include "usbhost_inc.h"
 
 int main()
  {
-    DWORD i,j,k;
-    DWORD NumSectors;
-    DWORD Sector;
     InitCompactFlashInterface();
-    float DataWriteSpeed = 0;
-    float DataReadSpeed = 0;
-    float DataReadWriteSpeed = 0;
-
-
-    for(i=0;i<512;i++)
-        DataBuf[i] = rand();
-
+    InitTerminal();
+    
    while(1)
    {
-        wait(2.0);
-        if(disk_status(0)&STA_NODISK)
-        {
-            pc.printf("\r\n\r\nNo Disk\r\n");
-        }
-        else
-        {
-              pc.printf("\r\n\r\nDisk Detected\r\n\r\n\n");
-              if(disk_initialize(0)&STA_NOINIT)
-              {
-                pc.printf("Disk Failed Initialization\r\n");
-              }
-              else
-              {
-                  pc.printf("Disk Initialization Success!\r\n");
-                  
-                  
-                  pc.printf("Probing attached Disk\r\n");
-                  pc.printf("-----------------------\r\n");
-                  
-                  disk_ioctl (0,        /* Physical drive nmuber (0) */
-                              GET_SECTOR_COUNT,        /* Control code */
-                              &NumSectors        /* Buffer to send/receive data block */
-                              ); 
-                  disk_ioctl (0,        /* Physical drive nmuber (0) */
-                              ATA_GET_MODEL,        /* Control code */
-                              ModelName        /* Buffer to send/receive data block */
-                              ); 
-                  disk_ioctl (0,        /* Physical drive nmuber (0) */
-                              ATA_GET_REV,        /* Control code */
-                              FirmwareVerion        /* Buffer to send/receive data block */
-                              ); 
-                  disk_ioctl (0,        /* Physical drive nmuber (0) */
-                             ATA_GET_SN,        /* Control code */
-                              SerialNumber       /* Buffer to send/receive data block */
-                              ); 
-                
-                
-                 pc.printf("Model Name: %d\r\n", ModelName);
-                 pc.printf("Firmware Version: %s\r\n",FirmwareVerion);
-                 pc.printf("Serial Number: %s\r\n",SerialNumber);
-                 pc.printf("Number of Sectors: %d\r\n",NumSectors);  
-                     
-                 DataSpeedTimer.reset();
-                 DataSpeedTimer.start();    
-                
-                 pc.printf("Data write test started...\r\n\r\n",DataReadSpeed);
-                 for(i=0;i<SECTORS_TO_READ_WRITE;i++)
-                 {
-                     if(disk_write (0,&DataBuf[0],i,1) == RES_ERROR)
-                        {
-                            pc.printf("Error writing test block %d, stopping.\r\n", i);
-                            break;
-                        }
-                 }    
-                 DataSpeedTimer.stop();
-                 
-                 DataWriteSpeed = (((SECTORS_TO_READ_WRITE * 512.0)/1024.0))/(DataSpeedTimer.read());
-                 pc.printf("Data write speed %.1f kb/s\r\n",DataWriteSpeed);
-                 
-                 
-                 pc.printf("Data read test started...\r\n\r\n",DataReadSpeed);
-                 DataSpeedTimer.reset();
-                 DataSpeedTimer.start();    
-                 for(i=0;i<SECTORS_TO_READ_WRITE;i++)
-                 {
-                     if(disk_read (0,&DataBuf[0],i,1) == RES_ERROR)
-                        {
-                            pc.printf("Error reading test block %d, stopping.\r\n", i);
-                            break;
-                        }
-                 }
-                 DataSpeedTimer.stop();
-                 
-                 DataReadSpeed = (((SECTORS_TO_READ_WRITE * 512.0)/1024.0))/(DataSpeedTimer.read());
-                 pc.printf("Data read speed %.1f kb/s\r\n",DataReadSpeed);
-                 
-                 
-                 pc.printf("Data read/write test started...\r\n\r\n",DataReadSpeed);
-                 DataSpeedTimer.reset();
-                 DataSpeedTimer.start();    
-                 for(j=0;j<SECTORS_TO_READ_WRITE;j++)
-                 {
-                    
-                    for(i=0;i<512;i++)
-                    {
-                        DataBuf[i] = rand();
-                        DataBufCheck[i] = 0;
-                    }
-                   
-                 
-                     
-                       if(disk_write (0,&DataBuf[0],j,1) == RES_ERROR)
-                        {
-                            pc.printf("Error writing test block %d, stopping.\r\n", i);
-                            break;
-                        }
-                    
-                     if(disk_read (0,&DataBufCheck[0],j,1) == RES_ERROR)
-                        {
-                            pc.printf("Error reading test block %d, stopping.\r\n", i);
-                            
-                            break;
-                        }
-              
-                        
-                    for(i=0;i<512;i++)
-                    {
-                        if(DataBuf[i]!=DataBufCheck[i])
-                        {
-                              pc.printf("Readback failure on test block %d byte %d\r\n",j,i);
-               
-                                for(k=0;k<512;k++)
-                                {
-                                    pc.printf("k:%d     Wrote: %d  Read: %d\r\n",k,DataBuf[k],DataBufCheck[k]);
-                                }
-                              break;
-                        }
-                    }
-                 }
-                 DataSpeedTimer.stop();
-                 
-                 DataReadWriteSpeed = (((SECTORS_TO_READ_WRITE * 512.0)/1024.0))/(DataSpeedTimer.read());
-                 pc.printf("Data read/write speed %.1f kb/s\r\n",DataReadWriteSpeed);
-                 
-              }
-        }
-        
-        
+     ProcessTerminal();
    }
    
 }