diff --git a/src/drivers/boards/common/board_crashdump.c b/src/drivers/boards/common/board_crashdump.c index afde200ce7a90e0ec4d1cd302a8d2d45cb0c07ec..20628820c2f979de6c8f9745a82fcd38533d5f9f 100644 --- a/src/drivers/boards/common/board_crashdump.c +++ b/src/drivers/boards/common/board_crashdump.c @@ -336,9 +336,15 @@ __EXPORT void board_crashdump(uintptr_t currentsp, FAR void *tcb, FAR const uint #endif /* BOARD_CRASHDUMP_RESET_ONLY */ -#if defined(CONFIG_BOARD_RESET_ON_CRASH) - board_reset(0); -#endif + /* All boards need to do a reset here! + * + * Since we needed a chunk of ram to save the complete + * context in and have corrupted it. We can not allow + * the OS to run again. We used &_sdata which is the lowest memory + * and it could be used by the OS. + */ + + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); } #endif /* CONFIG_BOARD_CRASHDUMP */