Procházet zdrojové kódy

CMSIS-DSP: Improvement to test framework.
Software markers for IPSS.

Christophe Favergeon před 5 roky
rodič
revize
6fbbfc3223

+ 11 - 0
Platforms/IPSS/ARMCA32/system_ARMCA32.c

@@ -42,6 +42,17 @@
 #define SERIAL_BASE_ADDRESS (0x13000000)
 
 #define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
+#define SOFTWARE_MARK  *((volatile unsigned *) (SERIAL_BASE_ADDRESS+4))
+
+void start_ipss_measurement()
+{
+  SOFTWARE_MARK = 1;
+}
+
+void stop_ipss_measurement()
+{
+  SOFTWARE_MARK = 0;
+}
 
 int stdout_putchar(char txchar)
 {

+ 11 - 1
Platforms/IPSS/ARMCM0/system_ARMCM0.c

@@ -53,7 +53,17 @@ FILE __stderr;
 #define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
 
 
- 
+#define SOFTWARE_MARK  *((volatile unsigned *) (SERIAL_BASE_ADDRESS+4))
+
+void start_ipss_measurement()
+{
+  SOFTWARE_MARK = 1;
+}
+
+void stop_ipss_measurement()
+{
+  SOFTWARE_MARK = 0;
+}
 
 /*----------------------------------------------------------------------------
   System Core Clock Variable

+ 11 - 1
Platforms/IPSS/ARMCM33/system_ARMCM33.c

@@ -69,7 +69,17 @@ FILE __stderr;
 #define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
 
 
- 
+#define SOFTWARE_MARK  *((volatile unsigned *) (SERIAL_BASE_ADDRESS+4))
+
+void start_ipss_measurement()
+{
+  SOFTWARE_MARK = 1;
+}
+
+void stop_ipss_measurement()
+{
+  SOFTWARE_MARK = 0;
+}
 
 #include "cmsis_compiler.h"
 

+ 11 - 1
Platforms/IPSS/ARMCM4/system_ARMCM4.c

@@ -61,7 +61,17 @@ FILE __stderr;
 #define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
 
 
- 
+#define SOFTWARE_MARK  *((volatile unsigned *) (SERIAL_BASE_ADDRESS+4))
+
+void start_ipss_measurement()
+{
+  SOFTWARE_MARK = 1;
+}
+
+void stop_ipss_measurement()
+{
+  SOFTWARE_MARK = 0;
+} 
 
 
 

+ 10 - 0
Platforms/IPSS/ARMCM7/system_ARMCM7.c

@@ -87,7 +87,17 @@ void SystemCoreClockUpdate (void)
 
 #define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
 
+#define SOFTWARE_MARK  *((volatile unsigned *) (SERIAL_BASE_ADDRESS+4))
 
+void start_ipss_measurement()
+{
+  SOFTWARE_MARK = 1;
+}
+
+void stop_ipss_measurement()
+{
+  SOFTWARE_MARK = 0;
+}
  
 
 

+ 11 - 0
Platforms/IPSS/ARMv81MML/system_ARMv81MML.c

@@ -249,6 +249,17 @@ typedef struct
 #define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
 
 
+#define SOFTWARE_MARK  *((volatile unsigned *) (SERIAL_BASE_ADDRESS+4))
+
+void start_ipss_measurement()
+{
+  SOFTWARE_MARK = 1;
+}
+
+void stop_ipss_measurement()
+{
+  SOFTWARE_MARK = 0;
+}
 
 int stdout_putchar(char txchar)
 {

+ 7 - 0
Platforms/IPSS/ipss_bench.h

@@ -0,0 +1,7 @@
+#ifndef IPSS_BENCH_H
+#define IPSS_BENCH_H 
+
+extern void start_ipss_measurement();
+extern void stop_ipss_measurement();
+
+#endif

+ 1 - 0
Platforms/IPSS/platform.cmake

@@ -3,4 +3,5 @@ function(configure_platform PROJECTNAME ROOT CORE PLATFORMFOLDER)
     #    target_sources(${PROJECTNAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/pagetables.s)
     #    
     #endif()
+    target_include_directories(${PROJECTNAME} PUBLIC ${PLATFORMFOLDER})
 endfunction()

+ 1 - 0
Testing/main.cpp

@@ -53,6 +53,7 @@ extern "C" const char *patternData;
 extern "C" void _exit(int return_code);
 #endif
 
+
 int main()
 {
     int r;

+ 0 - 1
Testing/testmain.cpp

@@ -23,7 +23,6 @@ using namespace std;
 #include "TestDrive.h"
 
 
-
 int testmain(const char *patterns)
 {
     char *memoryBuf=NULL;