[STM32F03X][STM3207X] linker script reorganizatin

pull/743/head
Olaf Hagendorf 2014-11-26 13:48:58 +01:00
parent 087a8eab34
commit dda84e6c32
2 changed files with 20 additions and 24 deletions

View File

@ -40,7 +40,6 @@ SECTIONS
{ {
KEEP(*(.isr_vector)) KEEP(*(.isr_vector))
*(.text*) *(.text*)
KEEP(*(.init)) KEEP(*(.init))
KEEP(*(.fini)) KEEP(*(.fini))
@ -76,12 +75,12 @@ SECTIONS
__exidx_end = .; __exidx_end = .;
__etext = .; __etext = .;
_sidata = .; _sidata = .;
.data : AT (__etext) .data : AT (__etext)
{ {
__data_start__ = .; __data_start__ = .;
_sdata = .; _sdata = .;
*(vtable) *(vtable)
*(.data*) *(.data*)
@ -110,7 +109,7 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
/* All data end */ /* All data end */
__data_end__ = .; __data_end__ = .;
_edata = .; _edata = .;
} > RAM } > RAM
@ -118,12 +117,12 @@ SECTIONS
{ {
. = ALIGN(4); . = ALIGN(4);
__bss_start__ = .; __bss_start__ = .;
_sbss = .; _sbss = .;
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
__bss_end__ = .; __bss_end__ = .;
_ebss = .; _ebss = .;
} > RAM } > RAM
.heap (COPY): .heap (COPY):
@ -145,11 +144,10 @@ SECTIONS
/* Set stack top to end of RAM, and stack limit move down by /* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */ * size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM); __StackTop = ORIGIN(RAM) + LENGTH(RAM);
_estack = __StackTop; _estack = __StackTop;
__StackLimit = __StackTop - SIZEOF(.stack_dummy); __StackLimit = __StackTop - SIZEOF(.stack_dummy);
PROVIDE(__stack = __StackTop); PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */ /* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack") ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
} }

View File

@ -40,7 +40,6 @@ SECTIONS
{ {
KEEP(*(.isr_vector)) KEEP(*(.isr_vector))
*(.text*) *(.text*)
KEEP(*(.init)) KEEP(*(.init))
KEEP(*(.fini)) KEEP(*(.fini))
@ -76,12 +75,12 @@ SECTIONS
__exidx_end = .; __exidx_end = .;
__etext = .; __etext = .;
_sidata = .; _sidata = .;
.data : AT (__etext) .data : AT (__etext)
{ {
__data_start__ = .; __data_start__ = .;
_sdata = .; _sdata = .;
*(vtable) *(vtable)
*(.data*) *(.data*)
@ -110,7 +109,7 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
/* All data end */ /* All data end */
__data_end__ = .; __data_end__ = .;
_edata = .; _edata = .;
} > RAM } > RAM
@ -118,12 +117,12 @@ SECTIONS
{ {
. = ALIGN(4); . = ALIGN(4);
__bss_start__ = .; __bss_start__ = .;
_sbss = .; _sbss = .;
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
. = ALIGN(4); . = ALIGN(4);
__bss_end__ = .; __bss_end__ = .;
_ebss = .; _ebss = .;
} > RAM } > RAM
.heap (COPY): .heap (COPY):
@ -145,11 +144,10 @@ SECTIONS
/* Set stack top to end of RAM, and stack limit move down by /* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */ * size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM); __StackTop = ORIGIN(RAM) + LENGTH(RAM);
_estack = __StackTop; _estack = __StackTop;
__StackLimit = __StackTop - SIZEOF(.stack_dummy); __StackLimit = __StackTop - SIZEOF(.stack_dummy);
PROVIDE(__stack = __StackTop); PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */ /* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack") ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
} }