Adds support for placing MSP430 code and data into either low memory or high memory.
* msp430/msp430.ld: Delete. * msp430/msp430F5438A-l.ld: Delete. * msp430/msp430F5438A-s.ld: Delete. * msp430/crt_movedata.S: Delete. * msp430/Makefile.in (SCRIPTS): Remove msp430.ld. (CRT_OBJS): Add crt_move_highdata.o. * msp430/memmodel.h (START_CRT_FUNC): New macro. (END_CRT_FUNC): New macro. (WEAK_DEF): New macro. * msp430/crt0.S: Use new macros. (move_highdata): New code to initialise the .data section if it is held in high memory. * msp430/msp430-sim.ld (.data): Add .either.data. (.rodata2): Move some read-only data sections here. (.text): Add .either.text. (.rodata): Add .either.rodata. (.bss): Add .either.bss. * msp430/msp430xl-sim.ld (MEMORY): Add HIROM. (.rodata2): Move some read-only data sections here. (.upper.data): New section. Include notes about how to initialise it.
This commit is contained in:
committed by
Corinna Vinschen
parent
761a123a4f
commit
baa681fd38
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2012-2013 Red Hat, Inc. All rights reserved.
|
||||
/* Copyright (c) 2012-2015 Red Hat, Inc. All rights reserved.
|
||||
|
||||
This copyrighted material is made available to anyone wishing to use, modify,
|
||||
copy, or redistribute it subject to the terms and conditions of the BSD
|
||||
@ -37,5 +37,30 @@
|
||||
#define add_ ADD
|
||||
#define PTRsz 2
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/* Start a function in its own named and numbered section, so that it
|
||||
can be subject to linker garbage collection. The numbers are used
|
||||
to enforce link-time ordering of the sections. Note - the construction
|
||||
of the symbol names is critical - they need to match the unresolved
|
||||
symbol references created by the compiler and assembler. */
|
||||
.macro START_CRT_FUNC number name
|
||||
.section .crt_\number\name,"ax",@progbits
|
||||
.global __crt0_\name
|
||||
.type __crt0_\name , @function
|
||||
__crt0_\name:
|
||||
.endm
|
||||
|
||||
|
||||
/* End a named function. Sets the size so that GDB does not get confused. */
|
||||
.macro END_CRT_FUNC name
|
||||
.size __crt0_\name, . - __crt0_\name
|
||||
.endm
|
||||
|
||||
|
||||
/* Provide a weak definition of NAME, initialized to zero. */
|
||||
.macro WEAK_DEF name
|
||||
.global \name
|
||||
.weak \name
|
||||
\name = 0
|
||||
.endm
|
||||
|
Reference in New Issue
Block a user