diff --git a/software/common/retarget/retarget.c b/software/common/retarget/retarget.c
index 5a9ed20fc23809fcae9389d5e88c2cda3b773a62..2a22749ca7b6da28468eb0d8d6770d5da2fc6e53 100644
--- a/software/common/retarget/retarget.c
+++ b/software/common/retarget/retarget.c
@@ -23,7 +23,7 @@
  */
 
 
-#if defined ( __CC_ARM   )
+#if defined ( __CC_ARM   ) || defined (__ARMCC_VERSION)
 /******************************************************************************/
 /* Retarget functions for ARM DS-5 Professional / Keil MDK                                 */
 /******************************************************************************/
@@ -31,8 +31,11 @@
 #include <stdio.h>
 #include <time.h>
 #include <rt_misc.h>
+#if defined ( __CC_ARM   ) 
 #pragma import(__use_no_semihosting_swi)
-
+#else
+__asm(".global __use_no_semihosting");
+#endif
 extern unsigned char UartGetc(void);
 extern unsigned char UartPutc(unsigned char my_ch);
 struct __FILE { int handle; /* Add whatever you need here */ };
diff --git a/software/common/validation/dma350_tests.c b/software/common/validation/dma350_tests.c
index bd79e16568d09e92dea319119ba589faa1777263..1ccd11db6a10ec619163d9a544e91e77a90de74c 100644
--- a/software/common/validation/dma350_tests.c
+++ b/software/common/validation/dma350_tests.c
@@ -454,7 +454,7 @@ int main(void) {
     AdaDesSwTrigInReq(BLOCK,ch,SECURE);
 
     uint8_t timeout=0;
-    uint8_t i = 0;
+    uint32_t i = 0;
     uint8_t ch_enabled = 1;
     while (ch_enabled == 1 && timeout==0) {
       ch_enabled = AdaGetEnable(ch, SECURE);
@@ -656,7 +656,7 @@ void HardFault_Handler(void)
         "  ldr    r1,=HardFault_Handler_c  \n"
         "  bx     r1\n"
         ".pool\n" );
-}}
+}
 
 #endif
 /* C part of the fault handler - common between ARM / Keil /gcc */
diff --git a/software/debug_tester/Makefile b/software/debug_tester/Makefile
index 05ce772a70174163c1d07e20524e9e2f09fdfded..53fa671462032512573af831a336d4ca0d2bbd1b 100644
--- a/software/debug_tester/Makefile
+++ b/software/debug_tester/Makefile
@@ -37,6 +37,7 @@
 #     2. __FPU_PRESENT variable in header file (e.g. CMSDK_CM4.h) is set to 1
 CPU_PRODUCT  = CORTEX_M0
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = ../
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -48,7 +49,11 @@ ifeq ($(CPU_PRODUCT),CORTEX_M0_DS)
   DEVICE_DIR   = $(CMSIS_DIR)/Device/ARM/CMSDK_CM0
   STARTUP_FILE = startup_CMSDK_CM0
   USER_DEFINE  = -DCORTEX_M0
-  ARM_CPU_TYPE = --cpu=Cortex-M0
+  ifeq ($(TOOL_CHAIN),ds6)
+    ARM_CPU_TYPE = -mcpu=Cortex-M0
+  else
+    ARM_CPU_TYPE = --cpu=Cortex-M0
+  endif
   GCC_CPU_TYPE = -mcpu=cortex-m0
   GCC_LINKER_SCRIPT = $(GCC_LINKER_SCRIPT_PATH)/debugtester.ld
 endif
@@ -56,7 +61,11 @@ ifeq ($(CPU_PRODUCT),CORTEX_M0)
   DEVICE_DIR   = $(CMSIS_DIR)/Device/ARM/CMSDK_CM0
   STARTUP_FILE = startup_CMSDK_CM0
   USER_DEFINE  = -DCORTEX_M0
-  ARM_CPU_TYPE = --cpu=Cortex-M0
+  ifeq ($(TOOL_CHAIN),ds6)
+    ARM_CPU_TYPE = -mcpu=Cortex-M0
+  else
+    ARM_CPU_TYPE = --cpu=Cortex-M0
+  endif
   GCC_CPU_TYPE = -mcpu=cortex-m0
   GCC_LINKER_SCRIPT = $(GCC_LINKER_SCRIPT_PATH)/debugtester.ld
 endif
