mirror of
https://github.com/saymrwulf/xous-core.git
synced 2026-11-04 04:27:34 +00:00
107 lines
2.9 KiB
Text
107 lines
2.9 KiB
Text
MEMORY
|
|
{
|
|
RAM : ORIGIN = 0xffd80000, LENGTH = 512K
|
|
FLASH : ORIGIN = 0xffd00000, LENGTH = 512K
|
|
}
|
|
|
|
REGION_ALIAS("REGION_TEXT", FLASH);
|
|
REGION_ALIAS("REGION_RODATA", FLASH);
|
|
REGION_ALIAS("REGION_DATA", RAM);
|
|
REGION_ALIAS("REGION_BSS", RAM);
|
|
|
|
ENTRY(_start)
|
|
|
|
SECTIONS
|
|
{
|
|
.text :
|
|
{
|
|
/* Put reset handler first in .text section so it ends up as the entry */
|
|
/* point of the program. */
|
|
KEEP(*(.text.init));
|
|
KEEP(*(.init));
|
|
KEEP(*(.init.rust));
|
|
. = ALIGN(4);
|
|
KEEP(*(.trap));
|
|
KEEP(*(.trap.rust));
|
|
|
|
*(.text .text.*);
|
|
|
|
KEEP(*(.endcap));
|
|
} > REGION_TEXT
|
|
|
|
.rodata : ALIGN(4)
|
|
{
|
|
*(.rodata .rodata.*);
|
|
|
|
/* 4-byte align the end (VMA) of this section.
|
|
This is required by LLD to ensure the LMA of the following .data
|
|
section will have the correct alignment. */
|
|
. = ALIGN(4);
|
|
_etext = .;
|
|
} > REGION_RODATA
|
|
|
|
.data : ALIGN(4096)
|
|
{
|
|
_sidata = LOADADDR(.data);
|
|
_sdata = .;
|
|
*(.sdata .sdata.* .sdata2 .sdata2.*);
|
|
*(.data .data.*);
|
|
. = ALIGN(4);
|
|
_edata = .;
|
|
} > REGION_DATA AT > REGION_RODATA
|
|
|
|
.bss (NOLOAD) :
|
|
{
|
|
_sbss = .;
|
|
*(.sbss .sbss.* .bss .bss.*);
|
|
. = ALIGN(4);
|
|
_ebss = .;
|
|
} > REGION_BSS
|
|
|
|
/* fake output .got section */
|
|
/* Dynamic relocations are unsupported. This section is only used to detect
|
|
relocatable code in the input files and raise an error if relocatable code
|
|
is found */
|
|
.got (INFO) :
|
|
{
|
|
KEEP(*(.got .got.*));
|
|
}
|
|
|
|
/* Discard .eh_frame, we are not doing unwind on panic so it is not needed */
|
|
/DISCARD/ :
|
|
{
|
|
*(.eh_frame);
|
|
*(.eh_frame_hdr);
|
|
}
|
|
}
|
|
|
|
/* Do not exceed this mark in the error messages above | */
|
|
ASSERT(ORIGIN(REGION_TEXT) % 4 == 0, "
|
|
ERROR(riscv-rt): the start of the REGION_TEXT must be 4-byte aligned");
|
|
|
|
ASSERT(ORIGIN(REGION_RODATA) % 4 == 0, "
|
|
ERROR(riscv-rt): the start of the REGION_RODATA must be 4-byte aligned");
|
|
|
|
ASSERT(ORIGIN(REGION_DATA) % 4 == 0, "
|
|
ERROR(riscv-rt): the start of the REGION_DATA must be 4-byte aligned");
|
|
|
|
ASSERT(ORIGIN(REGION_TEXT) % 4 == 0, "
|
|
ERROR(riscv-rt): the start of the REGION_TEXT must be 4-byte aligned");
|
|
|
|
ASSERT(_sdata % 4 == 0 && _edata % 4 == 0, "
|
|
BUG(riscv-rt): .data is not 4-byte aligned");
|
|
|
|
ASSERT(_sidata % 4 == 0, "
|
|
BUG(riscv-rt): the LMA of .data is not 4-byte aligned");
|
|
|
|
ASSERT(_sbss % 4 == 0 && _ebss % 4 == 0, "
|
|
BUG(riscv-rt): .bss is not 4-byte aligned");
|
|
|
|
ASSERT(SIZEOF(.got) == 0, "
|
|
.got section detected in the input files. Dynamic relocations are not
|
|
supported. If you are linking to C code compiled using the `gcc` crate
|
|
then modify your build script to compile the C code _without_ the
|
|
-fPIC flag. See the documentation of the `gcc::Config.fpic` method for
|
|
details.");
|
|
|
|
/* Do not exceed this mark in the error messages above | */
|