1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
OUTPUT_FORMAT("elf32-tradlittlemips")
OUTPUT_ARCH(mips)
SECTIONS
{
.com.vect.r 0xa1000000:
{
KEEP(* (.reset_vector))
}
.fake.vect.r :
{
. += SIZEOF(.com.vect.r);
} > flash
__com_rom_start = ALIGN(LOADADDR(.fake.vect.r) + SIZEOF(.fake.vect.r),0x10);
.com.vect.e 0x80000000: AT( __com_rom_start )
{
__com_ram_start = .;
KEEP(* (.except_vector))
} > ram
.com.vect.i 0x80000180: AT( LOADADDR(.com.vect.e) + 0x180 )
{
KEEP(* (.other_vector))
KEEP(* (.vsr_table))
*(.text.ram)
__com_ram_end = .;
} > ram
__com_bss_start = ALIGN(32) | 0x20000000;
.com.bss __com_bss_start :
{
*(.bss.usb)
__com_bss_end = ALIGN(32);
}
.fake.bss :
{
. = ALIGN(32);
. += SIZEOF(.com.bss) ;
. = ALIGN(32);
} > ram
__com_rom_cont = ALIGN(LOADADDR(.com.vect.i) + SIZEOF(.com.vect.i),0x10);
.com.vect __com_rom_cont : AT( __com_rom_cont )
{
KEEP(* (.rom_vectors))
*(.text.rom)
. = ALIGN(0x10);
} > flash
.com.stack :
{
/* Allocate room for stack */
_sp_top = .;
. += 4K ;
_sp = .;
} > ram
} |
Partager