@@ -108,11 +117,20 @@ TOOL_CHAIN     = ds5
 
 # ---------------------------------------------------------------------------------------
 # DS-5 options
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
 
 # MicroLIB option (DS-5)
 COMPILE_MICROLIB = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime -I $(CORE_DIR) -I $(DEVICE_DIR)/Include \
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(CORE_DIR) -I $(DEVICE_DIR)/Include \
 		   -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
 ARM_ASM_OPTIONS  = -g
 
@@ -132,9 +150,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 # The optimisation level for the GCC compiler should be fixed at -01 or the results can
 # cause unpredictable results for the debugtester behaviour.
@@ -146,18 +164,19 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(DEBUGTESTER)_le.hex $(DEBUGTESTER)_be.hex $(DEBUGTESTER)_le.lst $(DEBUGTESTER)_be.lst
+all_ds6 : $(DEBUGTESTER)_le.hex $(DEBUGTESTER)_be.hex $(DEBUGTESTER)_le.lst $(DEBUGTESTER)_be.lst
 
 debugtester_le.o : debugtester.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
 
 system_cmsdk_debugtester_le.o : 	system_cmsdk_debugtester.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
 
 retarget_cmsdk_debugtester_le.o : 	retarget_cmsdk_debugtester.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(DEVICE_DIR)/Source/ARM/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(ARM_CPU_TYPE) $< -o  $@
 
 $(DEBUGTESTER)_le.elf : $(DEBUGTESTER)_le.o $(STARTUP_FILE).o system_cmsdk_debugtester_le.o retarget_cmsdk_debugtester_le.o
 	armlink $(ARM_LINK_OPTIONS) $(DEBUGTESTER)_le.o $(STARTUP_FILE).o system_cmsdk_debugtester_le.o retarget_cmsdk_debugtester_le.o -o $@
@@ -169,13 +188,13 @@ $(DEBUGTESTER)_le.lst : $(DEBUGTESTER)_le.elf
 	fromelf -c -d -e -s $< --output $@
 
 debugtester_be.o : debugtester.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS_BE) $(ARM_CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS_BE) $(ARM_CPU_TYPE) $< -o  $@
 
 system_cmsdk_debugtester_be.o : 	system_cmsdk_debugtester.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS_BE) $(ARM_CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS_BE) $(ARM_CPU_TYPE) $< -o  $@
 
 retarget_cmsdk_debugtester_be.o : 	retarget_cmsdk_debugtester.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS_BE) $(ARM_CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS_BE) $(ARM_CPU_TYPE) $< -o  $@
 
 $(DEBUGTESTER)_be.elf : $(DEBUGTESTER)_be.o $(STARTUP_FILE).o system_cmsdk_debugtester_be.o retarget_cmsdk_debugtester_be.o
 	armlink $(ARM_LINK_OPTIONS) $(DEBUGTESTER)_be.o $(STARTUP_FILE).o system_cmsdk_debugtester_be.o retarget_cmsdk_debugtester_be.o -o $@
diff --git a/software/debug_tester/retarget_cmsdk_debugtester.c b/software/debug_tester/retarget_cmsdk_debugtester.c
index b2d677d6d055f14dfcf5c9cb461ab9c94ff19ec1..769087f98e7214fd308410ac420aadf60bb63917 100644
--- a/software/debug_tester/retarget_cmsdk_debugtester.c
+++ b/software/debug_tester/retarget_cmsdk_debugtester.c
@@ -37,7 +37,7 @@ void debugtester_char_write(int ch)
 }
 
 
-#if defined ( __CC_ARM   )
+#if defined ( __CC_ARM   ) || defined (__ARMCC_VERSION)
 /******************************************************************************/
 /* Retarget functions for ARM DS-5 Professional / Keil MDK                    */
 /******************************************************************************/
@@ -45,8 +45,11 @@ void debugtester_char_write(int ch)
 #include <stdio.h>
 #include <time.h>
 #include <rt_misc.h>
+#if defined ( __CC_ARM   ) 
 #pragma import(__use_no_semihosting_swi)
-
+#else
+__asm(".global __use_no_semihosting");
+#endif
 struct __FILE { int handle; /* Add whatever you need here */ };
 FILE __stdout;
 FILE __stdin;
