Commit f254cfd3 authored by Damien George's avatar Damien George
Browse files

stmhal: Rename mp_const_vcp_interrupt to mp_kbd_exception.

mp_kbd_exception is now considered the standard variable name to hold the
singleton KeyboardInterrupt exception.

This patch also moves the creation of this object from pyb_usb_init() to
main().
parent 29b58796
......@@ -438,6 +438,7 @@ soft_reset:
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_flash));
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_flash_slash_lib));
mp_obj_list_init(mp_sys_argv, 0);
MP_STATE_PORT(mp_kbd_exception) = mp_obj_new_exception(&mp_type_KeyboardInterrupt);
// Initialise low-level sub-systems. Here we need to very basic things like
// zeroing out memory and resetting any of the sub-systems. Following this
......
......@@ -208,7 +208,7 @@ extern const struct _mp_obj_module_t mp_module_network;
#define MICROPY_PORT_ROOT_POINTERS \
const char *readline_hist[8]; \
\
mp_obj_t mp_const_vcp_interrupt; \
mp_obj_t mp_kbd_exception; \
mp_obj_t pyb_hid_report_desc; \
\
mp_obj_t pyb_config_main; \
......
......@@ -36,7 +36,7 @@
// PENDSV call that actually raises the exception. It must be non-static
// otherwise gcc-5 optimises it away. It can point to the heap but is not
// traced by GC. This is okay because we only ever set it to
// mp_const_vcp_interrupt which is in the root-pointer set.
// mp_kbd_exception which is in the root-pointer set.
void *pendsv_object;
void pendsv_init(void) {
......
......@@ -96,9 +96,7 @@ const mp_obj_tuple_t pyb_usb_hid_keyboard_obj = {
};
void pyb_usb_init0(void) {
// create an exception object for interrupting by VCP
MP_STATE_PORT(mp_const_vcp_interrupt) = mp_obj_new_exception(&mp_type_KeyboardInterrupt);
USBD_CDC_SetInterrupt(-1, MP_STATE_PORT(mp_const_vcp_interrupt));
USBD_CDC_SetInterrupt(-1, MP_STATE_PORT(mp_kbd_exception));
MP_STATE_PORT(pyb_hid_report_desc) = MP_OBJ_NULL;
}
......@@ -146,9 +144,9 @@ bool usb_vcp_is_enabled(void) {
void usb_vcp_set_interrupt_char(int c) {
if (pyb_usb_flags & PYB_USB_FLAG_DEV_ENABLED) {
if (c != -1) {
mp_obj_exception_clear_traceback(MP_STATE_PORT(mp_const_vcp_interrupt));
mp_obj_exception_clear_traceback(MP_STATE_PORT(mp_kbd_exception));
}
USBD_CDC_SetInterrupt(c, MP_STATE_PORT(mp_const_vcp_interrupt));
USBD_CDC_SetInterrupt(c, MP_STATE_PORT(mp_kbd_exception));
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment