All linker scripts: Preface all _edata defininitions with . = ALIGN(4). Otherwise, the last bytes in the .data section may not be initialized properly. Also convert all linker scripts indent in units of 8-spaces to units of 4-spaces.

This commit is contained in:
Gregory Nutt
2019-09-15 17:22:16 -06:00
parent 0bd60c3722
commit 2925c28f8f
304 changed files with 3653 additions and 3258 deletions
+1
View File
@@ -73,6 +73,7 @@ SECTIONS
*(.data1) *(.data1)
*(.data.*) *(.data.*)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
. = ALIGN(4);
_edata = . ; _edata = . ;
} }
+1
View File
@@ -148,6 +148,7 @@ SECTIONS
*(.dtors) *(.dtors)
_dtors_end = . ; _dtors_end = . ;
. = ALIGN(4);
_edata = . ; _edata = . ;
edata = ALIGN( 0x10 ) ; edata = ALIGN( 0x10 ) ;
} > DSPACE } > DSPACE
+1
View File
@@ -148,6 +148,7 @@ SECTIONS
*(.dtors) *(.dtors)
_dtors_end = . ; _dtors_end = . ;
. = ALIGN(4);
_edata = . ; _edata = . ;
edata = ALIGN( 0x10 ) ; edata = ALIGN( 0x10 ) ;
} > DSPACE } > DSPACE
@@ -95,6 +95,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > sdram } > sdram
@@ -100,6 +100,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ddr } > ddr
+59 -58
View File
@@ -37,74 +37,75 @@ OUTPUT_ARCH(arm)
ENTRY(_stext) ENTRY(_stext)
SECTIONS SECTIONS
{ {
/* Interrupt vector trampoline and command line parameters /* Interrupt vector trampoline and command line parameters
* are provided in IRAM by the rrload bootloader. Vectors will be * are provided in IRAM by the rrload bootloader. Vectors will be
* copied into _svectors. * copied into _svectors.
*/ */
. = 0xffc00000; . = 0xffc00000;
_svectors = ABSOLUTE(.); _svectors = ABSOLUTE(.);
/* These are locations in IRAM where the rrload bootloader passes /* These are locations in IRAM where the rrload bootloader passes
* information to the running program * information to the running program
*/ */
. = 0xffc00020; . = 0xffc00020;
__KernCommandLineMagicStr = .; /* magic pattern string == "kcmdline-->" */ __KernCommandLineMagicStr = .; /* magic pattern string == "kcmdline-->" */
. = 0xffc0002C; /* advance to .+strlen("kcmdline-->")+1 */ . = 0xffc0002C; /* advance to .+strlen("kcmdline-->")+1 */
__KernCommandLineOverride = .; /* location of kernel command line string */ __KernCommandLineOverride = .; /* location of kernel command line string */
. = 0xffc00100; . = 0xffc00100;
__EtherMACMagicStr = .; /* magic pattern string == "etherMAC-->" */ __EtherMACMagicStr = .; /* magic pattern string == "etherMAC-->" */
. = 0xffc0010C; /* advance to .+strlen("etherMAC-->")+1 */ . = 0xffc0010C; /* advance to .+strlen("etherMAC-->")+1 */
__EtherMAC = .; __EtherMAC = .;
/* The OS entry point is here */ /* The OS entry point is here */
. = 0x10300000; . = 0x10300000;
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata) *(.rodata)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) /* Global offset table */ *(.got) /* Global offset table */
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} }
_eronly = ABSOLUTE(.); /* See below */ _eronly = ABSOLUTE(.); /* See below */
. = ALIGN(4096); . = ALIGN(4096);
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data) *(.data)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} _edata = ABSOLUTE(.);
}
.bss : ALIGN(4) { /* BSS */ .bss : ALIGN(4) { /* BSS */
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss) *(.bss)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} }
/* Stabs debugging sections. */ /* Stabs debugging sections. */
.stab 0 : { *(.stab) } .stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) } .stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) } .stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) } .comment 0 : { *(.comment) }
.debug_abbrev 0 : { *(.debug_abbrev) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) } .debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) } .debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -88,6 +88,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ram } > ram
@@ -59,6 +59,7 @@ SECTIONS
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data) *(.data)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} }
@@ -83,6 +83,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > sram AT > flash } > sram AT > flash
@@ -34,8 +34,8 @@
MEMORY MEMORY
{ {
flash (rx) : ORIGIN = 0x00000000, LENGTH = 1M flash (rx) : ORIGIN = 0x00000000, LENGTH = 1M
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128M sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128M
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -44,68 +44,70 @@ ENTRY(_stext)
SECTIONS SECTIONS
{ {
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.vectors) *(.vectors)
*(.text .text.*) *(.text .text.*)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata .rodata.*) *(.rodata .rodata.*)
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) *(.got)
*(.gcc_except_table) *(.gcc_except_table)
*(.gnu.linkonce.r.*) *(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > flash } > flash
.init_section : ALIGN(4) { .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.); _sinit = ABSOLUTE(.);
*(.init_array .init_array.*) *(.init_array .init_array.*)
_einit = ABSOLUTE(.); _einit = ABSOLUTE(.);
} > flash } > flash
.ARM.extab : ALIGN(4) { .ARM.extab : ALIGN(4) {
*(.ARM.extab*) *(.ARM.extab*)
} > flash } > flash
.ARM.exidx : ALIGN(4) { .ARM.exidx : ALIGN(4) {
__exidx_start = ABSOLUTE(.); __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*) *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.); __exidx_end = ABSOLUTE(.);
} > flash } > flash
_eronly = ABSOLUTE(.); _eronly = ABSOLUTE(.);
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} > sram AT > flash _edata = ABSOLUTE(.);
} > sram AT > flash
.bss : ALIGN(4) { .bss : ALIGN(4) {
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss .bss.*) *(.bss .bss.*)
*(.gnu.linkonce.b.*) *(.gnu.linkonce.b.*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} > sram } > sram
/* Stabs debugging sections. */ /* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stab 0 : { *(.stab) }
.stab.excl 0 : { *(.stab.excl) } .stabstr 0 : { *(.stabstr) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.excl 0 : { *(.stab.excl) }
.stab.index 0 : { *(.stab.index) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.index 0 : { *(.stab.index) }
.comment 0 : { *(.comment) } .stab.indexstr 0 : { *(.stab.indexstr) }
.debug_abbrev 0 : { *(.debug_abbrev) } .comment 0 : { *(.comment) }
.debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) } .debug_info 0 : { *(.debug_info) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_line 0 : { *(.debug_line) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -34,8 +34,8 @@
MEMORY MEMORY
{ {
flash (rx) : ORIGIN = 0x00000000, LENGTH = 131072 flash (rx) : ORIGIN = 0x00000000, LENGTH = 131072
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 16384 sram (rwx) : ORIGIN = 0x20000000, LENGTH = 16384
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -44,68 +44,70 @@ ENTRY(_stext)
SECTIONS SECTIONS
{ {
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.vectors) *(.vectors)
*(.text .text.*) *(.text .text.*)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata .rodata.*) *(.rodata .rodata.*)
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) *(.got)
*(.gcc_except_table) *(.gcc_except_table)
*(.gnu.linkonce.r.*) *(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > flash } > flash
.init_section : ALIGN(4) { .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.); _sinit = ABSOLUTE(.);
*(.init_array .init_array.*) *(.init_array .init_array.*)
_einit = ABSOLUTE(.); _einit = ABSOLUTE(.);
} > flash } > flash
.ARM.extab : ALIGN(4) { .ARM.extab : ALIGN(4) {
*(.ARM.extab*) *(.ARM.extab*)
} > flash } > flash
.ARM.exidx : ALIGN(4) { .ARM.exidx : ALIGN(4) {
__exidx_start = ABSOLUTE(.); __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*) *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.); __exidx_end = ABSOLUTE(.);
} > flash } > flash
_eronly = ABSOLUTE(.); _eronly = ABSOLUTE(.);
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} > sram AT > flash _edata = ABSOLUTE(.);
} > sram AT > flash
.bss : ALIGN(4) { .bss : ALIGN(4) {
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss .bss.*) *(.bss .bss.*)
*(.gnu.linkonce.b.*) *(.gnu.linkonce.b.*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} > sram } > sram
/* Stabs debugging sections. */ /* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stab 0 : { *(.stab) }
.stab.excl 0 : { *(.stab.excl) } .stabstr 0 : { *(.stabstr) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.excl 0 : { *(.stab.excl) }
.stab.index 0 : { *(.stab.index) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.index 0 : { *(.stab.index) }
.comment 0 : { *(.comment) } .stab.indexstr 0 : { *(.stab.indexstr) }
.debug_abbrev 0 : { *(.debug_abbrev) } .comment 0 : { *(.comment) }
.debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) } .debug_info 0 : { *(.debug_info) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_line 0 : { *(.debug_line) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -103,6 +103,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ddr3 } > ddr3
@@ -83,6 +83,7 @@ SECTIONS
*(.data1) *(.data1)
*(.data.*) *(.data.*)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
. = ALIGN(4);
_edata = . ; _edata = . ;
} }
@@ -115,6 +115,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > sram AT > flash } > sram AT > flash
@@ -88,6 +88,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > kocram AT > kflash } > kocram AT > kflash
@@ -104,6 +104,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > uocram AT > uflash } > uocram AT > uflash
@@ -115,6 +115,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > sram AT > flash } > sram AT > flash
@@ -89,6 +89,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > kocram AT > kflash } > kocram AT > kflash
@@ -105,6 +105,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > uocram AT > uflash } > uocram AT > uflash
@@ -121,6 +121,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ocram AT > progflash } > ocram AT > progflash
@@ -106,6 +106,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -103,6 +103,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -106,6 +106,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -106,6 +106,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -106,6 +106,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -106,6 +106,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -48,10 +48,10 @@
MEMORY MEMORY
{ {
vectflash (rx) : ORIGIN = 0x00000000, LENGTH = 1K vectflash (rx) : ORIGIN = 0x00000000, LENGTH = 1K
cfmprotect (rx) : ORIGIN = 0x00000400, LENGTH = 16 cfmprotect (rx) : ORIGIN = 0x00000400, LENGTH = 16
progflash (rx) : ORIGIN = 0x00000800, LENGTH = 1M - 2K progflash (rx) : ORIGIN = 0x00000800, LENGTH = 1M - 2K
datasram (rwx) : ORIGIN = 0x1fff0000, LENGTH = 256K datasram (rwx) : ORIGIN = 0x1fff0000, LENGTH = 256K
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -60,85 +60,87 @@ ENTRY(_stext)
EXTERN(__flashconfigbytes) EXTERN(__flashconfigbytes)
SECTIONS SECTIONS
{ {
.vectors : { .vectors : {
_svectors = ABSOLUTE(.); _svectors = ABSOLUTE(.);
*(.vectors) *(.vectors)
_evectors = ABSOLUTE(.); _evectors = ABSOLUTE(.);
} > vectflash } > vectflash
.cfmprotect : { .cfmprotect : {
KEEP(*(.cfmconfig)) KEEP(*(.cfmconfig))
} > cfmprotect } > cfmprotect
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.text .text.*) *(.text .text.*)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata .rodata.*) *(.rodata .rodata.*)
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) *(.got)
*(.gcc_except_table) *(.gcc_except_table)
*(.gnu.linkonce.r.*) *(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > progflash } > progflash
.init_section : ALIGN(4) { .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.); _sinit = ABSOLUTE(.);
*(.init_array .init_array.*) *(.init_array .init_array.*)
_einit = ABSOLUTE(.); _einit = ABSOLUTE(.);
} > progflash } > progflash
.ARM.extab : ALIGN(4) { .ARM.extab : ALIGN(4) {
*(.ARM.extab*) *(.ARM.extab*)
} > progflash } > progflash
.ARM.exidx : ALIGN(4) { .ARM.exidx : ALIGN(4) {
__exidx_start = ABSOLUTE(.); __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*) *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.); __exidx_end = ABSOLUTE(.);
} > progflash } > progflash
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} > datasram AT > progflash _edata = ABSOLUTE(.);
} > datasram AT > progflash
_eronly = LOADADDR(.data); _eronly = LOADADDR(.data);
.ramfunc ALIGN(4): { .ramfunc ALIGN(4): {
_sramfuncs = ABSOLUTE(.); _sramfuncs = ABSOLUTE(.);
*(.ramfunc .ramfunc.*) *(.ramfunc .ramfunc.*)
_eramfuncs = ABSOLUTE(.); _eramfuncs = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
_framfuncs = LOADADDR(.ramfunc); _framfuncs = LOADADDR(.ramfunc);
.bss : ALIGN(4) { .bss : ALIGN(4) {
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss .bss.*) *(.bss .bss.*)
*(.gnu.linkonce.b.*) *(.gnu.linkonce.b.*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} > datasram } > datasram
/* Stabs debugging sections. */ /* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stab 0 : { *(.stab) }
.stab.excl 0 : { *(.stab.excl) } .stabstr 0 : { *(.stabstr) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.excl 0 : { *(.stab.excl) }
.stab.index 0 : { *(.stab.index) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.index 0 : { *(.stab.index) }
.comment 0 : { *(.comment) } .stab.indexstr 0 : { *(.stab.indexstr) }
.debug_abbrev 0 : { *(.debug_abbrev) } .comment 0 : { *(.comment) }
.debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) } .debug_info 0 : { *(.debug_info) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_line 0 : { *(.debug_line) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -97,6 +97,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -97,6 +97,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -97,6 +97,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > datasram AT > progflash } > datasram AT > progflash
@@ -83,6 +83,7 @@ SECTIONS
*(.data1) *(.data1)
*(.data.*) *(.data.*)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
. = ALIGN(4);
_edata = . ; _edata = . ;
} }
@@ -36,9 +36,9 @@
MEMORY MEMORY
{ {
progmem (rx) : ORIGIN = 0x02000e00, LENGTH = 124K progmem (rx) : ORIGIN = 0x02000e00, LENGTH = 124K
sram (rwx) : ORIGIN = 0x02100000, LENGTH = 256K sram (rwx) : ORIGIN = 0x02100000, LENGTH = 256K
ramlog (rwx) : ORIGIN = 0x020fe000, LENGTH = 8K ramlog (rwx) : ORIGIN = 0x020fe000, LENGTH = 8K
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -46,75 +46,75 @@ EXTERN(_vectors)
ENTRY(_stext) ENTRY(_stext)
SECTIONS SECTIONS
{ {
.text : {
_stext = ABSOLUTE(.);
KEEP(*(.vectors))
*(.vectors)
*(.text .text.*)
*(.fixup)
*(.gnu.warning)
*(.rodata .rodata.*)
*(.gnu.linkonce.t.*)
*(.glue_7)
*(.glue_7t)
*(.got)
*(.gcc_except_table)
*(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.);
} > progmem
.text : { .init_section : ALIGN(4) {
_stext = ABSOLUTE(.); _sinit = ABSOLUTE(.);
KEEP(*(.vectors)) KEEP(*(.init_array .init_array.*))
*(.vectors) _einit = ABSOLUTE(.);
*(.text .text.*) } > progmem
*(.fixup)
*(.gnu.warning)
*(.rodata .rodata.*)
*(.gnu.linkonce.t.*)
*(.glue_7)
*(.glue_7t)
*(.got)
*(.gcc_except_table)
*(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.);
} > progmem
.init_section : ALIGN(4) { .ARM.extab : ALIGN(4) {
_sinit = ABSOLUTE(.); *(.ARM.extab*)
KEEP(*(.init_array .init_array.*)) } > progmem
_einit = ABSOLUTE(.);
} > progmem
.ARM.extab : ALIGN(4) { .ARM.exidx : ALIGN(4) {
*(.ARM.extab*) __exidx_start = ABSOLUTE(.);
} > progmem *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.);
} > progmem
.ARM.exidx : ALIGN(4) { _eronly = ABSOLUTE(LOADADDR(.data));
__exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
__exidx_end = ABSOLUTE(.);
} > progmem
_eronly = ABSOLUTE(LOADADDR(.data)); .data : ALIGN(4) {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > progmem
.bss : ALIGN(4) {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
_ebss = ABSOLUTE(.);
} > sram
.data : ALIGN(4) { .ramlog : {
_sdata = ABSOLUTE(.); *(.ramlog)
*(.data .data.*) } > ramlog
*(.gnu.linkonce.d.*)
CONSTRUCTORS
_edata = ABSOLUTE(.);
} > sram AT > progmem
.bss : ALIGN(4) { /* Stabs debugging sections. */
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
_ebss = ABSOLUTE(.);
} > sram
.ramlog : { .stab 0 : { *(.stab) }
*(.ramlog) .stabstr 0 : { *(.stabstr) }
} > ramlog .stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
/* Stabs debugging sections. */ .stab.index 0 : { *(.stab.index) }
.stab 0 : { *(.stab) } .stab.indexstr 0 : { *(.stab.indexstr) }
.stabstr 0 : { *(.stabstr) } .comment 0 : { *(.comment) }
.stab.excl 0 : { *(.stab.excl) } .debug_abbrev 0 : { *(.debug_abbrev) }
.stab.exclstr 0 : { *(.stab.exclstr) } .debug_info 0 : { *(.debug_info) }
.stab.index 0 : { *(.stab.index) } .debug_line 0 : { *(.debug_line) }
.stab.indexstr 0 : { *(.stab.indexstr) } .debug_pubnames 0 : { *(.debug_pubnames) }
.comment 0 : { *(.comment) } .debug_aranges 0 : { *(.debug_aranges) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -35,8 +35,8 @@
MEMORY MEMORY
{ {
flash (rx) : ORIGIN = 0x05000000, LENGTH = 16384K flash (rx) : ORIGIN = 0x05000000, LENGTH = 16384K
sram (rwx) : ORIGIN = 0x02001000, LENGTH = 1652K sram (rwx) : ORIGIN = 0x02001000, LENGTH = 1652K
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -89,6 +89,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > sram AT > flash } > sram AT > flash
@@ -96,6 +96,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > sram AT > progmem } > sram AT > progmem
@@ -85,6 +85,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > usram AT > uflash } > usram AT > uflash
@@ -42,8 +42,8 @@
MEMORY MEMORY
{ {
flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K
sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -51,67 +51,70 @@ EXTERN(_vectors)
ENTRY(_stext) ENTRY(_stext)
SECTIONS SECTIONS
{ {
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.vectors) *(.vectors)
*(.text .text.*) *(.text .text.*)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata .rodata.*) *(.rodata .rodata.*)
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) *(.got)
*(.gcc_except_table) *(.gcc_except_table)
*(.gnu.linkonce.r.*) *(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > flash } > flash
.init_section : ALIGN(4) { .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.); _sinit = ABSOLUTE(.);
*(.init_array .init_array.*) *(.init_array .init_array.*)
_einit = ABSOLUTE(.); _einit = ABSOLUTE(.);
} > flash } > flash
.ARM.extab : ALIGN(4) { .ARM.extab : ALIGN(4) {
*(.ARM.extab*) *(.ARM.extab*)
} > flash } > flash
.ARM.exidx : ALIGN(4) { .ARM.exidx : ALIGN(4) {
__exidx_start = ABSOLUTE(.); __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*) *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.); __exidx_end = ABSOLUTE(.);
} > flash } > flash
_eronly = ABSOLUTE(.); _eronly = ABSOLUTE(.);
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} > sram AT > flash _edata = ABSOLUTE(.);
} > sram AT > flash
.bss : ALIGN(4) { .bss : ALIGN(4) {
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss .bss.*) *(.bss .bss.*)
*(.gnu.linkonce.b.*) *(.gnu.linkonce.b.*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} > sram } > sram
/* Stabs debugging sections. */
.stab 0 : { *(.stab) } /* Stabs debugging sections. */
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) } .stab 0 : { *(.stab) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stabstr 0 : { *(.stabstr) }
.stab.index 0 : { *(.stab.index) } .stab.excl 0 : { *(.stab.excl) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.exclstr 0 : { *(.stab.exclstr) }
.comment 0 : { *(.comment) } .stab.index 0 : { *(.stab.index) }
.debug_abbrev 0 : { *(.debug_abbrev) } .stab.indexstr 0 : { *(.stab.indexstr) }
.debug_info 0 : { *(.debug_info) } .comment 0 : { *(.comment) }
.debug_line 0 : { *(.debug_line) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_info 0 : { *(.debug_info) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -82,6 +82,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ksram AT > kflash } > ksram AT > kflash
@@ -98,6 +98,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > SRAM AT > FLASH } > SRAM AT > FLASH
@@ -83,6 +83,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > usram AT > uflash } > usram AT > uflash
@@ -82,6 +82,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ksram AT > kflash } > ksram AT > kflash
@@ -98,6 +98,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > SRAM AT > FLASH } > SRAM AT > FLASH
@@ -83,6 +83,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > usram AT > uflash } > usram AT > uflash
@@ -42,8 +42,8 @@
MEMORY MEMORY
{ {
flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K
sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -51,69 +51,70 @@ EXTERN(_vectors)
ENTRY(_stext) ENTRY(_stext)
SECTIONS SECTIONS
{ {
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.vectors) *(.vectors)
*(.text .text.*) *(.text .text.*)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata .rodata.*) *(.rodata .rodata.*)
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) *(.got)
*(.gcc_except_table) *(.gcc_except_table)
*(.gnu.linkonce.r.*) *(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > flash } > flash
.init_section : ALIGN(4) { .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.); _sinit = ABSOLUTE(.);
*(.init_array .init_array.*) *(.init_array .init_array.*)
_einit = ABSOLUTE(.); _einit = ABSOLUTE(.);
} > flash } > flash
.ARM.extab : ALIGN(4) { .ARM.extab : ALIGN(4) {
*(.ARM.extab*) *(.ARM.extab*)
} > flash } > flash
.ARM.exidx : ALIGN(4) { .ARM.exidx : ALIGN(4) {
__exidx_start = ABSOLUTE(.); __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*) *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.); __exidx_end = ABSOLUTE(.);
} > flash } > flash
_eronly = ABSOLUTE(.); _eronly = ABSOLUTE(.);
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} > sram AT > flash _edata = ABSOLUTE(.);
} > sram AT > flash
.bss : ALIGN(4) { .bss : ALIGN(4) {
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss .bss.*) *(.bss .bss.*)
*(.gnu.linkonce.b.*) *(.gnu.linkonce.b.*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} > sram } > sram
/* Stabs debugging sections */ /* Stabs debugging sections */
.stab 0 : { *(.stab) } .stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) } .stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) } .stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) } .comment 0 : { *(.comment) }
.debug_abbrev 0 : { *(.debug_abbrev) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) } .debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) } .debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_aranges 0 : { *(.debug_aranges) }
} }
@@ -83,6 +83,7 @@ SECTIONS
*(.data1) *(.data1)
*(.data.*) *(.data.*)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
. = ALIGN(4);
_edata = . ; _edata = . ;
} }
@@ -81,6 +81,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > ksram AT > kflash } > ksram AT > kflash
@@ -101,6 +101,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > SRAM AT > FLASH } > SRAM AT > FLASH
@@ -99,6 +99,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > SRAM AT > FLASH } > SRAM AT > FLASH
@@ -103,6 +103,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > SRAM AT > SDRAM } > SRAM AT > SDRAM
@@ -82,6 +82,7 @@ SECTIONS
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.); _edata = ABSOLUTE(.);
} > usram AT > uflash } > usram AT > uflash
+62 -59
View File
@@ -42,8 +42,8 @@
MEMORY MEMORY
{ {
flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K
sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K
} }
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
@@ -51,67 +51,70 @@ EXTERN(_vectors)
ENTRY(_stext) ENTRY(_stext)
SECTIONS SECTIONS
{ {
.text : { .text : {
_stext = ABSOLUTE(.); _stext = ABSOLUTE(.);
*(.vectors) *(.vectors)
*(.text .text.*) *(.text .text.*)
*(.fixup) *(.fixup)
*(.gnu.warning) *(.gnu.warning)
*(.rodata .rodata.*) *(.rodata .rodata.*)
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.glue_7) *(.glue_7)
*(.glue_7t) *(.glue_7t)
*(.got) *(.got)
*(.gcc_except_table) *(.gcc_except_table)
*(.gnu.linkonce.r.*) *(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > flash } > flash
.init_section : ALIGN(4) { .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.); _sinit = ABSOLUTE(.);
*(.init_array .init_array.*) *(.init_array .init_array.*)
_einit = ABSOLUTE(.); _einit = ABSOLUTE(.);
} > flash } > flash
.ARM.extab : ALIGN(4) { .ARM.extab : ALIGN(4) {
*(.ARM.extab*) *(.ARM.extab*)
} > flash } > flash
.ARM.exidx : ALIGN(4) { .ARM.exidx : ALIGN(4) {
__exidx_start = ABSOLUTE(.); __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*) *(.ARM.exidx*)
__exidx_end = ABSOLUTE(.); __exidx_end = ABSOLUTE(.);
} > flash } > flash
_eronly = ABSOLUTE(.); _eronly = ABSOLUTE(.);
.data : ALIGN(4) { .data : ALIGN(4) {
_sdata = ABSOLUTE(.); _sdata = ABSOLUTE(.);
*(.data .data.*) *(.data .data.*)
*(.gnu.linkonce.d.*) *(.gnu.linkonce.d.*)
CONSTRUCTORS CONSTRUCTORS
_edata = ABSOLUTE(.); . = ALIGN(4);
} > sram AT > flash _edata = ABSOLUTE(.);
} > sram AT > flash
.bss : ALIGN(4) { /* BSS */ .bss : ALIGN(4) { /* BSS */
_sbss = ABSOLUTE(.); _sbss = ABSOLUTE(.);
*(.bss .bss.*) *(.bss .bss.*)
*(.gnu.linkonce.b.*) *(.gnu.linkonce.b.*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
_ebss = ABSOLUTE(.); _ebss = ABSOLUTE(.);
} > sram } > sram
/* Stabs debugging sections. */
.stab 0 : { *(.stab) } /* Stabs debugging sections. */
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) } .stab 0 : { *(.stab) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stabstr 0 : { *(.stabstr) }
.stab.index 0 : { *(.stab.index) } .stab.excl 0 : { *(.stab.excl) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.exclstr 0 : { *(.stab.exclstr) }
.comment 0 : { *(.comment) } .stab.index 0 : { *(.stab.index) }
.debug_abbrev 0 : { *(.debug_abbrev) } .stab.indexstr 0 : { *(.stab.indexstr) }
.debug_info 0 : { *(.debug_info) } .comment 0 : { *(.comment) }
.debug_line 0 : { *(.debug_line) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_info 0 : { *(.debug_info) }
.debug_aranges 0 : { *(.debug_aranges) } .debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
} }

Some files were not shown because too many files have changed in this diff Show More