diff --git a/testcodes/apb_mux_tests/makefile b/testcodes/apb_mux_tests/makefile
index f0fd6a6d4dd446337e78b001d0f6a5c573ba9cb4..0d9f5b294f318357fe5adf91f4401ba50913fdf7 100644
--- a/testcodes/apb_mux_tests/makefile
+++ b/testcodes/apb_mux_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime -I $(DEVICE_DIR)/Include -I $(CORE_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(DEVICE_DIR)/Include -I $(CORE_DIR) \
 		   -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/bootloader/makefile b/testcodes/bootloader/makefile
index e4221b47dc54a3016e544492829be0141d02ec0b..910b7f3b758e90b7671e1d0b4cb56eaecaa756ae 100644
--- a/testcodes/bootloader/makefile
+++ b/testcodes/bootloader/makefile
@@ -138,7 +138,7 @@ else
   ARM_TARGET = -Otime
 endif
 
-ARM_CC_OPTIONS   = $(ARM_TARGET) -c -O3 -g -I $(DEVICE_DIR)/Include -I $(CORE_DIR) $(USER_DEFINE)
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -O1 -g -I $(DEVICE_DIR)/Include -I $(CORE_DIR) $(USER_DEFINE)
 
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
diff --git a/testcodes/debug_tests/makefile b/testcodes/debug_tests/makefile
index 5fa5656cc52bff72366155cd2d46dfbbd8486dc2..2c4fe3625fdfd7585c55c513767a59509f5fe222 100644
--- a/testcodes/debug_tests/makefile
+++ b/testcodes/debug_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -107,7 +120,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) -I $(GENERIC_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) -I $(GENERIC_DIR) \
 		-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget \
 		-I $(SOFTWARE_DIR)/debug_tester
 ARM_ASM_OPTIONS  = -g
@@ -137,9 +160,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -157,27 +180,29 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
+
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/debug_tests/$(TESTNAME).c $(SOFTWARE_DIR)/common/debug_tests/$(TESTNAME).h $(GENERIC_FILE) $(SOFTWARE_DIR)/debug_tester/debugtester_functions.h $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 mcu_debugtester_interface.o : $(GENERIC_DIR)/mcu_debugtester_interface.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o $@
 
 $(TESTNAME).ELF: $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o mcu_debugtester_interface.o
 	armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o mcu_debugtester_interface.o
diff --git a/testcodes/default_slaves_tests/makefile b/testcodes/default_slaves_tests/makefile
index 2f63c9a75a83380c88183d07c1114a4b6ca238fa..7d431dda0b84795034e22f4ce86325c99e3aa9d8 100644
--- a/testcodes/default_slaves_tests/makefile
+++ b/testcodes/default_slaves_tests/makefile
@@ -30,6 +30,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/dhry/makefile b/testcodes/dhry/makefile
index 06606c5e0c36fae8c1efb068d35797f7d40cc1a8..1ae3ef6ee10ce0cca260b5a5e1b70518cfeee0bf 100644
--- a/testcodes/dhry/makefile
+++ b/testcodes/dhry/makefile
@@ -30,6 +30,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
@@ -56,7 +57,6 @@ else
 endif
 
 DEPS_LIST        = makefile
-DHRY_ARMCC_OPTION   = -Ono_inline --no_inline --no_multifile -Oloopref
 
 # Tool chain : ds5 / gcc / keil
 TOOL_CHAIN      = ds5
@@ -69,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +116,19 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+  DHRY_ARMCC_OPTION   = -fno-inline
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+  DHRY_ARMCC_OPTION   = -Ono_inline --no_inline --no_multifile -Oloopref
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g \
         	-I $(CORE_DIR) -I $(DEVICE_DIR)/Include -I $(SOFTWARE_DIR)/common/retarget \
 		-I $(SOFTWARE_DIR)/common/dhry \
         	$(DHRY_ARMCC_OPTION) $(USER_DEFINE)
@@ -135,9 +159,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -156,24 +180,25 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 dhry_1.o :  $(SOFTWARE_DIR)/common/dhry/dhry_1.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 dhry_2.o :  $(SOFTWARE_DIR)/common/dhry/dhry_2.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o $@
 
 
 $(TESTNAME).ELF : dhry_1.o dhry_2.o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/dma350_tests/makefile b/testcodes/dma350_tests/makefile
index e12935a66438e43a5c15df4d4806ff271572aecb..d89ff48e25973e1779715a78145137a86bee38ac 100644
--- a/testcodes/dma350_tests/makefile
+++ b/testcodes/dma350_tests/makefile
@@ -29,8 +29,9 @@
 # Choose the core instantiated, can be
 #  - CORTEX_M0
 #  - CORTEX_M0PLUS
