From 15bb22f7ed93038a2e7256726b27bf0e45cb4dfe Mon Sep 17 00:00:00 2001 From: Nathaniel Graff Date: Thu, 17 Jan 2019 14:05:49 -0800 Subject: Regen BSPs for separate stacks and heaps Signed-off-by: Nathaniel Graff --- bsp/coreip-e31-arty/mee.lds | 19 ++++++++++++++----- bsp/coreip-e31/mee.lds | 16 ++++++++++++---- bsp/coreip-s51-arty/mee.lds | 19 ++++++++++++++----- bsp/coreip-s51/mee.lds | 16 ++++++++++++---- bsp/freedom-e310-arty/mee.lds | 19 ++++++++++++++----- bsp/sifive-hifive1/mee.lds | 19 ++++++++++++++----- 6 files changed, 80 insertions(+), 28 deletions(-) diff --git a/bsp/coreip-e31-arty/mee.lds b/bsp/coreip-e31-arty/mee.lds index c081d9f..7b28478 100644 --- a/bsp/coreip-e31-arty/mee.lds +++ b/bsp/coreip-e31-arty/mee.lds @@ -20,7 +20,8 @@ PHDRS SECTIONS { - __stack_size = DEFINED(__stack_size) ? __stack_size : 0x800; + __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; + __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; .init : @@ -200,18 +201,26 @@ SECTIONS PROVIDE( _end = . ); PROVIDE( end = . ); PROVIDE( mee_segment_bss_target_end = . ); - PROVIDE( mee_segment_heap_target_start = . ); - .stack ORIGIN(ram) + LENGTH(ram) - __stack_size : + .stack : { - PROVIDE( mee_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); + PROVIDE(mee_segment_stack_begin = .); . = __stack_size; PROVIDE( _sp = . ); PROVIDE(mee_segment_stack_end = .); } >ram AT>ram :ram + .heap : + { + PROVIDE( mee_segment_heap_target_start = . ); + . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); + PROVIDE( mee_segment_heap_target_end = . ); + PROVIDE( _heap_end = . ); + } >ram AT>ram :ram + + } diff --git a/bsp/coreip-e31/mee.lds b/bsp/coreip-e31/mee.lds index 538291d..08c0ccf 100644 --- a/bsp/coreip-e31/mee.lds +++ b/bsp/coreip-e31/mee.lds @@ -20,6 +20,7 @@ PHDRS SECTIONS { __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; + __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; .init : @@ -199,18 +200,25 @@ SECTIONS PROVIDE( _end = . ); PROVIDE( end = . ); PROVIDE( mee_segment_bss_target_end = . ); - PROVIDE( mee_segment_heap_target_start = . ); .stack : { - . = ALIGN(8); - . += __stack_size; + PROVIDE(mee_segment_stack_begin = .); + . = __stack_size; PROVIDE( _sp = . ); - PROVIDE( _heap_end = . ); PROVIDE(mee_segment_stack_end = .); } >ram AT>ram :ram + .heap : + { + PROVIDE( mee_segment_heap_target_start = . ); + . = __heap_size; + PROVIDE( mee_segment_heap_target_end = . ); + PROVIDE( _heap_end = . ); + } >ram AT>ram :ram + + } diff --git a/bsp/coreip-s51-arty/mee.lds b/bsp/coreip-s51-arty/mee.lds index c081d9f..7b28478 100644 --- a/bsp/coreip-s51-arty/mee.lds +++ b/bsp/coreip-s51-arty/mee.lds @@ -20,7 +20,8 @@ PHDRS SECTIONS { - __stack_size = DEFINED(__stack_size) ? __stack_size : 0x800; + __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; + __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; .init : @@ -200,18 +201,26 @@ SECTIONS PROVIDE( _end = . ); PROVIDE( end = . ); PROVIDE( mee_segment_bss_target_end = . ); - PROVIDE( mee_segment_heap_target_start = . ); - .stack ORIGIN(ram) + LENGTH(ram) - __stack_size : + .stack : { - PROVIDE( mee_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); + PROVIDE(mee_segment_stack_begin = .); . = __stack_size; PROVIDE( _sp = . ); PROVIDE(mee_segment_stack_end = .); } >ram AT>ram :ram + .heap : + { + PROVIDE( mee_segment_heap_target_start = . ); + . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); + PROVIDE( mee_segment_heap_target_end = . ); + PROVIDE( _heap_end = . ); + } >ram AT>ram :ram + + } diff --git a/bsp/coreip-s51/mee.lds b/bsp/coreip-s51/mee.lds index 3e454a7..2c2ba1c 100644 --- a/bsp/coreip-s51/mee.lds +++ b/bsp/coreip-s51/mee.lds @@ -20,6 +20,7 @@ PHDRS SECTIONS { __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; + __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; .init : @@ -199,18 +200,25 @@ SECTIONS PROVIDE( _end = . ); PROVIDE( end = . ); PROVIDE( mee_segment_bss_target_end = . ); - PROVIDE( mee_segment_heap_target_start = . ); .stack : { - . = ALIGN(8); - . += __stack_size; + PROVIDE(mee_segment_stack_begin = .); + . = __stack_size; PROVIDE( _sp = . ); - PROVIDE( _heap_end = . ); PROVIDE(mee_segment_stack_end = .); } >ram AT>ram :ram + .heap : + { + PROVIDE( mee_segment_heap_target_start = . ); + . = __heap_size; + PROVIDE( mee_segment_heap_target_end = . ); + PROVIDE( _heap_end = . ); + } >ram AT>ram :ram + + } diff --git a/bsp/freedom-e310-arty/mee.lds b/bsp/freedom-e310-arty/mee.lds index 8cd1a87..d5f73d5 100644 --- a/bsp/freedom-e310-arty/mee.lds +++ b/bsp/freedom-e310-arty/mee.lds @@ -20,7 +20,8 @@ PHDRS SECTIONS { - __stack_size = DEFINED(__stack_size) ? __stack_size : 0x800; + __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; + __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; .init : @@ -200,18 +201,26 @@ SECTIONS PROVIDE( _end = . ); PROVIDE( end = . ); PROVIDE( mee_segment_bss_target_end = . ); - PROVIDE( mee_segment_heap_target_start = . ); - .stack ORIGIN(ram) + LENGTH(ram) - __stack_size : + .stack : { - PROVIDE( mee_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); + PROVIDE(mee_segment_stack_begin = .); . = __stack_size; PROVIDE( _sp = . ); PROVIDE(mee_segment_stack_end = .); } >ram AT>ram :ram + .heap : + { + PROVIDE( mee_segment_heap_target_start = . ); + . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); + PROVIDE( mee_segment_heap_target_end = . ); + PROVIDE( _heap_end = . ); + } >ram AT>ram :ram + + } diff --git a/bsp/sifive-hifive1/mee.lds b/bsp/sifive-hifive1/mee.lds index 0e0a302..1c894ee 100644 --- a/bsp/sifive-hifive1/mee.lds +++ b/bsp/sifive-hifive1/mee.lds @@ -19,7 +19,8 @@ PHDRS SECTIONS { - __stack_size = DEFINED(__stack_size) ? __stack_size : 0x800; + __stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; + __heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; .init : @@ -199,18 +200,26 @@ SECTIONS PROVIDE( _end = . ); PROVIDE( end = . ); PROVIDE( mee_segment_bss_target_end = . ); - PROVIDE( mee_segment_heap_target_start = . ); - .stack ORIGIN(ram) + LENGTH(ram) - __stack_size : + .stack : { - PROVIDE( mee_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); + PROVIDE(mee_segment_stack_begin = .); . = __stack_size; PROVIDE( _sp = . ); PROVIDE(mee_segment_stack_end = .); } >ram AT>ram :ram + .heap : + { + PROVIDE( mee_segment_heap_target_start = . ); + . = __heap_size; + . = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); + PROVIDE( mee_segment_heap_target_end = . ); + PROVIDE( _heap_end = . ); + } >ram AT>ram :ram + + } -- cgit v1.2.3