diff --git a/include/mem_map.h b/include/mem_map.h index 0d5cabf..f9f35b8 100644 --- a/include/mem_map.h +++ b/include/mem_map.h @@ -107,7 +107,9 @@ #define A9_STUB_SIZE (0x200) #define A9_HEAP_END (A9_RAM_BASE + A9_RAM_SIZE) #define A9_STACK_START (DTCM_BASE) -#define A9_STACK_END (DTCM_BASE + DTCM_SIZE) +#define A9_STACK_END (DTCM_BASE + DTCM_SIZE - 0x1000) +#define A9_IRQ_STACK_START (DTCM_BASE + DTCM_SIZE - 0x1000) +#define A9_IRQ_STACK_END (DTCM_BASE + DTCM_SIZE) #define A9_EXC_STACK_START (ITCM_KERNEL_MIRROR + (ITCM_SIZE / 2)) #define A9_EXC_STACK_END (ITCM_KERNEL_MIRROR + ITCM_SIZE) #define FIRM_LOAD_ADDR (VRAM_BASE + 0x200000) diff --git a/source/arm9/start.s b/source/arm9/start.s index 8212c4f..7df50f4 100644 --- a/source/arm9/start.s +++ b/source/arm9/start.s @@ -60,7 +60,7 @@ mov sp, #0 @ SVC mode sp (Unused, aborts) msr cpsr_cxsf, #0xD2 @ IRQ mode - ldr sp, =(A9_STACK_END - 0x2000) + ldr sp, =A9_IRQ_STACK_END msr cpsr_cxsf, #0xDF @ System mode ldr sp, =A9_STACK_END