From 463094547531f37df9668826771a6a0d4eb792d9 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 19 Sep 2012 22:49:19 +0200 Subject: [PATCH] Made the stack and heap size configurable when using the IAR compiler on the MSP430 platforms --- cpu/msp430/Makefile.msp430 | 14 ++++++++++++++ platform/esb/Makefile.esb | 2 +- platform/exp5438/Makefile.exp5438 | 3 +-- platform/sky/Makefile.common | 2 +- platform/wismote/Makefile.wismote | 2 +- platform/z1/Makefile.common | 2 +- 6 files changed, 19 insertions(+), 6 deletions(-) diff --git a/cpu/msp430/Makefile.msp430 b/cpu/msp430/Makefile.msp430 index 8e9ffd2c2..1dc82798b 100644 --- a/cpu/msp430/Makefile.msp430 +++ b/cpu/msp430/Makefile.msp430 @@ -72,6 +72,20 @@ CFLAGSNO = --dlib_config "$(IAR_PATH)/LIB/DLIB/dl430xlfn.h" $(CFLAGSWERROR) # CFLAGSNO = --dlib_config $(IAR_PATH)/LIB/DLIB/dl430xlfn.h -Ohz --multiplier=32 --multiplier_location=4C0 --hw_workaround=CPU40 --core=430X $(CFLAGSWERROR) --data_model large --double=32 endif +LDFLAGSNO += -B -l contiki-$(TARGET).map -s __program_start +# Stack and heap size in hex +ifndef IAR_STACK_SIZE + IAR_STACK_SIZE=300 +endif +# Set this to a positive number (hex) to enable malloc/free with IAR compiler +ifndef IAR_DATA16_HEAP_SIZE + IAR_DATA16_HEAP_SIZE=100 +endif +LDFLAGSNO += -D_STACK_SIZE=$(IAR_STACK_SIZE) -D_DATA16_HEAP_SIZE=$(IAR_DATA16_HEAP_SIZE) +ifdef IAR_DATA20_HEAP_SIZE + LDFLAGSNO += -D_DATA20_HEAP_SIZE=$(IAR_DATA20_HEAP_SIZE) +endif + CUSTOM_RULE_C_TO_O = 1 %.o: %.c $(CC) $(CFLAGS) $< -o $@ diff --git a/platform/esb/Makefile.esb b/platform/esb/Makefile.esb index 9e82880f3..7ec4d4444 100644 --- a/platform/esb/Makefile.esb +++ b/platform/esb/Makefile.esb @@ -54,7 +54,7 @@ MCU=msp430f149 include $(CONTIKI)/cpu/msp430/Makefile.msp430 ifdef IAR -LDFLAGSNO += -B -xm "$(IAR_PATH)/lib/dlib/dl430fn.r43" -f "$(IAR_PATH)/config/lnk430f149.xcl" -l contiki-$(TARGET).map -s __program_start -D_STACK_SIZE=80 -D_DATA16_HEAP_SIZE=80 -D_DATA20_HEAP_SIZE=80 +LDFLAGSNO += -xm "$(IAR_PATH)/lib/dlib/dl430fn.r43" -f "$(IAR_PATH)/config/lnk430f149.xcl" LDFLAGS += $(LDFLAGSNO) -Felf -yn endif # IAR diff --git a/platform/exp5438/Makefile.exp5438 b/platform/exp5438/Makefile.exp5438 index d1780dc39..d22f18a4a 100644 --- a/platform/exp5438/Makefile.exp5438 +++ b/platform/exp5438/Makefile.exp5438 @@ -58,8 +58,7 @@ contiki-$(TARGET).a: ${addprefix $(OBJECTDIR)/,symbols.o} ifdef IAR -STACKSIZE=300 -LDFLAGSNO += -B -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f5437.xcl" -l contiki-$(TARGET).map -s __program_start -D_STACK_SIZE=$(STACKSIZE) -D_DATA16_HEAP_SIZE=$(STACKSIZE) -D_DATA20_HEAP_SIZE=$(STACKSIZE) +LDFLAGSNO += -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f5437.xcl" LDFLAGS += $(LDFLAGSNO) -Felf -yn endif diff --git a/platform/sky/Makefile.common b/platform/sky/Makefile.common index 53d680863..bfc32b09d 100644 --- a/platform/sky/Makefile.common +++ b/platform/sky/Makefile.common @@ -29,7 +29,7 @@ contiki-$(TARGET).a: ${addprefix $(OBJECTDIR)/,symbols.o} ifdef IAR -LDFLAGSNO += -B -xm "$(IAR_PATH)/lib/dlib/dl430fn.r43" -f "$(IAR_PATH)/config/lnk430f1611.xcl" -l contiki-$(TARGET).map -s __program_start -D_STACK_SIZE=80 -D_DATA16_HEAP_SIZE=80 -D_DATA20_HEAP_SIZE=80 +LDFLAGSNO += -xm "$(IAR_PATH)/lib/dlib/dl430fn.r43" -f "$(IAR_PATH)/config/lnk430f1611.xcl" LDFLAGS += $(LDFLAGSNO) -Felf -yn endif # IAR diff --git a/platform/wismote/Makefile.wismote b/platform/wismote/Makefile.wismote index e24d9d002..71850bd59 100644 --- a/platform/wismote/Makefile.wismote +++ b/platform/wismote/Makefile.wismote @@ -34,7 +34,7 @@ MCU=msp430f5437 include $(CONTIKI)/cpu/msp430/Makefile.msp430 ifdef IAR -LDFLAGSNO += -B -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f5437.xcl" -l contiki-$(TARGET).map -s __program_start -D_STACK_SIZE=80 -D_DATA16_HEAP_SIZE=80 -D_DATA20_HEAP_SIZE=80 +LDFLAGSNO += -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f5437.xcl" LDFLAGS += $(LDFLAGSNO) -Felf -yn endif diff --git a/platform/z1/Makefile.common b/platform/z1/Makefile.common index 6afab08f5..28f1f8f8a 100644 --- a/platform/z1/Makefile.common +++ b/platform/z1/Makefile.common @@ -42,7 +42,7 @@ include $(CONTIKI)/cpu/msp430/Makefile.msp430 # Add LDFLAGS after IAR_PATH is set ifdef IAR -LDFLAGSNO += -B -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f2617.xcl" -l contiki-$(TARGET).map -s __program_start -D_STACK_SIZE=80 -D_DATA16_HEAP_SIZE=80 -D_DATA20_HEAP_SIZE=80 +LDFLAGSNO += -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f2617.xcl" LDFLAGS += $(LDFLAGSNO) -Felf -yn endif