mphal.c 560 Bytes
Newer Older
1
2
#include <errno.h>

3
4
#include "py/nlr.h"
#include "py/obj.h"
5
#include "usb.h"
6
7
8
9
10
11
12
13
14
15
16
#include "mphal.h"

// this table converts from HAL_StatusTypeDef to POSIX errno
const byte mp_hal_status_to_errno_table[4] = {
    [HAL_OK] = 0,
    [HAL_ERROR] = EIO,
    [HAL_BUSY] = EBUSY,
    [HAL_TIMEOUT] = ETIMEDOUT,
};

NORETURN void mp_hal_raise(HAL_StatusTypeDef status) {
17
    nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(mp_hal_status_to_errno_table[status])));
18
}
19
20
21
22

void mp_hal_set_interrupt_char(int c) {
    usb_vcp_set_interrupt_char(c);
}