|
25 | 25 | */ |
26 | 26 | #include "py/obj.h" |
27 | 27 | #include "py/runtime.h" |
| 28 | + |
| 29 | + #include "lib/utils/interrupt_char.h" |
28 | 30 | #include "supervisor/shared/autoreload.h" |
| 31 | + |
29 | 32 | #include "supervisor/shared/rgb_led_status.h" |
30 | 33 |
|
31 | 34 | #include "shared-bindings/supervisor/__init__.h" |
32 | 35 | #include "shared-bindings/supervisor/Runtime.h" |
| 36 | + |
33 | 37 | //| :mod:`supervisor` --- Supervisor settings |
34 | 38 | //| ================================================= |
35 | 39 | //| |
@@ -91,12 +95,31 @@ STATIC mp_obj_t supervisor_set_rgb_status_brightness(mp_obj_t lvl){ |
91 | 95 | } |
92 | 96 | MP_DEFINE_CONST_FUN_OBJ_1(supervisor_set_rgb_status_brightness_obj, supervisor_set_rgb_status_brightness); |
93 | 97 |
|
| 98 | +//| .. method:: reload() |
| 99 | +//| |
| 100 | +//| Reload the microcontroller (equivalent to hitting Ctrl-D at the REPL). |
| 101 | +//| |
| 102 | +STATIC mp_obj_t supervisor_reload(void) { |
| 103 | + reload_next_character = true; |
| 104 | + |
| 105 | + MP_STATE_VM(mp_pending_exception) = MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception)); |
| 106 | + #if MICROPY_ENABLE_SCHEDULER |
| 107 | + if (MP_STATE_VM(sched_state) == MP_SCHED_IDLE) { |
| 108 | + MP_STATE_VM(sched_state) = MP_SCHED_PENDING; |
| 109 | + } |
| 110 | + #endif |
| 111 | + return mp_const_none; |
| 112 | +} |
| 113 | +MP_DEFINE_CONST_FUN_OBJ_0(supervisor_reload_obj, supervisor_reload); |
| 114 | + |
| 115 | + |
94 | 116 | STATIC const mp_rom_map_elem_t supervisor_module_globals_table[] = { |
95 | 117 | { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_supervisor) }, |
96 | 118 | { MP_OBJ_NEW_QSTR(MP_QSTR_enable_autoreload), MP_ROM_PTR(&supervisor_enable_autoreload_obj) }, |
97 | 119 | { MP_OBJ_NEW_QSTR(MP_QSTR_disable_autoreload), MP_ROM_PTR(&supervisor_disable_autoreload_obj) }, |
98 | 120 | { MP_OBJ_NEW_QSTR(MP_QSTR_set_rgb_status_brightness), MP_ROM_PTR(&supervisor_set_rgb_status_brightness_obj) }, |
99 | 121 | { MP_ROM_QSTR(MP_QSTR_runtime), MP_ROM_PTR(&common_hal_supervisor_runtime_obj) }, |
| 122 | + { MP_ROM_QSTR(MP_QSTR_reload), MP_ROM_PTR(&supervisor_reload_obj) }, |
100 | 123 | }; |
101 | 124 |
|
102 | 125 | STATIC MP_DEFINE_CONST_DICT(supervisor_module_globals, supervisor_module_globals_table); |
|
0 commit comments