Skip to content
Snippets Groups Projects
Commit daa1a455 authored by Damien George's avatar Damien George
Browse files

stmhal: Remove custom mod_machine_mem_get_{read,write}_addr functions.

They are no longer needed because stm constants can now be 32 bits wide.
parent 2621f8a3
No related branches found
No related tags found
No related merge requests found
...@@ -419,42 +419,6 @@ STATIC mp_obj_t machine_reset_cause(void) { ...@@ -419,42 +419,6 @@ STATIC mp_obj_t machine_reset_cause(void) {
STATIC MP_DEFINE_CONST_FUN_OBJ_0(machine_reset_cause_obj, machine_reset_cause); STATIC MP_DEFINE_CONST_FUN_OBJ_0(machine_reset_cause_obj, machine_reset_cause);
#endif #endif
// To use compile-time constants we are restricted to 31-bit numbers (a small int,
// so it fits in a Micro Python object pointer). Thus, when extracting a constant
// from an object, we must clear the MSB.
uintptr_t mod_machine_mem_get_read_addr(mp_obj_t addr_o, uint align) {
uint32_t addr = mp_obj_get_int_truncated(addr_o);
if (MP_OBJ_IS_SMALL_INT(addr_o)) {
addr &= 0x7fffffff;
}
/*
if (addr < 0x10000000) {
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "cannot read from address %08x", addr));
}
*/
if ((addr & (align - 1)) != 0) {
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "address %08x is not aligned to %d bytes", addr, align));
}
return addr;
}
uintptr_t mod_machine_mem_get_write_addr(mp_obj_t addr_o, uint align) {
uint32_t addr = mp_obj_get_int_truncated(addr_o);
if (MP_OBJ_IS_SMALL_INT(addr_o)) {
addr &= 0x7fffffff;
}
if (addr < 0x10000000) {
// Everything below 0x10000000 is either ROM or aliased to something higher, so we don't
// lose anything by restricting writes to this area, and we gain some safety.
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "cannot write to address %08x", addr));
}
if ((addr & (align - 1)) != 0) {
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "address %08x is not aligned to %d bytes", addr, align));
}
return addr;
}
STATIC const mp_map_elem_t machine_module_globals_table[] = { STATIC const mp_map_elem_t machine_module_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_umachine) }, { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_umachine) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_info), (mp_obj_t)&machine_info_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_info), (mp_obj_t)&machine_info_obj },
......
...@@ -85,10 +85,7 @@ ...@@ -85,10 +85,7 @@
#define MICROPY_PY_URE (1) #define MICROPY_PY_URE (1)
#define MICROPY_PY_UHEAPQ (1) #define MICROPY_PY_UHEAPQ (1)
#define MICROPY_PY_UHASHLIB (1) #define MICROPY_PY_UHASHLIB (1)
#define MICROPY_PY_MACHINE (1) #define MICROPY_PY_MACHINE (1)
#define MICROPY_MACHINE_MEM_GET_READ_ADDR mod_machine_mem_get_read_addr
#define MICROPY_MACHINE_MEM_GET_WRITE_ADDR mod_machine_mem_get_write_addr
#define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1) #define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1)
#define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (0) #define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (0)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment