Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • soclabs/nanosoc_tech
1 result
Select Git revision
Show changes
Commits on Source (1)
Showing
with 533 additions and 160 deletions
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
*/ */
#if defined ( __CC_ARM ) #if defined ( __CC_ARM ) || defined (__ARMCC_VERSION)
/******************************************************************************/ /******************************************************************************/
/* Retarget functions for ARM DS-5 Professional / Keil MDK */ /* Retarget functions for ARM DS-5 Professional / Keil MDK */
/******************************************************************************/ /******************************************************************************/
...@@ -31,8 +31,11 @@ ...@@ -31,8 +31,11 @@
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
#include <rt_misc.h> #include <rt_misc.h>
#if defined ( __CC_ARM )
#pragma import(__use_no_semihosting_swi) #pragma import(__use_no_semihosting_swi)
#else
__asm(".global __use_no_semihosting");
#endif
extern unsigned char UartGetc(void); extern unsigned char UartGetc(void);
extern unsigned char UartPutc(unsigned char my_ch); extern unsigned char UartPutc(unsigned char my_ch);
struct __FILE { int handle; /* Add whatever you need here */ }; struct __FILE { int handle; /* Add whatever you need here */ };
......
...@@ -454,7 +454,7 @@ int main(void) { ...@@ -454,7 +454,7 @@ int main(void) {
AdaDesSwTrigInReq(BLOCK,ch,SECURE); AdaDesSwTrigInReq(BLOCK,ch,SECURE);
uint8_t timeout=0; uint8_t timeout=0;
uint8_t i = 0; uint32_t i = 0;
uint8_t ch_enabled = 1; uint8_t ch_enabled = 1;
while (ch_enabled == 1 && timeout==0) { while (ch_enabled == 1 && timeout==0) {
ch_enabled = AdaGetEnable(ch, SECURE); ch_enabled = AdaGetEnable(ch, SECURE);
...@@ -656,7 +656,7 @@ void HardFault_Handler(void) ...@@ -656,7 +656,7 @@ void HardFault_Handler(void)
" ldr r1,=HardFault_Handler_c \n" " ldr r1,=HardFault_Handler_c \n"
" bx r1\n" " bx r1\n"
".pool\n" ); ".pool\n" );
}} }
#endif #endif
/* C part of the fault handler - common between ARM / Keil /gcc */ /* C part of the fault handler - common between ARM / Keil /gcc */
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
# 2. __FPU_PRESENT variable in header file (e.g. CMSDK_CM4.h) is set to 1 # 2. __FPU_PRESENT variable in header file (e.g. CMSDK_CM4.h) is set to 1
CPU_PRODUCT = CORTEX_M0 CPU_PRODUCT = CORTEX_M0
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = ../ SOFTWARE_DIR = ../
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -48,7 +49,11 @@ ifeq ($(CPU_PRODUCT),CORTEX_M0_DS) ...@@ -48,7 +49,11 @@ ifeq ($(CPU_PRODUCT),CORTEX_M0_DS)
DEVICE_DIR = $(CMSIS_DIR)/Device/ARM/CMSDK_CM0 DEVICE_DIR = $(CMSIS_DIR)/Device/ARM/CMSDK_CM0
STARTUP_FILE = startup_CMSDK_CM0 STARTUP_FILE = startup_CMSDK_CM0
USER_DEFINE = -DCORTEX_M0 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_CPU_TYPE = -mcpu=cortex-m0
GCC_LINKER_SCRIPT = $(GCC_LINKER_SCRIPT_PATH)/debugtester.ld GCC_LINKER_SCRIPT = $(GCC_LINKER_SCRIPT_PATH)/debugtester.ld
endif endif
...@@ -56,7 +61,11 @@ ifeq ($(CPU_PRODUCT),CORTEX_M0) ...@@ -56,7 +61,11 @@ ifeq ($(CPU_PRODUCT),CORTEX_M0)
DEVICE_DIR = $(CMSIS_DIR)/Device/ARM/CMSDK_CM0 DEVICE_DIR = $(CMSIS_DIR)/Device/ARM/CMSDK_CM0
STARTUP_FILE = startup_CMSDK_CM0 STARTUP_FILE = startup_CMSDK_CM0
USER_DEFINE = -DCORTEX_M0 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_CPU_TYPE = -mcpu=cortex-m0
GCC_LINKER_SCRIPT = $(GCC_LINKER_SCRIPT_PATH)/debugtester.ld GCC_LINKER_SCRIPT = $(GCC_LINKER_SCRIPT_PATH)/debugtester.ld
endif endif
...@@ -108,11 +117,20 @@ TOOL_CHAIN = ds5 ...@@ -108,11 +117,20 @@ TOOL_CHAIN = ds5
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 options # 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) # MicroLIB option (DS-5)
COMPILE_MICROLIB = 0 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) -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
...@@ -132,9 +150,9 @@ endif ...@@ -132,9 +150,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
# The optimisation level for the GCC compiler should be fixed at -01 or the results can # The optimisation level for the GCC compiler should be fixed at -01 or the results can
# cause unpredictable results for the debugtester behaviour. # cause unpredictable results for the debugtester behaviour.
...@@ -146,18 +164,19 @@ all: all_$(TOOL_CHAIN) ...@@ -146,18 +164,19 @@ all: all_$(TOOL_CHAIN)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 # DS-5
all_ds5 : $(DEBUGTESTER)_le.hex $(DEBUGTESTER)_be.hex $(DEBUGTESTER)_le.lst $(DEBUGTESTER)_be.lst 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) 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) 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) 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) $(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 $(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 $@ 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 ...@@ -169,13 +188,13 @@ $(DEBUGTESTER)_le.lst : $(DEBUGTESTER)_le.elf
fromelf -c -d -e -s $< --output $@ fromelf -c -d -e -s $< --output $@
debugtester_be.o : debugtester.c $(DEPS_LIST) 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) 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) 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 $(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 $@ armlink $(ARM_LINK_OPTIONS) $(DEBUGTESTER)_be.o $(STARTUP_FILE).o system_cmsdk_debugtester_be.o retarget_cmsdk_debugtester_be.o -o $@
......
...@@ -37,7 +37,7 @@ void debugtester_char_write(int ch) ...@@ -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 */ /* Retarget functions for ARM DS-5 Professional / Keil MDK */
/******************************************************************************/ /******************************************************************************/
...@@ -45,8 +45,11 @@ void debugtester_char_write(int ch) ...@@ -45,8 +45,11 @@ void debugtester_char_write(int ch)
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
#include <rt_misc.h> #include <rt_misc.h>
#if defined ( __CC_ARM )
#pragma import(__use_no_semihosting_swi) #pragma import(__use_no_semihosting_swi)
#else
__asm(".global __use_no_semihosting");
#endif
struct __FILE { int handle; /* Add whatever you need here */ }; struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout; FILE __stdout;
FILE __stdin; FILE __stdin;
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0 ...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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) -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -132,9 +155,9 @@ endif ...@@ -132,9 +155,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN) ...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
......
...@@ -138,7 +138,7 @@ else ...@@ -138,7 +138,7 @@ else
ARM_TARGET = -Otime ARM_TARGET = -Otime
endif 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_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0 CPU_PRODUCT = CORTEX_M0
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -107,7 +120,17 @@ COMPILE_MICROLIB = 0 ...@@ -107,7 +120,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget \
-I $(SOFTWARE_DIR)/debug_tester -I $(SOFTWARE_DIR)/debug_tester
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
...@@ -137,9 +160,9 @@ endif ...@@ -137,9 +160,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -157,27 +180,29 @@ all: all_$(TOOL_CHAIN) ...@@ -157,27 +180,29 @@ all: all_$(TOOL_CHAIN)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst 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) $(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) 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) $(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) 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) 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) 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) $(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 $(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 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
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0 ...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 -I $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -132,9 +155,9 @@ endif ...@@ -132,9 +155,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN) ...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
...@@ -56,7 +57,6 @@ else ...@@ -56,7 +57,6 @@ else
endif endif
DEPS_LIST = makefile DEPS_LIST = makefile
DHRY_ARMCC_OPTION = -Ono_inline --no_inline --no_multifile -Oloopref
# Tool chain : ds5 / gcc / keil # Tool chain : ds5 / gcc / keil
TOOL_CHAIN = ds5 TOOL_CHAIN = ds5
...@@ -69,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -104,7 +116,19 @@ COMPILE_MICROLIB = 0 ...@@ -104,7 +116,19 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 $(CORE_DIR) -I $(DEVICE_DIR)/Include -I $(SOFTWARE_DIR)/common/retarget \
-I $(SOFTWARE_DIR)/common/dhry \ -I $(SOFTWARE_DIR)/common/dhry \
$(DHRY_ARMCC_OPTION) $(USER_DEFINE) $(DHRY_ARMCC_OPTION) $(USER_DEFINE)
...@@ -135,9 +159,9 @@ endif ...@@ -135,9 +159,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -156,24 +180,25 @@ all: all_$(TOOL_CHAIN) ...@@ -156,24 +180,25 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
dhry_1.o : $(SOFTWARE_DIR)/common/dhry/dhry_1.c $(DEPS_LIST) 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) 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) $(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) 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) 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) $(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 $(TESTNAME).ELF : dhry_1.o dhry_2.o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
......
...@@ -29,8 +29,9 @@ ...@@ -29,8 +29,9 @@
# Choose the core instantiated, can be # Choose the core instantiated, can be
# - CORTEX_M0 # - CORTEX_M0
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -70,6 +71,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -70,6 +71,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -83,6 +92,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -83,6 +92,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -108,9 +121,19 @@ COMPILE_MICROLIB = 0 ...@@ -108,9 +121,19 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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) -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) -I $(SOFTWARE_DIR)/common/retarget -I $(SOFTWARE_DIR)/drivers $(USER_DEFINE)
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -138,9 +161,9 @@ endif ...@@ -138,9 +161,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -158,24 +181,25 @@ all: all_$(TOOL_CHAIN) ...@@ -158,24 +181,25 @@ all: all_$(TOOL_CHAIN)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(GENERIC_FILE) $(DEPS_LIST) $(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) 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) $(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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o dma_350_driver.o
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -106,7 +119,17 @@ COMPILE_MICROLIB = 0 ...@@ -106,7 +119,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -134,9 +157,9 @@ endif ...@@ -134,9 +157,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -155,21 +178,22 @@ all: all_$(TOOL_CHAIN) ...@@ -155,21 +178,22 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(GENERIC_FILE) $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0 ...@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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) -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -132,9 +155,9 @@ endif ...@@ -132,9 +155,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -152,21 +175,22 @@ all: all_$(TOOL_CHAIN) ...@@ -152,21 +175,22 @@ all: all_$(TOOL_CHAIN)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 $@ armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0 ...@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 -I $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -131,9 +154,9 @@ endif ...@@ -131,9 +154,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN) ...@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0 ...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 -I $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -132,9 +155,9 @@ endif ...@@ -132,9 +155,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN) ...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0 CPU_PRODUCT = CORTEX_M0
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -109,7 +122,18 @@ COMPILE_SMALLMUL = 0 ...@@ -109,7 +122,18 @@ COMPILE_SMALLMUL = 0
#ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ #ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
# --rw_base 0x30000000 --ro_base 0x00000000 --map --info sizes # --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) -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
ARM_ASM_OPTIONS = ARM_ASM_OPTIONS =
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -137,9 +161,9 @@ endif ...@@ -137,9 +161,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -160,19 +184,19 @@ all_ds5 : $(TESTNAME).hex $(TESTNAME).lst ...@@ -160,19 +184,19 @@ all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 $@ armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -68,6 +69,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -81,6 +90,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0 ...@@ -103,7 +116,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 -I $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -131,9 +154,9 @@ endif ...@@ -131,9 +154,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN) ...@@ -152,24 +175,25 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o CMSDK_driver.o
......
...@@ -29,8 +29,9 @@ ...@@ -29,8 +29,9 @@
# Choose the core instantiated, can be # Choose the core instantiated, can be
# - CORTEX_M0 # - CORTEX_M0
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0 ...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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 -I $(DEVICE_DIR)/Include -I $(CORE_DIR) -I $(SOFTWARE_DIR)/common/retarget
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -132,9 +155,9 @@ endif ...@@ -132,9 +155,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN) ...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/validation/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 armlink $(ARM_LINK_OPTIONS) -o $@ $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o
......
...@@ -29,8 +29,9 @@ ...@@ -29,8 +29,9 @@
# Choose the core instantiated, can be # Choose the core instantiated, can be
# - CORTEX_M0 # - CORTEX_M0
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -107,7 +120,17 @@ COMPILE_MICROLIB = 0 ...@@ -107,7 +120,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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) -I $(SOFTWARE_DIR)/common/retarget -I $(SOFTWARE_DIR)/debug_tester $(USER_DEFINE)
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
...@@ -137,9 +160,9 @@ endif ...@@ -137,9 +160,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -157,27 +180,28 @@ all: all_$(TOOL_CHAIN) ...@@ -157,27 +180,28 @@ all: all_$(TOOL_CHAIN)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst 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) $(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) 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) $(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) 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) 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) 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) $(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 $(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 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
......
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
# Tool chain : ds5 / gcc / keil # Tool chain : ds5 / gcc / keil
TOOL_CHAIN = ds5 TOOL_CHAIN = ds5
TARGET = arm-none-eabi
TESTNAME = rtx_demo TESTNAME = rtx_demo
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
...@@ -61,7 +63,15 @@ all_ds5 : hexfile_select ...@@ -61,7 +63,15 @@ all_ds5 : hexfile_select
echo "Please compile RTX demo in Keil MDK and press ENTER when ready" ; \ echo "Please compile RTX demo in Keil MDK and press ENTER when ready" ; \
read dummy ; \ read dummy ; \
fi 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 # gcc
# #
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
# - CORTEX_M0PLUS # - CORTEX_M0PLUS
CPU_PRODUCT = CORTEX_M0PLUS CPU_PRODUCT = CORTEX_M0PLUS
TARGET = arm-none-eabi
# Shared software directory # Shared software directory
SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software SOFTWARE_DIR = $(SOCLABS_NANOSOC_TECH_DIR)/software
CMSIS_DIR = $(SOFTWARE_DIR)/cmsis CMSIS_DIR = $(SOFTWARE_DIR)/cmsis
...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -69,6 +70,14 @@ ifeq ($(TOOL_CHAIN),ds5)
endif endif
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 ($(TOOL_CHAIN),gcc)
ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS) ifeq ($(CPU_PRODUCT),CORTEX_M0PLUS)
CPU_TYPE = -mcpu=cortex-m0plus CPU_TYPE = -mcpu=cortex-m0plus
...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5) ...@@ -82,6 +91,10 @@ ifeq ($(TOOL_CHAIN),ds5)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif endif
ifeq ($(TOOL_CHAIN),ds6)
STARTUP_DIR = $(DEVICE_DIR)/Source/ARM
endif
# Startup code directory for gcc # Startup code directory for gcc
ifeq ($(TOOL_CHAIN),gcc) ifeq ($(TOOL_CHAIN),gcc)
STARTUP_DIR = $(DEVICE_DIR)/Source/GCC STARTUP_DIR = $(DEVICE_DIR)/Source/GCC
...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0 ...@@ -104,7 +117,17 @@ COMPILE_MICROLIB = 0
# Small Multiply (Cortex-M0/M0+ has small multiplier option) # Small Multiply (Cortex-M0/M0+ has small multiplier option)
COMPILE_SMALLMUL = 0 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) -I $(SOFTWARE_DIR)/common/retarget $(USER_DEFINE)
ARM_ASM_OPTIONS = -g ARM_ASM_OPTIONS = -g
ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \ ARM_LINK_OPTIONS = "--keep=$(STARTUP_FILE).o(RESET)" "--first=$(STARTUP_FILE).o(RESET)" \
...@@ -133,9 +156,9 @@ endif ...@@ -133,9 +156,9 @@ endif
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# gcc options # gcc options
GNG_CC = arm-none-eabi-gcc GNG_CC = $(TARGET)-gcc
GNU_OBJDUMP = arm-none-eabi-objdump GNU_OBJDUMP = $(TARGET)-objdump
GNU_OBJCOPY = arm-none-eabi-objcopy GNU_OBJCOPY = $(TARGET)-objcopy
LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts LINKER_SCRIPT_PATH = $(SOFTWARE_DIR)/common/scripts
LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld LINKER_SCRIPT = $(LINKER_SCRIPT_PATH)/cmsdk_cm0.ld
...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN) ...@@ -153,21 +176,22 @@ all: all_$(TOOL_CHAIN)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# DS-5 # DS-5
all_ds5 : $(TESTNAME).hex $(TESTNAME).lst all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
all_ds6 : $(TESTNAME).hex $(TESTNAME).lst
$(TESTNAME).o : $(SOFTWARE_DIR)/common/demos/$(TESTNAME).c $(DEPS_LIST) $(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) $(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) 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) 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) $(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 $(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 $@ armlink $(ARM_LINK_OPTIONS) $(TESTNAME).o $(SYSTEM_FILE).o $(STARTUP_FILE).o retarget.o uart_stdout.o -o $@
......