mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-06 12:03:41 +00:00
5b0aaf0d39
Especially arm.ld needed some cleaning up. Other than that, I've made sure the two linker scripts look similar where possible.
68 lines
1.5 KiB
Plaintext
68 lines
1.5 KiB
Plaintext
|
|
MEMORY
|
|
{
|
|
FLASH_TEXT (rw) : ORIGIN = 0x00000000, LENGTH = 256K /* .text */
|
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
|
}
|
|
|
|
_stack_size = 2K;
|
|
|
|
/* define output sections */
|
|
SECTIONS
|
|
{
|
|
/* Program code and read-only data goes to FLASH_TEXT. */
|
|
.text :
|
|
{
|
|
KEEP(*(.isr_vector))
|
|
*(.text)
|
|
*(.text*)
|
|
*(.rodata)
|
|
*(.rodata*)
|
|
} >FLASH_TEXT
|
|
|
|
/* Put the stack at the bottom of RAM, so that the application will
|
|
* crash on stack overflow instead of silently corrupting memory.
|
|
* See: http://blog.japaric.io/stack-overflow-protection/ */
|
|
.stack :
|
|
{
|
|
. = ALIGN(4);
|
|
. += _stack_size;
|
|
_stack_top = .;
|
|
} >RAM
|
|
|
|
/* Start address (in flash) of .data, used by startup code. */
|
|
_sidata = LOADADDR(.data);
|
|
|
|
/* Globals with initial value */
|
|
.data :
|
|
{
|
|
. = ALIGN(4);
|
|
_sdata = .; /* used by startup code */
|
|
*(.data)
|
|
*(.data*)
|
|
. = ALIGN(4);
|
|
_edata = .; /* used by startup code */
|
|
} >RAM AT>FLASH_TEXT
|
|
|
|
/* Zero-initialized globals */
|
|
.bss :
|
|
{
|
|
. = ALIGN(4);
|
|
_sbss = .; /* used by startup code */
|
|
*(.bss)
|
|
*(.bss*)
|
|
*(COMMON)
|
|
. = ALIGN(4);
|
|
_ebss = .; /* used by startup code */
|
|
} >RAM
|
|
|
|
/DISCARD/ :
|
|
{
|
|
*(.ARM.exidx.*) /* causes spurious 'undefined reference' errors */
|
|
}
|
|
}
|
|
|
|
/* For the memory allocator. */
|
|
_heap_start = _ebss;
|
|
_heap_end = ORIGIN(RAM) + LENGTH(RAM);
|