diff --git a/dkarm-eabi/crtls/Makefile b/dkarm-eabi/crtls/Makefile index c3423bb..90580ab 100644 --- a/dkarm-eabi/crtls/Makefile +++ b/dkarm-eabi/crtls/Makefile @@ -3,3 +3,8 @@ include $(DEVKITARM)/base_rules all: $(CC) -x assembler-with-cpp -marm -c $(CRT)_crt0.s -o$(CRT)_crt0.o $(CC) -x assembler-with-cpp -mthumb -c $(CRT)_crt0.s -o thumb/$(CRT)_crt0.o + +ds_arm7_vram_crt0: + $(CC) -x assembler-with-cpp -marm -c -DVRAM ds_arm7_crt0.s -ods_arm7_vram_crt0.o + $(CC) -x assembler-with-cpp -mthumb -c -DVRAM ds_arm7_crt0.s -othumb/ds_arm7_vram_crt0.o + diff --git a/dkarm-eabi/crtls/ds_arm7_crt0.s b/dkarm-eabi/crtls/ds_arm7_crt0.s index a958fda..48b37a4 100644 --- a/dkarm-eabi/crtls/ds_arm7_crt0.s +++ b/dkarm-eabi/crtls/ds_arm7_crt0.s @@ -23,6 +23,7 @@ _start: msr cpsr, r0 ldr sp, =__sp_usr @ Set user stack +#ifndef VRAM adr r1, __sync_start @ Perform ARM7<->ARM9 sync code ldr r2, =__arm7_start__ mov r3, #(__sync_end-__sync_start) @@ -30,7 +31,9 @@ _start: bl CopyMem mov r3, r8 bl _blx_r3_stub - +#else + bl __sync_start +#endif @--------------------------------------------------------------------------------- @ Copy initialized data (data section) from LMA to VMA (EWRAM to IWRAM) @--------------------------------------------------------------------------------- @@ -46,6 +49,7 @@ _start: sub r1, r1, r0 bl ClearMem +#ifndef VRAM cmp r10, #1 bne NotTWL ldr r1, =__dsimode @ set DSi mode flag @@ -60,6 +64,7 @@ _start: ldr r1, =__twl_bss_end__ sub r1, r1, r0 bl ClearMem +#endif NotTWL: ldr r3, =__libc_init_array @ global constructors diff --git a/dkarm-eabi/crtls/ds_arm7_vram.specs b/dkarm-eabi/crtls/ds_arm7_vram.specs index e76a0b4..322698c 100644 --- a/dkarm-eabi/crtls/ds_arm7_vram.specs +++ b/dkarm-eabi/crtls/ds_arm7_vram.specs @@ -4,5 +4,5 @@ %(old_link) -T ds_arm7_vram.ld%s *startfile: -ds_arm7_crt0%O%s crti%O%s crtbegin%O%s +ds_arm7_vram_crt0%O%s crti%O%s crtbegin%O%s diff --git a/dkarm-eabi/scripts/build-crtls.sh b/dkarm-eabi/scripts/build-crtls.sh index 18800eb..6f31c5b 100644 --- a/dkarm-eabi/scripts/build-crtls.sh +++ b/dkarm-eabi/scripts/build-crtls.sh @@ -21,6 +21,7 @@ $MAKE CRT=gp32_gpsdk $MAKE CRT=ds_arm7 $MAKE CRT=ds_arm9 $MAKE CRT=ds_cart +$MAKE ds_arm7_vram_crt0 $target-gcc -march=armv6k -mfloat-abi=hard -c 3dsx_crt0.s -o armv6k/fpu/3dsx_crt0.o cd $BUILDDIR/libgba-$LIBGBA_VER