2018-10-05 22:07:53 +00:00
|
|
|
SEARCH_DIR(.)
|
|
|
|
__DYNAMIC = 0;
|
|
|
|
|
|
|
|
MEMORY
|
|
|
|
{
|
2019-10-12 19:59:04 +00:00
|
|
|
dataram : ORIGIN = 0x00010000, LENGTH = 0xa000
|
2018-10-05 22:07:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Stack information variables */
|
|
|
|
_min_stack = 0x400; /* 1K - minimum stack space to reserve */
|
|
|
|
_stack_start = ORIGIN(dataram) + LENGTH(dataram);
|
|
|
|
|
|
|
|
/* We have to align each sector to word boundaries as our current s19->slm
|
|
|
|
* conversion scripts are not able to handle non-word aligned sections. */
|
|
|
|
|
|
|
|
SECTIONS
|
|
|
|
{
|
|
|
|
.vectors :
|
|
|
|
{
|
|
|
|
. = ALIGN(4);
|
|
|
|
KEEP(*(.vectors))
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.text : {
|
|
|
|
. = ALIGN(4);
|
|
|
|
_stext = .;
|
|
|
|
*(.text)
|
|
|
|
*(.text.*)
|
|
|
|
_etext = .;
|
|
|
|
__CTOR_LIST__ = .;
|
|
|
|
LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
|
|
|
|
*(.ctors)
|
|
|
|
LONG(0)
|
|
|
|
__CTOR_END__ = .;
|
|
|
|
__DTOR_LIST__ = .;
|
|
|
|
LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
|
|
|
|
*(.dtors)
|
|
|
|
LONG(0)
|
|
|
|
__DTOR_END__ = .;
|
|
|
|
*(.lit)
|
|
|
|
*(.shdata)
|
|
|
|
_endtext = .;
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------*/
|
|
|
|
/* Global constructor/destructor segement */
|
|
|
|
/*--------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
.preinit_array :
|
|
|
|
{
|
|
|
|
PROVIDE_HIDDEN (__preinit_array_start = .);
|
|
|
|
KEEP (*(.preinit_array))
|
|
|
|
PROVIDE_HIDDEN (__preinit_array_end = .);
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.init_array :
|
|
|
|
{
|
|
|
|
PROVIDE_HIDDEN (__init_array_start = .);
|
|
|
|
KEEP (*(SORT(.init_array.*)))
|
|
|
|
KEEP (*(.init_array ))
|
|
|
|
PROVIDE_HIDDEN (__init_array_end = .);
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.fini_array :
|
|
|
|
{
|
|
|
|
PROVIDE_HIDDEN (__fini_array_start = .);
|
|
|
|
KEEP (*(SORT(.fini_array.*)))
|
|
|
|
KEEP (*(.fini_array ))
|
|
|
|
PROVIDE_HIDDEN (__fini_array_end = .);
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.rodata : {
|
|
|
|
. = ALIGN(4);
|
|
|
|
*(.rodata);
|
|
|
|
*(.rodata.*)
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.shbss :
|
|
|
|
{
|
|
|
|
. = ALIGN(4);
|
|
|
|
*(.shbss)
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.data : {
|
|
|
|
. = ALIGN(4);
|
|
|
|
sdata = .;
|
|
|
|
_sdata = .;
|
|
|
|
*(.data);
|
|
|
|
*(.data.*)
|
|
|
|
*(.sdata);
|
|
|
|
*(.sdata.*)
|
|
|
|
*(.sdata2);
|
|
|
|
*(.sdata2.*)
|
|
|
|
edata = .;
|
|
|
|
_edata = .;
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.bss :
|
|
|
|
{
|
|
|
|
. = ALIGN(4);
|
|
|
|
_bss_start = .;
|
|
|
|
*(.bss)
|
|
|
|
*(.bss.*)
|
|
|
|
*(.sbss)
|
|
|
|
*(.sbss.*)
|
|
|
|
*(COMMON)
|
|
|
|
_bss_end = .;
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
/* ensure there is enough room for stack */
|
|
|
|
.stack (NOLOAD): {
|
|
|
|
. = ALIGN(4);
|
|
|
|
. = . + _min_stack ;
|
|
|
|
. = ALIGN(4);
|
|
|
|
stack = . ;
|
|
|
|
_stack = . ;
|
|
|
|
} > dataram
|
|
|
|
|
|
|
|
.stab 0 (NOLOAD) :
|
|
|
|
{
|
|
|
|
[ .stab ]
|
|
|
|
}
|
|
|
|
|
|
|
|
.stabstr 0 (NOLOAD) :
|
|
|
|
{
|
|
|
|
[ .stabstr ]
|
|
|
|
}
|
|
|
|
|
|
|
|
.bss :
|
|
|
|
{
|
|
|
|
. = ALIGN(4);
|
|
|
|
_end = .;
|
|
|
|
} > dataram
|
|
|
|
}
|
|
|
|
|