Cortex-Mx linker scripts updated.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2885 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
gdisirio 2011-04-17 16:46:51 +00:00
parent d43e444377
commit c878b791eb
16 changed files with 656 additions and 400 deletions

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }

View File

@ -38,11 +38,32 @@ __ram_end__ = __ram_start__ + __ram_size__;
SECTIONS SECTIONS
{ {
. = 0; . = 0;
_text = .;
startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
} > flash
constructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__init_array_end = .);
} > flash
destructors : ALIGN(4) SUBALIGN(4)
{
PROVIDE(__fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(__fini_array_end = .);
} > flash
.text : ALIGN(16) SUBALIGN(16) .text : ALIGN(16) SUBALIGN(16)
{ {
_text = .; *(.text.startup.*)
KEEP(*(vectors))
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
@ -52,31 +73,26 @@ SECTIONS
*(.gcc*) *(.gcc*)
} > flash } > flash
.ctors : .ARM.extab :
{ {
PROVIDE(_ctors_start_ = .); *(.ARM.extab* .gnu.linkonce.armextab.*)
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(_ctors_end_ = .);
} > flash } > flash
.dtors : .ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
.eh_frame_hdr :
{ {
PROVIDE(_dtors_start_ = .); *(.eh_frame_hdr)
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(_dtors_end_ = .);
} > flash } > flash
.ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} .eh_frame : ONLY_IF_RO
{
__exidx_start = .; *(.eh_frame)
.ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash } > flash
__exidx_end = .;
.eh_frame_hdr : {*(.eh_frame_hdr)}
.eh_frame : ONLY_IF_RO {*(.eh_frame)}
. = ALIGN(4); . = ALIGN(4);
_etext = .; _etext = .;
@ -84,26 +100,26 @@ SECTIONS
.data : .data :
{ {
_data = .; PROVIDE(_data = .);
*(.data) *(.data)
. = ALIGN(4); . = ALIGN(4);
*(.data.*) *(.data.*)
. = ALIGN(4); . = ALIGN(4);
*(.ramtext) *(.ramtext)
. = ALIGN(4); . = ALIGN(4);
_edata = .; PROVIDE(_edata = .);
} > ram AT > flash } > ram AT > flash
.bss : .bss :
{ {
_bss_start = .; PROVIDE(_bss_start = .);
*(.bss) *(.bss)
. = ALIGN(4); . = ALIGN(4);
*(.bss.*) *(.bss.*)
. = ALIGN(4); . = ALIGN(4);
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_bss_end = .; PROVIDE(_bss_end = .);
} > ram } > ram
} }