From 453ec9a253c7d8b1e1b5ddc6f14d4d14f670f9a3 Mon Sep 17 00:00:00 2001 From: Bunnaroath Sou Date: Mon, 18 Mar 2019 18:35:55 -0700 Subject: Make rtl target to use ram from dtim, flash from testram --- bsp/coreip-e31-rtl/metal.default.lds | 38 +++++++++++++++++---------------- bsp/coreip-e31-rtl/metal.ramrodata.lds | 36 ++++++++++++++++--------------- bsp/coreip-e31-rtl/metal.scratchpad.lds | 3 ++- bsp/coreip-e34-rtl/metal.default.lds | 38 +++++++++++++++++---------------- bsp/coreip-e34-rtl/metal.ramrodata.lds | 36 ++++++++++++++++--------------- bsp/coreip-e34-rtl/metal.scratchpad.lds | 3 ++- bsp/coreip-s51-rtl/metal.default.lds | 38 +++++++++++++++++---------------- bsp/coreip-s51-rtl/metal.ramrodata.lds | 36 ++++++++++++++++--------------- bsp/coreip-s51-rtl/metal.scratchpad.lds | 3 ++- bsp/coreip-s54-rtl/metal.default.lds | 38 +++++++++++++++++---------------- bsp/coreip-s54-rtl/metal.ramrodata.lds | 36 ++++++++++++++++--------------- bsp/coreip-s54-rtl/metal.scratchpad.lds | 3 ++- 12 files changed, 164 insertions(+), 144 deletions(-) diff --git a/bsp/coreip-e31-rtl/metal.default.lds b/bsp/coreip-e31-rtl/metal.default.lds index 26744c6..0b495c2 100644 --- a/bsp/coreip-e31-rtl/metal.default.lds +++ b/bsp/coreip-e31-rtl/metal.default.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x8000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash .text : @@ -38,13 +39,13 @@ SECTIONS *(.text .text.*) *(.itim .itim.*) *(.gnu.linkonce.t.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -57,7 +58,7 @@ SECTIONS *(.rdata) *(.rodata .rodata.*) *(.gnu.linkonce.r.*) - } >ram AT>ram :ram + } >flash AT>flash :flash . = ALIGN(4); @@ -68,7 +69,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -77,7 +78,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -86,7 +87,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -109,7 +110,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -119,27 +120,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -151,14 +152,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -175,7 +176,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -217,6 +218,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-e31-rtl/metal.ramrodata.lds b/bsp/coreip-e31-rtl/metal.ramrodata.lds index 1373c32..1851d65 100644 --- a/bsp/coreip-e31-rtl/metal.ramrodata.lds +++ b/bsp/coreip-e31-rtl/metal.ramrodata.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x8000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash @@ -36,7 +37,7 @@ SECTIONS .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -54,7 +55,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -63,7 +64,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -72,7 +73,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -95,7 +96,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -105,27 +106,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -137,7 +138,7 @@ SECTIONS *(.text .text.*) *(.gnu.linkonce.t.*) *(.itim .itim.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .lalign : @@ -145,14 +146,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -172,7 +173,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -214,6 +215,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-e31-rtl/metal.scratchpad.lds b/bsp/coreip-e31-rtl/metal.scratchpad.lds index 26744c6..f07f9ed 100644 --- a/bsp/coreip-e31-rtl/metal.scratchpad.lds +++ b/bsp/coreip-e31-rtl/metal.scratchpad.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x8000000 } PHDRS diff --git a/bsp/coreip-e34-rtl/metal.default.lds b/bsp/coreip-e34-rtl/metal.default.lds index 26744c6..0b495c2 100644 --- a/bsp/coreip-e34-rtl/metal.default.lds +++ b/bsp/coreip-e34-rtl/metal.default.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x8000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash .text : @@ -38,13 +39,13 @@ SECTIONS *(.text .text.*) *(.itim .itim.*) *(.gnu.linkonce.t.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -57,7 +58,7 @@ SECTIONS *(.rdata) *(.rodata .rodata.*) *(.gnu.linkonce.r.*) - } >ram AT>ram :ram + } >flash AT>flash :flash . = ALIGN(4); @@ -68,7 +69,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -77,7 +78,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -86,7 +87,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -109,7 +110,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -119,27 +120,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -151,14 +152,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -175,7 +176,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -217,6 +218,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-e34-rtl/metal.ramrodata.lds b/bsp/coreip-e34-rtl/metal.ramrodata.lds index 1373c32..1851d65 100644 --- a/bsp/coreip-e34-rtl/metal.ramrodata.lds +++ b/bsp/coreip-e34-rtl/metal.ramrodata.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x8000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash @@ -36,7 +37,7 @@ SECTIONS .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -54,7 +55,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -63,7 +64,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -72,7 +73,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -95,7 +96,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -105,27 +106,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -137,7 +138,7 @@ SECTIONS *(.text .text.*) *(.gnu.linkonce.t.*) *(.itim .itim.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .lalign : @@ -145,14 +146,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -172,7 +173,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -214,6 +215,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-e34-rtl/metal.scratchpad.lds b/bsp/coreip-e34-rtl/metal.scratchpad.lds index 26744c6..f07f9ed 100644 --- a/bsp/coreip-e34-rtl/metal.scratchpad.lds +++ b/bsp/coreip-e34-rtl/metal.scratchpad.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x8000000 } PHDRS diff --git a/bsp/coreip-s51-rtl/metal.default.lds b/bsp/coreip-s51-rtl/metal.default.lds index bc7b16a..efa595f 100644 --- a/bsp/coreip-s51-rtl/metal.default.lds +++ b/bsp/coreip-s51-rtl/metal.default.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x4000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash .text : @@ -38,13 +39,13 @@ SECTIONS *(.text .text.*) *(.itim .itim.*) *(.gnu.linkonce.t.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -57,7 +58,7 @@ SECTIONS *(.rdata) *(.rodata .rodata.*) *(.gnu.linkonce.r.*) - } >ram AT>ram :ram + } >flash AT>flash :flash . = ALIGN(4); @@ -68,7 +69,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -77,7 +78,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -86,7 +87,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -109,7 +110,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -119,27 +120,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -151,14 +152,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -175,7 +176,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -217,6 +218,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-s51-rtl/metal.ramrodata.lds b/bsp/coreip-s51-rtl/metal.ramrodata.lds index 5afbc7b..de23402 100644 --- a/bsp/coreip-s51-rtl/metal.ramrodata.lds +++ b/bsp/coreip-s51-rtl/metal.ramrodata.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x4000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash @@ -36,7 +37,7 @@ SECTIONS .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -54,7 +55,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -63,7 +64,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -72,7 +73,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -95,7 +96,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -105,27 +106,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -137,7 +138,7 @@ SECTIONS *(.text .text.*) *(.gnu.linkonce.t.*) *(.itim .itim.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .lalign : @@ -145,14 +146,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -172,7 +173,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -214,6 +215,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-s51-rtl/metal.scratchpad.lds b/bsp/coreip-s51-rtl/metal.scratchpad.lds index bc7b16a..8ead4a8 100644 --- a/bsp/coreip-s51-rtl/metal.scratchpad.lds +++ b/bsp/coreip-s51-rtl/metal.scratchpad.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x4000000 } PHDRS diff --git a/bsp/coreip-s54-rtl/metal.default.lds b/bsp/coreip-s54-rtl/metal.default.lds index bc7b16a..efa595f 100644 --- a/bsp/coreip-s54-rtl/metal.default.lds +++ b/bsp/coreip-s54-rtl/metal.default.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x4000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash .text : @@ -38,13 +39,13 @@ SECTIONS *(.text .text.*) *(.itim .itim.*) *(.gnu.linkonce.t.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -57,7 +58,7 @@ SECTIONS *(.rdata) *(.rodata .rodata.*) *(.gnu.linkonce.r.*) - } >ram AT>ram :ram + } >flash AT>flash :flash . = ALIGN(4); @@ -68,7 +69,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -77,7 +78,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -86,7 +87,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -109,7 +110,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -119,27 +120,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -151,14 +152,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -175,7 +176,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -217,6 +218,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-s54-rtl/metal.ramrodata.lds b/bsp/coreip-s54-rtl/metal.ramrodata.lds index 5afbc7b..de23402 100644 --- a/bsp/coreip-s54-rtl/metal.ramrodata.lds +++ b/bsp/coreip-s54-rtl/metal.ramrodata.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x4000000 } PHDRS @@ -13,8 +14,8 @@ PHDRS flash PT_LOAD; ram_init PT_LOAD; itim_init PT_LOAD; - ram PT_LOAD; - itim PT_LOAD; + ram PT_NULL; + itim PT_NULL; } SECTIONS @@ -28,7 +29,7 @@ SECTIONS KEEP (*(.text.metal.init.enter)) KEEP (*(SORT_NONE(.init))) KEEP (*(.text.libgloss.start)) - } >ram AT>ram :ram + } >flash AT>flash :flash @@ -36,7 +37,7 @@ SECTIONS .fini : { KEEP (*(SORT_NONE(.fini))) - } >ram AT>ram :ram + } >flash AT>flash :flash PROVIDE (__etext = .); @@ -54,7 +55,7 @@ SECTIONS PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .init_array : @@ -63,7 +64,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .finit_array : @@ -72,7 +73,7 @@ SECTIONS KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__finit_array_end = .); - } >ram AT>ram :ram + } >flash AT>flash :flash .ctors : @@ -95,7 +96,7 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .dtors : @@ -105,27 +106,27 @@ SECTIONS KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - } >ram AT>ram :ram + } >flash AT>flash :flash .litimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .ditimalign : { . = ALIGN(4); PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init .itim : { *(.itim .itim.*) - } >itim AT>ram :itim_init + } >itim AT>flash :itim_init . = ALIGN(8); @@ -137,7 +138,7 @@ SECTIONS *(.text .text.*) *(.gnu.linkonce.t.*) *(.itim .itim.*) - } >ram AT>ram :ram + } >flash AT>flash :flash .lalign : @@ -145,14 +146,14 @@ SECTIONS . = ALIGN(4); PROVIDE( _data_lma = . ); PROVIDE( metal_segment_data_source_start = . ); - } >ram AT>ram :ram + } >flash AT>flash :flash .dalign : { . = ALIGN(4); PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init .data : @@ -172,7 +173,7 @@ SECTIONS *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) - } >ram AT>ram :ram_init + } >ram AT>flash :ram_init . = ALIGN(4); @@ -214,6 +215,7 @@ SECTIONS { PROVIDE( metal_segment_heap_target_start = . ); . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); PROVIDE( metal_segment_heap_target_end = . ); PROVIDE( _heap_end = . ); } >ram AT>ram :ram diff --git a/bsp/coreip-s54-rtl/metal.scratchpad.lds b/bsp/coreip-s54-rtl/metal.scratchpad.lds index bc7b16a..8ead4a8 100644 --- a/bsp/coreip-s54-rtl/metal.scratchpad.lds +++ b/bsp/coreip-s54-rtl/metal.scratchpad.lds @@ -4,8 +4,9 @@ ENTRY(_enter) MEMORY { + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 + flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x4000000 } PHDRS -- cgit v1.2.3 From ac5e78c355567d2ed430e22b4c1d119188904d83 Mon Sep 17 00:00:00 2001 From: Bunnaroath Sou Date: Tue, 19 Mar 2019 18:13:02 -0700 Subject: Remove accidental added files --- bsp/coreip-e31-arty/metal.dhrystone.lds | 221 ------------------------------- bsp/coreip-e31-arty/metal.flash.lds | 226 -------------------------------- 2 files changed, 447 deletions(-) delete mode 100644 bsp/coreip-e31-arty/metal.dhrystone.lds delete mode 100644 bsp/coreip-e31-arty/metal.flash.lds diff --git a/bsp/coreip-e31-arty/metal.dhrystone.lds b/bsp/coreip-e31-arty/metal.dhrystone.lds deleted file mode 100644 index edf8749..0000000 --- a/bsp/coreip-e31-arty/metal.dhrystone.lds +++ /dev/null @@ -1,221 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ - ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 - itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ - flash PT_LOAD; - ram_init PT_LOAD; - itim_init PT_LOAD; - ram PT_NULL; - itim PT_NULL; -} - -SECTIONS -{ - __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; - __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - - .init : - { - KEEP (*(.text.metal.init.enter)) - KEEP (*(SORT_NONE(.init))) - } >flash AT>flash :flash - - - .text : - { - *(.text.unlikely .text.unlikely.*) - *(.text.startup .text.startup.*) - *(.text .text.*) - *(.gnu.linkonce.t.*) - } >flash AT>flash :flash - - - .fini : - { - KEEP (*(SORT_NONE(.fini))) - } >flash AT>flash :flash - - - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - - - . = ALIGN(4); - - - .preinit_array : - { - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - } >flash AT>flash :flash - - - .init_array : - { - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) - KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) - PROVIDE_HIDDEN (__init_array_end = .); - } >flash AT>flash :flash - - - .finit_array : - { - PROVIDE_HIDDEN (__finit_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) - KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) - PROVIDE_HIDDEN (__finit_array_end = .); - } >flash AT>flash :flash - - - .ctors : - { - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >flash AT>flash :flash - - - .dtors : - { - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >flash AT>flash :flash - - - .litimalign : - { - . = ALIGN(4); - PROVIDE( metal_segment_itim_source_start = . ); - } >flash AT>flash :flash - - - .ditimalign : - { - . = ALIGN(4); - PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>flash :itim_init - - - .itim : - { - *(.itim .itim.*) - } >itim AT>flash :itim_init - - - . = ALIGN(8); - PROVIDE( metal_segment_itim_target_end = . ); - - - .lalign : - { - . = ALIGN(4); - PROVIDE( _data_lma = . ); - PROVIDE( metal_segment_data_source_start = . ); - } >flash AT>flash :flash - - - .dalign : - { - . = ALIGN(4); - PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>flash :ram_init - - - .data : - { - *(.rdata) - *(.rodata .rodata.*) - *(.gnu.linkonce.r.*) - *(.data .data.*) - *(.gnu.linkonce.d.*) - . = ALIGN(8); - PROVIDE( __global_pointer$ = . + 0x800 ); - *(.sdata .sdata.*) - *(.gnu.linkonce.s.*) - . = ALIGN(8); - *(.srodata.cst16) - *(.srodata.cst8) - *(.srodata.cst4) - *(.srodata.cst2) - *(.srodata .srodata.*) - } >ram AT>flash :ram_init - - - . = ALIGN(4); - PROVIDE( _edata = . ); - PROVIDE( edata = . ); - PROVIDE( metal_segment_data_target_end = . ); - PROVIDE( _fbss = . ); - PROVIDE( __bss_start = . ); - PROVIDE( metal_segment_bss_target_start = . ); - - - .bss : - { - *(.sbss*) - *(.gnu.linkonce.sb.*) - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >ram AT>ram :ram - - - . = ALIGN(8); - PROVIDE( _end = . ); - PROVIDE( end = . ); - PROVIDE( metal_segment_bss_target_end = . ); - - - .stack : - { - PROVIDE(metal_segment_stack_begin = .); - . = __stack_size; - PROVIDE( _sp = . ); - PROVIDE(metal_segment_stack_end = .); - } >ram AT>ram :ram - - - .heap : - { - PROVIDE( metal_segment_heap_target_start = . ); - . = __heap_size; - . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); - PROVIDE( metal_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); - } >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e31-arty/metal.flash.lds b/bsp/coreip-e31-arty/metal.flash.lds deleted file mode 100644 index ae57468..0000000 --- a/bsp/coreip-e31-arty/metal.flash.lds +++ /dev/null @@ -1,226 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ - ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 - itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 - flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ - flash PT_LOAD; - ram_init PT_LOAD; - itim_init PT_LOAD; - ram PT_NULL; - itim PT_NULL; -} - -SECTIONS -{ - __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; - __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - - .init : - { - KEEP (*(.text.metal.init.enter)) - KEEP (*(SORT_NONE(.init))) - } >flash AT>flash :flash - - - .text : - { - *(.text.unlikely .text.unlikely.*) - *(.text.startup .text.startup.*) - *(.text .text.*) - *(.gnu.linkonce.t.*) - } >flash AT>flash :flash - - - .fini : - { - KEEP (*(SORT_NONE(.fini))) - } >flash AT>flash :flash - - - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - - - .rodata : - { - *(.rdata) - *(.rodata .rodata.*) - *(.gnu.linkonce.r.*) - } >flash AT>flash :flash - - - . = ALIGN(4); - - - .preinit_array : - { - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - } >flash AT>flash :flash - - - .init_array : - { - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) - KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) - PROVIDE_HIDDEN (__init_array_end = .); - } >flash AT>flash :flash - - - .finit_array : - { - PROVIDE_HIDDEN (__finit_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) - KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) - PROVIDE_HIDDEN (__finit_array_end = .); - } >flash AT>flash :flash - - - .ctors : - { - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >flash AT>flash :flash - - - .dtors : - { - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >flash AT>flash :flash - - - .litimalign : - { - . = ALIGN(4); - PROVIDE( metal_segment_itim_source_start = . ); - } >flash AT>flash :flash - - - .ditimalign : - { - . = ALIGN(4); - PROVIDE( metal_segment_itim_target_start = . ); - } >itim AT>flash :itim_init - - - .itim : - { - *(.itim .itim.*) - } >itim AT>flash :itim_init - - - . = ALIGN(8); - PROVIDE( metal_segment_itim_target_end = . ); - - - .lalign : - { - . = ALIGN(4); - PROVIDE( _data_lma = . ); - PROVIDE( metal_segment_data_source_start = . ); - } >flash AT>flash :flash - - - .dalign : - { - . = ALIGN(4); - PROVIDE( metal_segment_data_target_start = . ); - } >ram AT>flash :ram_init - - - .data : - { - *(.data .data.*) - *(.gnu.linkonce.d.*) - . = ALIGN(8); - PROVIDE( __global_pointer$ = . + 0x800 ); - *(.sdata .sdata.*) - *(.gnu.linkonce.s.*) - . = ALIGN(8); - *(.srodata.cst16) - *(.srodata.cst8) - *(.srodata.cst4) - *(.srodata.cst2) - *(.srodata .srodata.*) - } >ram AT>flash :ram_init - - - . = ALIGN(4); - PROVIDE( _edata = . ); - PROVIDE( edata = . ); - PROVIDE( metal_segment_data_target_end = . ); - PROVIDE( _fbss = . ); - PROVIDE( __bss_start = . ); - PROVIDE( metal_segment_bss_target_start = . ); - - - .bss : - { - *(.sbss*) - *(.gnu.linkonce.sb.*) - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >ram AT>ram :ram - - - . = ALIGN(8); - PROVIDE( _end = . ); - PROVIDE( end = . ); - PROVIDE( metal_segment_bss_target_end = . ); - - - .stack : - { - PROVIDE(metal_segment_stack_begin = .); - . = __stack_size; - PROVIDE( _sp = . ); - PROVIDE(metal_segment_stack_end = .); - } >ram AT>ram :ram - - - .heap : - { - PROVIDE( metal_segment_heap_target_start = . ); - . = __heap_size; - . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); - PROVIDE( metal_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); - } >ram AT>ram :ram - - -} - -- cgit v1.2.3