49 lines
1.0 KiB
Plaintext
49 lines
1.0 KiB
Plaintext
OUTPUT_FORMAT("elf32-littleriscv")
|
|
OUTPUT_ARCH(riscv)
|
|
ENTRY(_start)
|
|
|
|
SECTIONS
|
|
{
|
|
/* Hazard3 testbench RAM window */
|
|
. = 0x80000000;
|
|
PROVIDE(__stack_top = 0x80100000);
|
|
|
|
/* Reset/trap vectors are in Hazard3 init.S (.vectors). Keep them first so
|
|
.reset_handler lands at 0x80000040 (Hazard3 RESET_VECTOR). */
|
|
.text : ALIGN(4)
|
|
{
|
|
KEEP(*(.vectors))
|
|
*(.text .text.*)
|
|
}
|
|
|
|
/* Keep constants non-executable. Merging arbitrary-length strings into
|
|
.text makes some RISC-V objdump versions try to decode the final partial
|
|
instruction and abort instead of producing the teaching listing. */
|
|
.rodata : ALIGN(4)
|
|
{
|
|
*(.rodata .rodata.*)
|
|
}
|
|
|
|
.data : ALIGN(4)
|
|
{
|
|
__data_start = .;
|
|
*(.data .data.*)
|
|
*(.sdata .sdata.*)
|
|
__data_end = .;
|
|
}
|
|
|
|
.bss : ALIGN(4)
|
|
{
|
|
__bss_start = .;
|
|
*(.bss .bss.* COMMON)
|
|
*(.sbss .sbss.*)
|
|
__bss_end = .;
|
|
}
|
|
|
|
/* Conservative default (good enough for this ASM-only demo). */
|
|
__global_pointer$ = __data_start + 0x800;
|
|
|
|
_end = .;
|
|
PROVIDE(end = .);
|
|
}
|