diff --git a/os/common/startup/ARMCAx-TZ/compilers/GCC/crt0.S b/os/common/startup/ARMCAx-TZ/compilers/GCC/crt0.S index f9e807de7..bf8e9750f 100644 --- a/os/common/startup/ARMCAx-TZ/compilers/GCC/crt0.S +++ b/os/common/startup/ARMCAx-TZ/compilers/GCC/crt0.S @@ -28,6 +28,7 @@ .set MODE_FIQ, 0x11 .set MODE_IRQ, 0x12 .set MODE_SVC, 0x13 + .set MODE_MON, 0x16 .set MODE_ABT, 0x17 .set MODE_UND, 0x1B .set MODE_SYS, 0x1F @@ -73,6 +74,11 @@ Reset_Handler: mov sp, r0 ldr r1, =__svc_stack_size__ sub r0, r0, r1 + /* Monitor */ + msr CPSR_c, #MODE_MON | I_BIT | F_BIT + mov sp, r0 + ldr r1, =__mon_stack_size__ + sub r0, r0, r1 /* System */ msr CPSR_c, #MODE_SYS | I_BIT | F_BIT mov sp, r0 @@ -121,7 +127,7 @@ bssloop: */ #if !defined(THUMB_NO_INTERWORKING) #if defined(CH_CFG_USE_MMU) - bl __mmu_init + bl __core_init #endif bl __late_init #else /* defined(THUMB_NO_INTERWORKING) */