diff --git a/platform/mbed_application.c b/platform/mbed_application.c index b55519491b..41930fcd65 100644 --- a/platform/mbed_application.c +++ b/platform/mbed_application.c @@ -71,6 +71,17 @@ void mbed_start_application(uintptr_t address) powerdown_scb(address); mbed_mpu_free(); +#ifdef MBED_DEBUG + // Configs to make debugging easier +#ifdef SCnSCB_ACTLR_DISDEFWBUF_Msk + // Disable write buffer to make BusFaults (eg write to ROM via NULL pointer) precise. + // Possible on Cortex-M3 and M4, not on M0, M7 or M33. + // Would be less necessary if ROM was write-protected in MPU to give a + // precise MemManage exception. + SCnSCB->ACTLR |= SCnSCB_ACTLR_DISDEFWBUF_Msk; +#endif +#endif + sp = *((void **)address + 0); pc = *((void **)address + 1); start_new_application(sp, pc);