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;