Line 44... |
Line 44... |
OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv")
|
OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv")
|
OUTPUT_ARCH(riscv)
|
OUTPUT_ARCH(riscv)
|
ENTRY(_start)
|
ENTRY(_start)
|
SEARCH_DIR("=/opt/riscv/riscv64-unknown-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
|
SEARCH_DIR("=/opt/riscv/riscv64-unknown-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
|
|
|
/* ************************************************* */
|
/* ************************************************************************* */
|
/* NEORV32 memory configuration. */
|
/* NEORV32 memory configuration. */
|
/* Make sure this is sync with your processor/ */
|
/* Make sure this is sync with your processor/memory hardware configuration. */
|
/* memory hardware configuration. */
|
/* ************************************************************************* */
|
/* ************************************************* */
|
|
MEMORY
|
MEMORY
|
{
|
{
|
/* rom section: first value of ORIGIN/LENGHT: bootloader ROM; second value of ORIGIN/LENGHT: IMEM */
|
/* "rom" section: first value of ORIGIN/LENGHT => bootloader ROM; second value of ORIGIN/LENGHT => instruction memory */
|
|
|
rom (rx) : ORIGIN = DEFINED(make_bootloader) ? 0xFFFF0000 : 0x00000000, LENGTH = DEFINED(make_bootloader) ? 4*1024 : 16*1024
|
rom (rx) : ORIGIN = DEFINED(make_bootloader) ? 0xFFFF0000 : 0x00000000, LENGTH = DEFINED(make_bootloader) ? 4*1024 : 16*1024
|
ram (rwx) : ORIGIN = 0x80000000, LENGTH = 8*1024
|
ram (rwx) : ORIGIN = 0x80000000, LENGTH = 8*1024
|
}
|
}
|
/* ************************************************* */
|
/* ************************************************************************* */
|
|
|
SECTIONS
|
SECTIONS
|
{
|
{
|
|
/* stack pointer init: last 32-bit entry in data memory */
|
|
__crt0_stack_begin = (ORIGIN(ram) + LENGTH(ram)) - 4;
|
|
|
/* start section on WORD boundary */
|
/* start section on WORD boundary */
|
. = ALIGN(4);
|
. = ALIGN(4);
|
|
|
.interp : { *(.interp) }
|
.interp : { *(.interp) }
|