sim-card
/
osmo-cos
Archived
10
0
Fork 0
This repository has been archived on 2023-11-07. You can view files and clone it, but cannot push or open issues or pull requests.
osmo-cos/src/cc32/CC32RS512.lds

127 lines
3.2 KiB
Plaintext

/* Memory Definitions */
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(exceptions)
MEMORY
{
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000
RAM (rw) : ORIGIN = 0x000C0000, LENGTH = 0x00004000
STACK (rw) : ORIGIN = 0x000C4000, LENGTH = 0x00000000
}
/* Section Definitions */
SECTIONS
{
.text.exceptions : {
PROVIDE(exceptions = .);
KEEP(*(.text.exceptions))
*(.text.exceptions)
} > FLASH
/* first section is .text which is used for code */
.text : {
* (.text)
* (.glue_7)
* (.glue_7t)
. = ALIGN(4);
} >FLASH
PROVIDE(_text_start = ADDR(.text));
PROVIDE(_text_end = ADDR(.text) + SIZEOF(.text));
.ctors : {
LONG(SIZEOF(.ctors) / 4 - 2)
KEEP(*(SORT(.ctors)))
LONG(0)
} >FLASH
PROVIDE(_ctor_start = LOADADDR(.ctors));
PROVIDE(_ctor_end = LOADADDR(.ctors) + SIZEOF(.ctors));
.dtors : {
LONG(SIZEOF(.dtors) / 4 - 2)
KEEP(*(SORT(.dtors)))
LONG(0)
} >FLASH
PROVIDE(_dtor_start = LOADADDR(.dtors));
PROVIDE(_dtor_end = LOADADDR(.dtors) + SIZEOF(.dtors));
.rodata : {
* (.rodata*)
} > FLASH
PROVIDE(_rodata_start = ADDR(.rodata));
PROVIDE(_rodata_end = ADDR(.rodata) + SIZEOF(.rodata));
.got : {
. = ALIGN(4);
*(.got)
*(.got.plt) *(.igot.plt) *(.got) *(.igot)
. = ALIGN(4);
} > FLASH
PROVIDE(_got_start = ADDR(.got));
PROVIDE(_got_end = ADDR(.got) + SIZEOF(.got));
.data : {
_data = . ;
* (.vectram)
* (.data)
. = ALIGN(4);
} > RAM
PROVIDE(__data_start = LOADADDR(.data));
PROVIDE(__data_end = LOADADDR(.data) + SIZEOF(.data));
PROVIDE(_data_start = ADDR(.data));
PROVIDE(_data_end = ADDR(.data) + SIZEOF(.data));
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) : {
. = ALIGN(4);
*(.bss)
. = ALIGN(4);
} > RAM
PROVIDE(__bss_start = ADDR(.bss));
PROVIDE(__bss_end = ADDR(.bss) + SIZEOF(.bss));
PROVIDE(_bss_start = __bss_start);
PROVIDE(_bss_end = __bss_end);
. = ALIGN(4);
_end = .;
PROVIDE(end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
}