stmhal: Fix HAL error raising; make test for it.

Addresses issue #968.
This commit is contained in:
Damien George 2014-11-15 20:39:44 +00:00
parent aec189a5ba
commit 224fee0e10
3 changed files with 18 additions and 1 deletions

View File

@ -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])));
}

15
tests/pyb/halerror.py Normal file
View File

@ -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))

View File

@ -0,0 +1,2 @@
OSError(5,)
OSError(116,)