CMSIS-DSP: Improved boot code for IPSS in test framework.
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM0/LinkScripts/AC6/lnk.sct b/CMSIS/DSP/Platforms/IPSS/ARMCM0/LinkScripts/AC6/lnk.sct
index fad866a..ed2acaf 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM0/LinkScripts/AC6/lnk.sct
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM0/LinkScripts/AC6/lnk.sct
@@ -13,17 +13,18 @@
     {
         *.o (RESET, +First)
         * (InRoot$$$Sections)
-        * (+RO)                             
+        * (+RO-CODE)                              
     }
 
-    DATA 0x20000000 0x4000
+    DATA 0x20000000 0x7000
     {
-  * (+RW,+ZI)                         
+    * (+RO-DATA)
+    * (+RW,+ZI)                         
     }
 
-    ARM_LIB_STACK 0x20006000 ALIGN 64 EMPTY -0x00002000  
+    ARM_LIB_STACK 0x2000C000 ALIGN 64 EMPTY -0x00002000  
     {}
-    ARM_LIB_HEAP 0x20006000 ALIGN 64 EMPTY 0x0050000 
+    ARM_LIB_HEAP 0x2000C000 ALIGN 64 EMPTY 0x0050000 
     {}
 }
 
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM0/system_ARMCM0.c b/CMSIS/DSP/Platforms/IPSS/ARMCM0/system_ARMCM0.c
index 6f4a6ab..5f1e43a 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM0/system_ARMCM0.c
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM0/system_ARMCM0.c
@@ -70,7 +70,8 @@
 
 int stdout_putchar(char txchar)
 {
-    SERIAL_DATA = txchar;                     
+    SERIAL_DATA = txchar;   
+    return(txchar);                  
 }
 
 int stderr_putchar(char txchar)
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM33/LinkScripts/AC6/lnk.sct b/CMSIS/DSP/Platforms/IPSS/ARMCM33/LinkScripts/AC6/lnk.sct
index 56b3e9b..907ce1d 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM33/LinkScripts/AC6/lnk.sct
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM33/LinkScripts/AC6/lnk.sct
@@ -12,20 +12,21 @@
 
 LOAD_REGION 0x0
 {
-    CODE +0 0x0007ffff
+    CODE +0 0x30000
     {
         *.o (RESET, +First)
         * (InRoot$$$Sections)
-        * (+RO)                             
+        * (+RO-CODE)                                
     }
 
-    DATA 0x20000000 0x4000
+    DATA 0x20000000 0x7000
     {
+    * (+RO-DATA)
     * (+RW,+ZI)                         
     }
 
-    ARM_LIB_STACK 0x20006000 ALIGN 64 EMPTY -0x00002000 
+    ARM_LIB_STACK 0x2000C000 ALIGN 64 EMPTY -0x00002000 
     {}
-    ARM_LIB_HEAP  0x20006000 ALIGN 64 EMPTY 0x0050000 
+    ARM_LIB_HEAP  0x2000C000 ALIGN 64 EMPTY 0x00050000 
     {}
 }
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM33/system_ARMCM33.c b/CMSIS/DSP/Platforms/IPSS/ARMCM33/system_ARMCM33.c
index 69b264f..69bf7af 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM33/system_ARMCM33.c
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM33/system_ARMCM33.c
@@ -255,7 +255,8 @@
 
 int stdout_putchar(char txchar)
 {
-    SERIAL_DATA = txchar;                     
+    SERIAL_DATA = txchar;    
+    return(txchar);                 
 }
 
 int stderr_putchar(char txchar)
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM4/system_ARMCM4.c b/CMSIS/DSP/Platforms/IPSS/ARMCM4/system_ARMCM4.c
index b31bae2..2b60ecf 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM4/system_ARMCM4.c
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM4/system_ARMCM4.c
@@ -70,7 +70,8 @@
 
 int stdout_putchar(char txchar)
 {
-    SERIAL_DATA = txchar;                     
+    SERIAL_DATA = txchar;   
+    return(txchar);                  
 }
 
 int stderr_putchar(char txchar)
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM7/LinkScripts/AC6/lnk.sct b/CMSIS/DSP/Platforms/IPSS/ARMCM7/LinkScripts/AC6/lnk.sct
index 7cc17d0..6e24b77 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM7/LinkScripts/AC6/lnk.sct
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM7/LinkScripts/AC6/lnk.sct
@@ -22,9 +22,9 @@
 	* (+RW,+ZI)                         
     }
 
-    ARM_LIB_STACK 0x21000000 ALIGN 64 EMPTY 0x00002000 
+    ARM_LIB_STACK 0x20100000 ALIGN 64 EMPTY -0x00002000 
     {}
-    ARM_LIB_HEAP 0x22000000 ALIGN 64 EMPTY 0x00100000 
+    ARM_LIB_HEAP 0x20100000 ALIGN 64 EMPTY 0x00100000 
     {}
 }
 
diff --git a/CMSIS/DSP/Platforms/IPSS/ARMCM7/system_ARMCM7.c b/CMSIS/DSP/Platforms/IPSS/ARMCM7/system_ARMCM7.c
index 732aa49..a20e6b7 100755
--- a/CMSIS/DSP/Platforms/IPSS/ARMCM7/system_ARMCM7.c
+++ b/CMSIS/DSP/Platforms/IPSS/ARMCM7/system_ARMCM7.c
@@ -82,7 +82,8 @@
 
 int stdout_putchar(char txchar)
 {
-    SERIAL_DATA = txchar;                     
+    SERIAL_DATA = txchar;    
+    return(txchar);                 
 }
 
 int stderr_putchar(char txchar)