aboutsummaryrefslogtreecommitdiff
path: root/Client/ThirdParty/libfixmath/benchmarks/interface-arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'Client/ThirdParty/libfixmath/benchmarks/interface-arm.c')
-rw-r--r--Client/ThirdParty/libfixmath/benchmarks/interface-arm.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/Client/ThirdParty/libfixmath/benchmarks/interface-arm.c b/Client/ThirdParty/libfixmath/benchmarks/interface-arm.c
new file mode 100644
index 0000000..d0e9969
--- /dev/null
+++ b/Client/ThirdParty/libfixmath/benchmarks/interface-arm.c
@@ -0,0 +1,28 @@
+#include "interface.h"
+#include <stdint.h>
+#include <stdio.h>
+
+// This targets an ARM Cortex M3 core using QEmu LM3S6965 emulation.
+#define STBASE 0xE000E000
+#define STCTRL (*(volatile uint32_t*)(0x010 + STBASE))
+#define STRELOAD (*(volatile uint32_t*)(0x014 + STBASE))
+#define STCURRENT (*(volatile uint32_t*)(0x018 + STBASE))
+
+
+void interface_init()
+{
+ STRELOAD = 0x00FFFFFF;
+ STCTRL = 5;
+}
+
+void start_timing()
+{
+ STCURRENT = 0;
+}
+
+uint16_t end_timing()
+{
+ return 0x00FFFFFF - STCURRENT - 4;
+}
+
+