diff --git a/cpu/msp430_common/ldscripts/xfa.ld b/cpu/msp430_common/ldscripts/xfa.ld new file mode 100644 index 0000000000..7b115a66c1 --- /dev/null +++ b/cpu/msp430_common/ldscripts/xfa.ld @@ -0,0 +1,24 @@ +SECTIONS +{ + .rodata : + { + KEEP (*(SORT(.roxfa.*))) + } > ROM +} + +INSERT AFTER .rodata; + +SECTIONS +{ + .data : + { + KEEP (*(SORT(.xfa.*))) + } > RAM AT> ROM + + . = ALIGN(2); + _edata = .; + PROVIDE (edata = .); + PROVIDE (__dataend = .); +} + +INSERT AFTER .data; diff --git a/makefiles/arch/msp430.inc.mk b/makefiles/arch/msp430.inc.mk index 011e2778ea..801d155274 100644 --- a/makefiles/arch/msp430.inc.mk +++ b/makefiles/arch/msp430.inc.mk @@ -15,6 +15,8 @@ ASFLAGS += $(CFLAGS_CPU) --defsym $(CPU_MODEL)=1 $(CFLAGS_DBG) LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) $(CFLAGS_OPT) LINKFLAGS += -Wl,--gc-sections -Wl,-L$(MSP430_SUPPORT_FILES)/include +LINKFLAGS += -T $(MSP430_SUPPORT_FILES)/include/$(CPU_MODEL).ld +LINKFLAGS += $(RIOTCPU)/msp430_common/ldscripts/xfa.ld OPTIONAL_CFLAGS_BLACKLIST += -fdiagnostics-color OPTIONAL_CFLAGS_BLACKLIST += -Wformat-overflow