-CPU_PRODUCT = CORTEX_M0PLUS
+CPU_PRODUCT = CORTEX_M0
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -70,6 +71,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -83,6 +92,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -108,9 +121,19 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c --c99 -O3 -g -Ospace -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(GENERIC_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime --c99
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(GENERIC_DIR) \
 		   -I $(SOFTWARE_DIR)/common/retarget -I $(SOFTWARE_DIR)/drivers $(USER_DEFINE)
-ARM_CC_OPTIONS_DRIVER   = -c --c99 -O3 -Ospace -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(GENERIC_DIR) \
+ARM_CC_OPTIONS_DRIVER   = $(ARM_TARGET) -c -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(GENERIC_DIR) \
 		   -I $(SOFTWARE_DIR)/common/retarget -I $(SOFTWARE_DIR)/drivers $(USER_DEFINE)		   
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -138,9 +161,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -158,24 +181,25 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(GENERIC_FILE) $(DEPS_LIST) 
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 dma_350_driver.o :  $(SOFTWARE_DIR)/drivers/dma_350_command_lib.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS_DRIVER) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS_DRIVER) $(CPU_TYPE) $< -o $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o dma_350_driver.o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o dma_350_driver.o 
diff --git a/testcodes/dma_tests/makefile b/testcodes/dma_tests/makefile
index 58c8a1bb2a79e1390ad9cca73a7a20d94a1b3cbe..f15bdf2d66e84841e527ebf1f5605c6ddacc825d 100644
--- a/testcodes/dma_tests/makefile
+++ b/testcodes/dma_tests/makefile
@@ -30,6 +30,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -106,7 +119,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) -I $(GENERIC_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) -I $(GENERIC_DIR) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -134,9 +157,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -155,21 +178,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(GENERIC_FILE) $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/dualtimer_demo/makefile b/testcodes/dualtimer_demo/makefile
index 9a749ca7dfcc787b9e02e0b005e1f85b6db7bb75..b7ae56c7917e3545f68b348e2d9dd352e81b9873 100644
--- a/testcodes/dualtimer_demo/makefile
+++ b/testcodes/dualtimer_demo/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) \
 		   -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -152,21 +175,22 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o  $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@
diff --git a/testcodes/gpio_driver_tests/makefile b/testcodes/gpio_driver_tests/makefile
index 64db24a940b1c3d5f40b0edfde56a3f7aa425c05..8405729188aabb34e0d61983e5cc3b8eefe09d7f 100644
--- a/testcodes/gpio_driver_tests/makefile
+++ b/testcodes/gpio_driver_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -131,9 +154,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
diff --git a/testcodes/gpio_tests/makefile b/testcodes/gpio_tests/makefile
index b94024562e4be1d234137beeef64cad7986845d6..ed22349abe6206496b9b47d7ef9cac9f97ac40b2 100644
--- a/testcodes/gpio_tests/makefile
+++ b/testcodes/gpio_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/hello/makefile b/testcodes/hello/makefile
index 582465a2581c81d02452d107d301649ab125c121..e3f943a2d3647564624f9caf2a732d8b6a3a07f5 100644
--- a/testcodes/hello/makefile
+++ b/testcodes/hello/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -109,7 +122,18 @@ COMPILE_SMALLMUL = 0
 #ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
 #		   --rw_base 0x30000000 --ro_base 0x00000000 --map  --info sizes
 
-ARM_CC_OPTIONS   = -c -O3 -Ospace -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) \
+
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) \
 		   -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
 ARM_ASM_OPTIONS  = 
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -137,9 +161,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -160,19 +184,19 @@ all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
 all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o  $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@
diff --git a/testcodes/interrupt_demo/makefile b/testcodes/interrupt_demo/makefile
index 6c248cbf6b561ee17eca2e289d2a45f4b38bed09..24be631b5b7bf6d8f758ae39573f6fe882ff2475 100644
--- a/testcodes/interrupt_demo/makefile
+++ b/testcodes/interrupt_demo/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -131,9 +154,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
diff --git a/testcodes/memory_tests/makefile b/testcodes/memory_tests/makefile
index 28356e0fa8b2280dd670404c70ca5affcecc4e32..359af0ab37451e687e3d47b41be4dd6556c50a32 100644
--- a/testcodes/memory_tests/makefile
+++ b/testcodes/memory_tests/makefile
@@ -29,8 +29,9 @@
 # Choose the core instantiated, can be
 #  - CORTEX_M0
 #  - CORTEX_M0PLUS
