diff --git a/extmod/moductypes.c b/extmod/moductypes.c index f0aaa78b29..dd78102aee 100644 --- a/extmod/moductypes.c +++ b/extmod/moductypes.c @@ -606,6 +606,9 @@ STATIC const mp_map_elem_t mp_module_uctypes_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_BFUINT32), MP_OBJ_NEW_SMALL_INT(TYPE2SMALLINT(BFUINT32, 4)) }, { MP_OBJ_NEW_QSTR(MP_QSTR_BFINT32), MP_OBJ_NEW_SMALL_INT(TYPE2SMALLINT(BFINT32, 4)) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BF_POS), MP_OBJ_NEW_SMALL_INT(17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BF_LEN), MP_OBJ_NEW_SMALL_INT(22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_PTR), MP_OBJ_NEW_SMALL_INT(TYPE2SMALLINT(PTR, AGG_TYPE_BITS)) }, { MP_OBJ_NEW_QSTR(MP_QSTR_ARRAY), MP_OBJ_NEW_SMALL_INT(TYPE2SMALLINT(ARRAY, AGG_TYPE_BITS)) }, }; diff --git a/py/qstrdefs.h b/py/qstrdefs.h index cb40bdb835..e3a4dc01ab 100644 --- a/py/qstrdefs.h +++ b/py/qstrdefs.h @@ -398,6 +398,9 @@ Q(FLOAT64) Q(ARRAY) Q(PTR) //Q(BITFIELD) + +Q(BF_POS) +Q(BF_LEN) #endif #if MICROPY_PY_IO diff --git a/tests/extmod/uctypes_le.py b/tests/extmod/uctypes_le.py index 0e3bd9a82d..416a007448 100644 --- a/tests/extmod/uctypes_le.py +++ b/tests/extmod/uctypes_le.py @@ -8,13 +8,13 @@ desc = { }), "arr": (uctypes.ARRAY | 0, uctypes.UINT8 | 2), "arr2": (uctypes.ARRAY | 0, 2, {"b": uctypes.UINT8 | 0}), - "bitf0": uctypes.BFUINT16 | 0 | 0 << 17 | 8 << 22, - "bitf1": uctypes.BFUINT16 | 0 | 8 << 17 | 8 << 22, + "bitf0": uctypes.BFUINT16 | 0 | 0 << uctypes.BF_POS | 8 << uctypes.BF_LEN, + "bitf1": uctypes.BFUINT16 | 0 | 8 << uctypes.BF_POS | 8 << uctypes.BF_LEN, - "bf0": uctypes.BFUINT16 | 0 | 0 << 17 | 4 << 22, - "bf1": uctypes.BFUINT16 | 0 | 4 << 17 | 4 << 22, - "bf2": uctypes.BFUINT16 | 0 | 8 << 17 | 4 << 22, - "bf3": uctypes.BFUINT16 | 0 | 12 << 17 | 4 << 22, + "bf0": uctypes.BFUINT16 | 0 | 0 << uctypes.BF_POS | 4 << uctypes.BF_LEN, + "bf1": uctypes.BFUINT16 | 0 | 4 << uctypes.BF_POS | 4 << uctypes.BF_LEN, + "bf2": uctypes.BFUINT16 | 0 | 8 << uctypes.BF_POS | 4 << uctypes.BF_LEN, + "bf3": uctypes.BFUINT16 | 0 | 12 << uctypes.BF_POS | 4 << uctypes.BF_LEN, "ptr": (uctypes.PTR | 0, uctypes.UINT8), "ptr2": (uctypes.PTR | 0, {"b": uctypes.UINT8 | 0}), diff --git a/tests/extmod/uctypes_native_le.py b/tests/extmod/uctypes_native_le.py index 7a5e38733a..b4694994a2 100644 --- a/tests/extmod/uctypes_native_le.py +++ b/tests/extmod/uctypes_native_le.py @@ -17,13 +17,13 @@ desc = { }), "arr": (uctypes.ARRAY | 0, uctypes.UINT8 | 2), "arr2": (uctypes.ARRAY | 0, 2, {"b": uctypes.UINT8 | 0}), - "bitf0": uctypes.BFUINT16 | 0 | 0 << 17 | 8 << 22, - "bitf1": uctypes.BFUINT16 | 0 | 8 << 17 | 8 << 22, + "bitf0": uctypes.BFUINT16 | 0 | 0 << uctypes.BF_POS | 8 << uctypes.BF_LEN, + "bitf1": uctypes.BFUINT16 | 0 | 8 << uctypes.BF_POS | 8 << uctypes.BF_LEN, - "bf0": uctypes.BFUINT16 | 0 | 0 << 17 | 4 << 22, - "bf1": uctypes.BFUINT16 | 0 | 4 << 17 | 4 << 22, - "bf2": uctypes.BFUINT16 | 0 | 8 << 17 | 4 << 22, - "bf3": uctypes.BFUINT16 | 0 | 12 << 17 | 4 << 22, + "bf0": uctypes.BFUINT16 | 0 | 0 << uctypes.BF_POS | 4 << uctypes.BF_LEN, + "bf1": uctypes.BFUINT16 | 0 | 4 << uctypes.BF_POS | 4 << uctypes.BF_LEN, + "bf2": uctypes.BFUINT16 | 0 | 8 << uctypes.BF_POS | 4 << uctypes.BF_LEN, + "bf3": uctypes.BFUINT16 | 0 | 12 << uctypes.BF_POS | 4 << uctypes.BF_LEN, "ptr": (uctypes.PTR | 0, uctypes.UINT8), "ptr2": (uctypes.PTR | 0, {"b": uctypes.UINT8 | 0}),