summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--stmhal/mphal.c2
-rw-r--r--tests/pyb/halerror.py15
-rw-r--r--tests/pyb/halerror.py.exp2
3 files changed, 18 insertions, 1 deletions
diff --git a/stmhal/mphal.c b/stmhal/mphal.c
index e8f242051e..7fcd982dcb 100644
--- a/stmhal/mphal.c
+++ b/stmhal/mphal.c
@@ -16,5 +16,5 @@ const byte mp_hal_status_to_errno_table[4] = {
};
NORETURN void mp_hal_raise(HAL_StatusTypeDef status) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, (mp_obj_t)(mp_uint_t)mp_hal_status_to_errno_table[status]));
+ nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(mp_hal_status_to_errno_table[status])));
}
diff --git a/tests/pyb/halerror.py b/tests/pyb/halerror.py
new file mode 100644
index 0000000000..1a6bce1a7e
--- /dev/null
+++ b/tests/pyb/halerror.py
@@ -0,0 +1,15 @@
+# test hal errors
+
+import pyb
+
+i2c = pyb.I2C(2, pyb.I2C.MASTER)
+try:
+ i2c.recv(1, 1)
+except OSError as e:
+ print(repr(e))
+
+can = pyb.CAN(1, pyb.CAN.NORMAL)
+try:
+ can.send('1', 1, timeout=50)
+except OSError as e:
+ print(repr(e))
diff --git a/tests/pyb/halerror.py.exp b/tests/pyb/halerror.py.exp
new file mode 100644
index 0000000000..09c9f7ad92
--- /dev/null
+++ b/tests/pyb/halerror.py.exp
@@ -0,0 +1,2 @@
+OSError(5,)
+OSError(116,)