| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- OUTPUT_FORMAT("elf32-littleriscv")
- ENTRY(_start)
- __DYNAMIC = 0;
- MEMORY {
- csr : ORIGIN = 0x60000000, LENGTH = 0x01000000
- vexriscv_debug : ORIGIN = 0xf00f0000, LENGTH = 0x00000100
- ram : ORIGIN = 0x10000000, LENGTH = 0x00020000
- rom : ORIGIN = 0x20040000, LENGTH = 0x00200000 - 0x40000
- }
- /* The stack size used by the application. NOTE: you need to adjust according to your application. */
- STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
- /* Section Definitions */
- SECTIONS
- {
- .text :
- {
- . = ALIGN(4);
- _ftext = .;
- *(.text.start)
- *(.text .text.* .gnu.linkonce.t.*)
- *(.glue_7t) *(.glue_7)
- *(.rodata .rodata* .gnu.linkonce.r.*)
- /* Support C constructors, and C destructors in both user code
- and the C library. This also provides support for C++ code. */
- . = ALIGN(4);
- KEEP(*(.init))
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- . = ALIGN(4);
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*crtend.o(.ctors))
- . = ALIGN(4);
- KEEP(*(.fini))
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*crtend.o(.dtors))
- } > rom
- . = ALIGN(4);
- _etext = .; /* End of text section */
- .relocate : AT (_etext)
- {
- . = ALIGN(4);
- _srelocate = .;
- *(.ramfunc .ramfunc.*);
- *(.data .data.*);
- . = ALIGN(4);
- _erelocate = .;
- } > ram
- /* .bss section which is used for uninitialized data */
- .bss (NOLOAD) :
- {
- . = ALIGN(4);
- _sbss = . ;
- _szero = .;
- *(.bss .bss.*)
- *(.sbss .sbss.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = . ;
- _ezero = .;
- end = .;
- } > ram
- /* stack section */
- .stack (NOLOAD):
- {
- . = ALIGN(8);
- _sstack = .;
- . = . + STACK_SIZE;
- . = ALIGN(8);
- _estack = .;
- } > ram
- . = ALIGN(4);
- _end = . ;
- }
|