-CPU_PRODUCT = CORTEX_M0PLUS
+CPU_PRODUCT = CORTEX_M0
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/romtable_tests/makefile b/testcodes/romtable_tests/makefile
index 87114132ea870160dfff94a1ef6e02e767104843..c73df473563b25e93ed8b99004fbe047b4ce5cd8 100644
--- a/testcodes/romtable_tests/makefile
+++ b/testcodes/romtable_tests/makefile
@@ -29,8 +29,9 @@
 # Choose the core instantiated, can be
 #  - CORTEX_M0
 #  - CORTEX_M0PLUS
-CPU_PRODUCT = CORTEX_M0PLUS
+CPU_PRODUCT = CORTEX_M0
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -107,7 +120,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime -I $(CORE_DIR) -I $(DEVICE_DIR)/Include -I $(GENERIC_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(CORE_DIR) -I $(DEVICE_DIR)/Include -I $(GENERIC_DIR) \
 		-I $(SOFTWARE_DIR)/common/retarget -I $(SOFTWARE_DIR)/debug_tester $(USER_DEFINE)
 
 ARM_ASM_OPTIONS  = -g
@@ -137,9 +160,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -157,27 +180,28 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/romtable_tests/$(TESTNAME).c $(SOFTWARE_DIR)/common/romtable_tests/$(TESTNAME).h $(GENERIC_FILE) $(SOFTWARE_DIR)/debug_tester/debugtester_functions.h $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 mcu_debugtester_interface.o	: $(GENERIC_DIR)/mcu_debugtester_interface.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF: $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o mcu_debugtester_interface.o
 	armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o mcu_debugtester_interface.o
diff --git a/testcodes/rtx_demo/makefile b/testcodes/rtx_demo/makefile
index b1edfa2aac5c3042f7d4074268169d758a34cb73..27bba512d903e3a7e98307e725a1a2f1c6097362 100644
--- a/testcodes/rtx_demo/makefile
+++ b/testcodes/rtx_demo/makefile
@@ -29,6 +29,8 @@
 
 # Tool chain : ds5 / gcc / keil
 TOOL_CHAIN      = ds5
+TARGET = arm-none-eabi
+
 TESTNAME        = rtx_demo
 
 CPU_PRODUCT     = CORTEX_M0PLUS
@@ -61,7 +63,15 @@ all_ds5 : hexfile_select
 	  echo "Please compile RTX demo in Keil MDK and press ENTER when ready" ; \
 	  read dummy ; \
 	fi
-
+	
+all_ds6 : hexfile_select
+	@if [ -e $(TESTNAME).hex ] ; then \
+	  echo "Found rtx_demo.hex ... use existing hex file. Continue ..." ; \
+	else \
+	  echo "RTX demo compilation not available for DS-5." ; \
+	  echo "Please compile RTX demo in Keil MDK and press ENTER when ready" ; \
+	  read dummy ; \
+	fi
 # ---------------------------------------------------------------------------------------
 # gcc
 #
diff --git a/testcodes/self_reset_demo/makefile b/testcodes/self_reset_demo/makefile
index 512c921f0c817ef7465f92ebbbf81943b8fb1807..d518805489e3fcd0fcee0e5cd34df2af05b5f6ad 100644
--- a/testcodes/self_reset_demo/makefile
+++ b/testcodes/self_reset_demo/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL  = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime -I $(CORE_DIR) -I $(DEVICE_DIR)/Include \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(CORE_DIR) -I $(DEVICE_DIR)/Include \
 		   -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -133,9 +156,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o  $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@
diff --git a/testcodes/sleep_demo/makefile b/testcodes/sleep_demo/makefile
index f9124916371b7f794372d6dc8a43d48c5058fdc4..b7fe70bdb02cca370d34b5f4d91145440aff6cec 100644
--- a/testcodes/sleep_demo/makefile
+++ b/testcodes/sleep_demo/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,24 +176,25 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o  CMSDK_driver.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
diff --git a/testcodes/timer_driver_tests/makefile b/testcodes/timer_driver_tests/makefile
index 411a0d391301b1b9fa30627c6b5bf5e3685559be..8c29814cd33ad4113784c3e5d9423e09c495774f 100644
--- a/testcodes/timer_driver_tests/makefile
+++ b/testcodes/timer_driver_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -131,9 +154,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
diff --git a/testcodes/timer_tests/makefile b/testcodes/timer_tests/makefile
index 7ed138e029d5ad776bf642ecb4cfb8fe3263b87a..c7dc8133422fd5f9a61adff17f89281d3e4a9010 100644
--- a/testcodes/timer_tests/makefile
+++ b/testcodes/timer_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -131,9 +154,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -152,21 +175,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/uart_driver_tests/makefile b/testcodes/uart_driver_tests/makefile
index 492bc2712c8ab9036a0eaab1a0af496327a8948b..a87910bd36fa69d97e6a0d72ab3aad5b7b8622a9 100644
--- a/testcodes/uart_driver_tests/makefile
+++ b/testcodes/uart_driver_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -131,9 +154,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 CMSDK_driver.o : $(DEVICE_DIR)/Source/CMSDK_driver.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
diff --git a/testcodes/uart_tests/makefile b/testcodes/uart_tests/makefile
index 304643b8e31de3a9be1131fe729b689e9a2af0d6..445af9cfa36ce5a1b87298caf26384ab7a4dd5b0 100644
--- a/testcodes/uart_tests/makefile
+++ b/testcodes/uart_tests/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime $(USER_DEFINE) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g $(USER_DEFINE) \
         	-I $(DEVICE_DIR)/Include  -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -132,9 +155,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
 # DS-5
 
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) -o $@  $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
diff --git a/testcodes/watchdog_demo/makefile b/testcodes/watchdog_demo/makefile
index 12163f7ff96a112916f71f514eb50de873191318..8b9f7e469f07b0c06ce866fa3f2a231d9e4c4fa9 100644
--- a/testcodes/watchdog_demo/makefile
+++ b/testcodes/watchdog_demo/makefile
@@ -31,6 +31,7 @@
 #  - CORTEX_M0PLUS
 CPU_PRODUCT = CORTEX_M0PLUS
 
