From 8d62bbd46aa178abc6e029b0ba79d915f7f988c2 Mon Sep 17 00:00:00 2001 From: Dave Hylands Date: Tue, 21 Oct 2014 23:04:38 -0700 Subject: Add pyb.hard_reset, and make sys.exit() or raise SystemExit do a soft reset. --- stmhal/modpyb.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'stmhal/modpyb.c') diff --git a/stmhal/modpyb.c b/stmhal/modpyb.c index 04f47f2d3..062202aad 100644 --- a/stmhal/modpyb.c +++ b/stmhal/modpyb.c @@ -88,6 +88,15 @@ STATIC NORETURN mp_obj_t pyb_bootloader(void) { } STATIC MP_DEFINE_CONST_FUN_OBJ_0(pyb_bootloader_obj, pyb_bootloader); +/// \function hard_reset() +/// Resets the pyboard in a manner similar to pushing the external RESET +/// button. +STATIC mp_obj_t pyb_hard_reset(void) { + NVIC_SystemReset(); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(pyb_hard_reset_obj, pyb_hard_reset); + /// \function info([dump_alloc_table]) /// Print out lots of information about the board. STATIC mp_obj_t pyb_info(mp_uint_t n_args, const mp_obj_t *args) { @@ -443,6 +452,7 @@ STATIC const mp_map_elem_t pyb_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_pyb) }, { MP_OBJ_NEW_QSTR(MP_QSTR_bootloader), (mp_obj_t)&pyb_bootloader_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_hard_reset), (mp_obj_t)&pyb_hard_reset_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_info), (mp_obj_t)&pyb_info_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_unique_id), (mp_obj_t)&pyb_unique_id_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_freq), (mp_obj_t)&pyb_freq_obj }, -- cgit v1.2.3