Benchmarking test code for various operations

Dependencies:   mbed

Fork of benchmark by Igor Martinovski

Benchmarking the performance of various mbed boards that I have

Using the excellent code by Igor, I have benchmarked the performance of the following platforms:

The data can be found in this link: https://docs.google.com/spreadsheets/d/1d5BcNvC341xvktRJ6DC3wdlI6wuv0FjCvCqHAnfINmQ/pubhtml

For the hyperbolic tan (tanh) function, I made a graph showing how the clock speed of various ARM Cortex-M4 boards with FPU affects the computation time in microseconds. Computation Time - tanh

Revision:
3:ec2e20a9bd03
Parent:
2:fc68d524dd7d
--- a/main.cpp	Thu Nov 19 21:41:58 2015 +0000
+++ b/main.cpp	Tue Feb 28 20:54:35 2017 +0000
@@ -13,17 +13,25 @@
 */
 
 #define ITERATIONS 1000000    // Number of calculations.
-#define CLOCK 48              // Clock freqency in MHz
+#define CLOCK 64              // Clock freqency in MHz
 Timer timer;                       // Timer..
 
 Serial pc(USBTX, USBRX);
 float number_of_cycles, single_operation_time;
-volatile int a, b, c;              // Int operands and result. Must be volatile!
-//volatile float a, b, c;            // Float operands and result. Must be volatile!
+//volatile int a, b, c;              // Int operands and result. Must be volatile!
+volatile float a, b, c;            // Float operands and result. Must be volatile!
 //volatile double a, b, c;            // Float operands and result. Must be volatile!
 
 int main() {
 
+    // Apparently I'm not getting full speed!? 
+    // https://developer.mbed.org/forum/mbed/topic/229/?page=1
+    // https://developer.mbed.org/questions/55557/CPU-clock-of-upto-100MHz/  
+    printf("SystemCoreClock = %d MHz\r\n", SystemCoreClock/1000000);
+    // Need external crystal to make it run faster?
+    // https://developer.mbed.org/users/dreschpe/code/ST_401_84MHZ/
+    // https://developer.mbed.org/users/oliverb/notebook/crystal-oscillator-notes/
+
     unsigned int i, for_time, total_time, operation_time;
     a=2.3;
     b=5.33;
@@ -44,14 +52,15 @@
     this for loop. */
     for (i=0; i<ITERATIONS; i++){
         
-        a = b;
+//        a = b;
 //        c = a+b;
 //        c = a*b;
 //        c = a/b;
 //        a = sqrt(b);
 //        a = log(b);
 //        a = tanh(b);
-
+//        a = (10*pow(b,3) + 105*b)/(pow(b,4) + 45*pow(b,2) + 105);
+        a = (10*b*b*b + 105*b)/(b*b*b*b + 45* + 105);
     }
     
     total_time=timer.read_us();