+TARGET = arm-none-eabi
 # Shared software directory
 SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
 CMSIS_DIR    = $(SOFTWARE_DIR)/cmsis
@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
   endif
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+  ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
+    CPU_TYPE        = -mcpu=Cortex-M0plus
+  else
+    CPU_TYPE        = -mcpu=Cortex-M0
+  endif
+endif
+
 ifeq ($(TOOL_CHAIN),gcc)
   ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
     CPU_TYPE        = -mcpu=cortex-m0plus
@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
 endif
 
+ifeq ($(TOOL_CHAIN),ds6)
+ STARTUP_DIR  = $(DEVICE_DIR)/Source/ARM
+endif
+
 # Startup code directory for gcc
 ifeq ($(TOOL_CHAIN),gcc)
  STARTUP_DIR  = $(DEVICE_DIR)/Source/GCC
@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
 # Small Multiply (Cortex-M0/M0+ has small multiplier option)
 COMPILE_SMALLMUL  = 0
 
-ARM_CC_OPTIONS   = -c -O3 -g -Otime -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) \
+ifeq ($(TOOL_CHAIN),ds6)
+  ARM_TARGET = --target=arm-$(TARGET)
+  CC_TOOL   = armclang -O1
+  ASM_TOOL = armclang -masm=armasm $(ARM_TARGET) -c
+else
+  CC_TOOL   = armcc -O3
+  ASM_TOOL = armasm
+  ARM_TARGET = -Otime
+endif
+
+ARM_CC_OPTIONS   = $(ARM_TARGET) -c -g -I $(DEVICE_DIR)/Include  -I $(CORE_DIR) \
 		   -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
 ARM_ASM_OPTIONS  = -g
 ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
@@ -131,9 +154,9 @@ endif
 # ---------------------------------------------------------------------------------------
 # gcc options
 
-GNG_CC      = arm-none-eabi-gcc
-GNU_OBJDUMP = arm-none-eabi-objdump
-GNU_OBJCOPY = arm-none-eabi-objcopy
+GNG_CC      = $(TARGET)-gcc
+GNU_OBJDUMP = $(TARGET)-objdump
+GNU_OBJCOPY = $(TARGET)-objcopy
 
 LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
 LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
@@ -151,21 +174,22 @@ all: all_$(TOOL_CHAIN)
 # ---------------------------------------------------------------------------------------
 # DS-5
 all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
+all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 retarget.o : $(SOFTWARE_DIR)/common/retarget/retarget.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 uart_stdout.o : $(SOFTWARE_DIR)/common/retarget/uart_stdout.c $(DEPS_LIST)
-	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST)
-	armasm $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
+	$(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o  $@
 
 $(TESTNAME).ELF : $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
 	armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o  $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@