mirror of
https://github.com/devkitPro/buildscripts.git
synced 2026-03-24 19:14:24 -05:00
*** empty log message ***
This commit is contained in:
parent
047a080d28
commit
6a7c20fbba
|
|
@ -113,20 +113,6 @@ SECTIONS
|
|||
__exidx_start = .;
|
||||
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >rom
|
||||
__exidx_end = .;
|
||||
/* Ensure the __preinit_array_start label is properly aligned. We
|
||||
could instead move the label definition inside the section, but
|
||||
the linker would then create the section even if it turns out to
|
||||
be empty, which isn't pretty. */
|
||||
. = ALIGN(32 / 8);
|
||||
PROVIDE (__preinit_array_start = .);
|
||||
.preinit_array : { KEEP (*(.preinit_array)) } >rom = 0xff
|
||||
PROVIDE (__preinit_array_end = .);
|
||||
PROVIDE (__init_array_start = .);
|
||||
.init_array : { KEEP (*(.init_array)) } >rom = 0xff
|
||||
PROVIDE (__init_array_end = .);
|
||||
PROVIDE (__fini_array_start = .);
|
||||
.fini_array : { KEEP (*(.fini_array)) } >rom = 0xff
|
||||
PROVIDE (__fini_array_end = .);
|
||||
|
||||
.ctors :
|
||||
{
|
||||
|
|
@ -152,7 +138,6 @@ SECTIONS
|
|||
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
|
||||
} >rom = 0
|
||||
|
||||
.jcr : { KEEP (*(.jcr)) } >rom
|
||||
|
||||
.eh_frame :
|
||||
{
|
||||
|
|
@ -202,10 +187,31 @@ SECTIONS
|
|||
*(.gnu.linkonce.d*)
|
||||
CONSTRUCTORS
|
||||
. = ALIGN(4);
|
||||
__data_end = ABSOLUTE(.);
|
||||
} >iwram = 0xff
|
||||
|
||||
__iwram_overlay_lma = __data_lma + SIZEOF(.data);
|
||||
__preinit_lma = __data_lma + SIZEOF(.data);
|
||||
|
||||
PROVIDE (__preinit_array_start = .);
|
||||
.preinit_array : AT (__preinit_lma) { KEEP (*(.preinit_array)) } >iwram
|
||||
PROVIDE (__preinit_array_end = .);
|
||||
|
||||
__init_lma = __preinit_lma + SIZEOF(.preinit_array);
|
||||
|
||||
PROVIDE (__init_array_start = .);
|
||||
.init_array : AT (__init_lma) { KEEP (*(.init_array)) } >iwram
|
||||
PROVIDE (__init_array_end = .);
|
||||
PROVIDE (__fini_array_start = .);
|
||||
|
||||
__fini_lma = __init_lma + SIZEOF(.init_array);
|
||||
|
||||
.fini_array : AT (__fini_lma) { KEEP (*(.fini_array)) } >iwram
|
||||
PROVIDE (__fini_array_end = .);
|
||||
|
||||
__jcr_lma = __fini_lma + SIZEOF(.fini_array);
|
||||
.jcr : AT (__jcr_lma) { KEEP (*(.jcr)) } >iwram
|
||||
|
||||
__data_end = ABSOLUTE(.);
|
||||
__iwram_overlay_lma = __jcr_lma + SIZEOF(.jcr);
|
||||
|
||||
__iwram_overlay_start = . ;
|
||||
|
||||
|
|
@ -223,19 +229,19 @@ SECTIONS
|
|||
.iwram9 { *(.iwram9) . = ALIGN(4);}
|
||||
}>iwram = 0xff
|
||||
|
||||
__ewram_lma = LOADADDR(.iwram0) + SIZEOF(.iwram0)+SIZEOF(.iwram1)+SIZEOF(.iwram2)+SIZEOF(.iwram3)+SIZEOF(.iwram4)+SIZEOF(.iwram5)+SIZEOF(.iwram6)+SIZEOF(.iwram7)+SIZEOF(.iwram8)+SIZEOF(.iwram9);
|
||||
__ewram_lma = __load_stop_iwram9;
|
||||
|
||||
__iwram_overlay_end = . ;
|
||||
__iheap_start = . ;
|
||||
|
||||
__ewram_start = 0x2000000;
|
||||
__ewram_start = ORIGIN(ewram);
|
||||
.ewram __ewram_start : AT (__ewram_lma)
|
||||
{
|
||||
*(.ewram)
|
||||
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
|
||||
}>ewram = 0xff
|
||||
|
||||
__ewram_overlay_lma = __ewram_lma + SIZEOF(.ewram);
|
||||
__pad_lma = __ewram_lma + SIZEOF(.ewram);
|
||||
|
||||
.sbss ALIGN(4):
|
||||
{
|
||||
|
|
@ -247,24 +253,9 @@ SECTIONS
|
|||
|
||||
|
||||
__ewram_end = __sbss_end ;
|
||||
__ewram_overlay_start = . ;
|
||||
|
||||
OVERLAY ALIGN(4): NOCROSSREFS AT (__ewram_overlay_lma)
|
||||
{
|
||||
.ewram0 { *(.ewram0) . = ALIGN(4);}
|
||||
.ewram1 { *(.ewram1) . = ALIGN(4);}
|
||||
.ewram2 { *(.ewram2) . = ALIGN(4);}
|
||||
.ewram3 { *(.ewram3) . = ALIGN(4);}
|
||||
.ewram4 { *(.ewram4) . = ALIGN(4);}
|
||||
.ewram5 { *(.ewram5) . = ALIGN(4);}
|
||||
.ewram6 { *(.ewram6) . = ALIGN(4);}
|
||||
.ewram7 { *(.ewram7) . = ALIGN(4);}
|
||||
.ewram8 { *(.ewram8) . = ALIGN(4);}
|
||||
.ewram9 { *(.ewram9) . = ALIGN(4);}
|
||||
}>ewram = 0xff
|
||||
|
||||
__ewram_overlay_end = __load_stop_ewram9 ;
|
||||
__pad_lma = __load_stop_ewram9;
|
||||
__eheap_start = __sbss_end;
|
||||
__end__ = __sbss_end;
|
||||
end = __sbss_end;
|
||||
|
||||
/* EZF Advance strips trailing 0xff bytes, add a pad section so nothing important is removed */
|
||||
.pad ALIGN(4) : AT (__pad_lma)
|
||||
|
|
@ -274,12 +265,6 @@ SECTIONS
|
|||
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
|
||||
} = 0xff
|
||||
|
||||
__eheap_start = __load_stop_ewram9 ;
|
||||
|
||||
_end = __load_stop_ewram9;
|
||||
__end__ = __load_stop_ewram9 ; /* v1.3 */
|
||||
end = __load_stop_ewram9;
|
||||
PROVIDE (end = end); /* v1.3 */
|
||||
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
|
|
@ -316,4 +301,7 @@ SECTIONS
|
|||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
.stack 0x80000 : { _stack = .; *(.stack) }
|
||||
/* These must appear regardless of . */
|
||||
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
|
||||
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
|
||||
/DISCARD/ : { *(.note.GNU-stack) }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ start_vector:
|
|||
ldr r3, =__end__ @ last ewram address
|
||||
sub r3, r2 @ r3= actual binary size
|
||||
mov r6, r2 @ r6= 0x02000000
|
||||
lsl r1, r2, #2 @ r1= 0x08000000
|
||||
lsl r1, r2, #2 @ r1= 0x08000000
|
||||
|
||||
bl CopyMem
|
||||
|
||||
|
|
@ -154,16 +154,6 @@ CIW0Skip:
|
|||
bl CopyMemChk
|
||||
|
||||
@---------------------------------------------------------------------------------
|
||||
@ Copy external work ram overlay 0 (ewram0 section) from LMA to VMA (ROM to RAM)
|
||||
@---------------------------------------------------------------------------------
|
||||
ldr r2, =__load_stop_ewram0
|
||||
ldr r1, =__load_start_ewram0
|
||||
sub r3, r2, r1 @ Is there any data to copy?
|
||||
beq CEW0Skip @ no
|
||||
|
||||
ldr r2, =__ewram_overlay_start
|
||||
bl CopyMem
|
||||
@---------------------------------------------------------------------------------
|
||||
CEW0Skip:
|
||||
@---------------------------------------------------------------------------------
|
||||
@ set heap end
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user