aboutsummaryrefslogtreecommitdiff
path: root/Client/ThirdParty/libfixmath/benchmarks/interface-arm.c
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-30 22:25:37 +0800
committerchai <chaifix@163.com>2021-11-30 22:25:37 +0800
commit9e0e01b7f4375063f06e494113187d48614628e0 (patch)
tree21a4901612ad92c121f4c887a33b1bbbe87c6b00 /Client/ThirdParty/libfixmath/benchmarks/interface-arm.c
+init
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;
+}
+
+