| _ram_start = ORIGIN(ram);
_ram_size = LENGTH(ram);
_ram_end = _ram_start + _ram_size;
SECTIONS {
. = 0;
.vectors : ALIGN(16) SUBALIGN(16) {
KEEP(*(.vectors))
} > flash
.init_array : ALIGN(4) SUBALIGN(4) {
PROVIDE(_init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(_init_array_end = .);
} > flash
.fini_array : ALIGN(4) SUBALIGN(4) {
PROVIDE(_fini_array_start = .);
KEEP(*(.fini_array))
KEEP(*(SORT(.fini_array.*)))
PROVIDE(_fini_array_end = .);
} > flash
.text : ALIGN(4) SUBALIGN(4) {
*(.text.startup.*)
*(.text)
*(.text.*)
*(.rodata)
*(.rodata.*)
*(.glue_7t)
*(.glue_7)
*(.gcc*)
} > flash
.ARM.extab : {
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > flash
.ARM.exidx : {
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > flash
.eh_frame_hdr : {
*(.eh_frame_hdr)
} > flash
.eh_frame : ONLY_IF_RO {
*(.eh_frame)
} > flash
. = ALIGN(4);
.bootinfo : {
*(.bootinfo)
} > ram
. = ALIGN(4);
.data : ALIGN(4) SUBALIGN(4) {
PROVIDE(_data_start = .);
*(.data)
. = ALIGN(4);
*(.data.*)
. = ALIGN(4);
*(.ramtext)
. = ALIGN(4);
PROVIDE(_data_end = .);
} > ram AT > flash
.bss : {
PROVIDE(_bss_start = .);
*(.bss)
. = ALIGN(4);
*(.bss.*)
. = ALIGN(4);
*(COMMON)
. = ALIGN(4);
PROVIDE(_bss_end = .);
} > ram
PROVIDE(_ram_end = ORIGIN(ram) + LENGTH(ram));
PROVIDE(_data_rom = LOADADDR(.data));
}
|