Program to benchmark the speed of the different file system options versus placing data directly into arrays.

Dependencies:   DMBasicGUI DMSupport

This program is used to measure the performance of the different file system options on the LPC4088 Display Module.

The performance wiki page and more specifically the software part describes this program and the output.

As the program doesn't use the display at all it can be used on both the 4.3" and 5" display modules.

Revision:
6:47b4bed9fa13
Parent:
5:788710a95951
--- a/main.cpp	Thu Mar 26 16:02:38 2015 +0000
+++ b/main.cpp	Tue Nov 05 06:44:07 2019 +0000
@@ -264,6 +264,7 @@
 };
 
 static MCIFileSystem*  mcifs;
+static FATFileSystem*  mciFatFs;
 static QSPIFileSystem* qspifs;
 static USBHostMSD*     usbmsd;
 
@@ -355,7 +356,9 @@
   RtosLog* log = DMBoard::instance().logger();
   bool ok = false;
   
-  mcifs = new MCIFileSystem("mci", P4_16);
+  mcifs = new MCIFileSystem(P4_16);
+  mciFatFs = new FATFileSystem("mci");
+  mciFatFs->mount(mcifs);
   
   if (mcifs->cardInserted()) {
     log->printf("uSD card detected\n");
@@ -387,10 +390,11 @@
 
   usbmsd = new USBHostMSD("usb");
   USBHost* host = USBHost::getHostInst();
-  host->signalOnConnections(Thread::gettid(), USBH_CONNECTION_EVENT);
+  EventFlags connectionEvent;
+  host->signalOnConnections(&connectionEvent, USBH_CONNECTION_EVENT);
 
   log->printf("waiting for connect/disconnect message from USBHost...\n");
-  Thread::signal_wait(USBH_CONNECTION_EVENT);
+  connectionEvent.wait_any(USBH_CONNECTION_EVENT);
     
   if (usbmsd->connect()) {
     log->printf("USB MemoryStick detected\n");
@@ -953,7 +957,7 @@
       break;
     }
     
-    log->printf("\n\nBenchmarking. (Built "__DATE__" at "__TIME__")\n\n");
+    log->printf("\n\nBenchmarking. (Built " __DATE__ " at " __TIME__ ")\n\n");
     
     log->printf("Preparing file systems for benchmarking\n");
     if (!prepare()) {
@@ -964,13 +968,13 @@
     runReadBenchmarks();
     runImageBenchmarks();
     
-    Thread::wait(1000);
+    ThisThread::sleep_for(1000);
     log->printf("Press the USER button to run WRITE tests!\n");
     while(!board->buttonPressed()) {
-      Thread::wait(20);
+      ThisThread::sleep_for(20);
     }
     while(board->buttonPressed()) {
-      Thread::wait(20);
+      ThisThread::sleep_for(20);
     }
     
     runWriteBenchmarks();
@@ -982,7 +986,7 @@
   }  
 
   while(true) {
-    Thread::wait(1000);
+    ThisThread::sleep_for(1000);
   }   
 }