CMSIS-DSP: Update link script for test framework.
diff --git a/CMSIS/DSP/Testing/CMakeLists.txt b/CMSIS/DSP/Testing/CMakeLists.txt
index 0a8e236..d132de8 100644
--- a/CMSIS/DSP/Testing/CMakeLists.txt
+++ b/CMSIS/DSP/Testing/CMakeLists.txt
@@ -330,6 +330,10 @@
core_includes(FrameworkLib)
add_executable(Testing main.cpp)
+# To see the file in the scatter load, it must not because
+# linked in a .a archive
+target_include_directories(Testing PRIVATE GeneratedInclude)
+target_sources(Testing PRIVATE patterndata.c)
# With -O2, generated code is crashing on some cycle accurate models.
# (cpp part)
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h
index d3478c9..7df040e 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h
@@ -21,9 +21,11 @@
float32_t *pDst;
float32_t *pState;
- const arm_cfft_instance_f32 *cfftInstance;
+ arm_cfft_instance_f32 cfftInstance;
arm_rfft_fast_instance_f32 rfftFastInstance;
+ arm_status status;
+
arm_dct4_instance_f32 dct4Instance;
arm_rfft_instance_f32 rfftInstance;
arm_cfft_radix4_instance_f32 cfftRadix4Instance;
diff --git a/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp b/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp
index d742ae8..58759c1 100755
--- a/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp
+++ b/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp
@@ -3,34 +3,10 @@
#include "arm_math.h"
#include "arm_const_structs.h"
-const arm_cfft_instance_f32 *arm_cfft_get_instance_f32(uint16_t fftLen)
-{
-switch (fftLen) {
- case 16:
- return(&arm_cfft_sR_f32_len16);
- case 32:
- return(&arm_cfft_sR_f32_len32);
- case 64:
- return(&arm_cfft_sR_f32_len64);
- case 128:
- return(&arm_cfft_sR_f32_len128);
- case 256:
- return(&arm_cfft_sR_f32_len256);
- case 512:
- return(&arm_cfft_sR_f32_len512);
- case 1024:
- return(&arm_cfft_sR_f32_len1024);
- case 2048:
- return(&arm_cfft_sR_f32_len2048);
- case 4096:
- return(&arm_cfft_sR_f32_len4096);
- }
- return(NULL);
-}
void TransformF32::test_cfft_f32()
{
- arm_cfft_f32(this->cfftInstance, this->pDst, this->ifft,this->bitRev);
+ arm_cfft_f32(&(this->cfftInstance), this->pDst, this->ifft,this->bitRev);
}
void TransformF32::test_rfft_f32()
@@ -76,7 +52,7 @@
this->pSrc=samples.ptr();
this->pDst=output.ptr();
- this->cfftInstance=arm_cfft_get_instance_f32(this->nbSamples);
+ status=arm_cfft_init_f32(&cfftInstance,this->nbSamples);
memcpy(this->pDst,this->pSrc,2*sizeof(float32_t)*this->nbSamples);
break;
diff --git a/CMSIS/DSP/Testing/main.cpp b/CMSIS/DSP/Testing/main.cpp
index 4999047..559b1c2 100644
--- a/CMSIS/DSP/Testing/main.cpp
+++ b/CMSIS/DSP/Testing/main.cpp
@@ -1,8 +1,10 @@
#include <stdio.h>
-extern int testmain();
+#include "arm_math.h"
+extern int testmain(const char *);
+extern "C" const char *patternData;
int main()
{
- return(testmain());
+ return(testmain(patternData));
}
diff --git a/CMSIS/DSP/Testing/patterndata.c b/CMSIS/DSP/Testing/patterndata.c
new file mode 100755
index 0000000..f5f940d
--- /dev/null
+++ b/CMSIS/DSP/Testing/patterndata.c
@@ -0,0 +1,15 @@
+#include "arm_math.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "Patterns.h"
+
+const char *patternData=(const char*)patterns;
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/CMSIS/DSP/Testing/testmain.cpp b/CMSIS/DSP/Testing/testmain.cpp
index 14293c6..aecdb43 100644
--- a/CMSIS/DSP/Testing/testmain.cpp
+++ b/CMSIS/DSP/Testing/testmain.cpp
@@ -19,11 +19,10 @@
// char* array describing the tests and the input patterns.
// Reference patterns are ignored in this case.
#include "TestDrive.h"
-#include "Patterns.h"
-int testmain()
+int testmain(const char *patterns)
{
char *memoryBuf=NULL;