mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
a106c5114b
During development, the ROM address was at offset 0x2001a000 (due to the fact that the test program was located immediately following the bitstream). In normal Fomus, the ROM address is at offset 0x20040000, in order to take into account additional bitstreams and bootloaders. Correct the address to the offset in order to get examples working with existing Fomus. Signed-off-by: Sean Cross <sean@xobs.io>
105 lines
2.5 KiB
Plaintext
105 lines
2.5 KiB
Plaintext
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 = . ;
|
|
}
|