Skip to content

Commit 08a0871

Browse files
committed
working on the esp32 port
1 parent 3f3a3b9 commit 08a0871

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

micropy_updates/esp32/machine_i2c.c

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,80 +51,82 @@
5151
static machine_hw_i2c_obj_t machine_hw_i2c_bus_obj[I2C_NUM_MAX];
5252

5353

54-
static void * _get_func(size_t index)
54+
static const void *_get_func(size_t index)
5555
{
56-
mp_rom_map_elem_t *elem = &(((mp_rom_map_elem_t *)(mp_machine_i2c_locals_dict.map.table))[index]);
56+
mp_map_elem_t * table = mp_machine_i2c_locals_dict.map.table;
57+
mp_rom_map_elem_t *rom_table = (mp_rom_map_elem_t *)table;
58+
mp_rom_obj_t value = rom_table[index].value;
5759

58-
if (elem->value.u32.lo == NULL) return elem->value.u32.hi;
59-
else return elem->value.u32.lo;
60+
if (value.u32.lo == NULL) return value.u32.hi;
61+
else return value.u32.lo;
6062
}
6163

6264

6365
typedef mp_obj_t (*machine_i2c_scan_func_t)(mp_obj_t self_in);
64-
static mp_obj_fun_builtin_fixed_t *machine_i2c_scan_func_obj = _get_func(1);
66+
static const mp_obj_fun_builtin_fixed_t *machine_i2c_scan_func_obj = _get_func(1);
6567
static machine_i2c_scan_func_t machine_i2c_scan = machine_i2c_scan_func_obj->fun._1;
6668

6769
MP_DEFINE_CONST_FUN_OBJ_1(new_machine_i2c_scan_obj, machine_i2c_scan);
6870

6971

7072
typedef mp_obj_t (*machine_i2c_readinto_func_t)(size_t n_args, const mp_obj_t *args);
71-
static mp_obj_fun_builtin_var_t *machine_i2c_readinto_func_obj = _get_func(4);
73+
static const mp_obj_fun_builtin_var_t *machine_i2c_readinto_func_obj = _get_func(4);
7274
static machine_i2c_readinto_func_t machine_i2c_readinto = machine_i2c_readinto_func_obj->fun.var;
7375

7476
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_readinto_obj, 2, 3, machine_i2c_readinto);
7577

7678

7779
typedef mp_obj_t (*machine_i2c_write_func_t)(mp_obj_t self_in, mp_obj_t buf_in);
78-
static mp_obj_fun_builtin_fixed_t *machine_i2c_write_func_obj = _get_func(5);
80+
static const mp_obj_fun_builtin_fixed_t *machine_i2c_write_func_obj = _get_func(5);
7981
static machine_i2c_write_func_t machine_i2c_write = machine_i2c_write_func_obj->fun._2;
8082

8183
MP_DEFINE_CONST_FUN_OBJ_2(new_machine_i2c_write_obj, machine_i2c_write);
8284

8385

8486
typedef mp_obj_t (*machine_i2c_readfrom_func_t)(size_t n_args, const mp_obj_t *args)
85-
static mp_obj_fun_builtin_var_t *machine_i2c_readfrom_func_obj = _get_func(6);
87+
static const mp_obj_fun_builtin_var_t *machine_i2c_readfrom_func_obj = _get_func(6);
8688
static machine_i2c_readfrom_func_t machine_i2c_readfrom = machine_i2c_readfrom_func_obj->fun.var;
8789

8890
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_readfrom_obj, 3, 4, machine_i2c_readfrom);
8991

9092

9193
typedef mp_obj_t (*machine_i2c_readfrom_into_func_t)(size_t n_args, const mp_obj_t *args);
92-
static mp_obj_fun_builtin_var_t *machine_i2c_readfrom_into_func_obj = _get_func(7);
94+
static const mp_obj_fun_builtin_var_t *machine_i2c_readfrom_into_func_obj = _get_func(7);
9395
static machine_i2c_readfrom_into_func_t machine_i2c_readfrom_into = machine_i2c_readfrom_into_func_obj->fun.var;
9496

9597
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_readfrom_into_obj, 3, 4, machine_i2c_readfrom_into);
9698

9799

98100
typedef mp_obj_t (*machine_i2c_writeto_func_t)(size_t n_args, const mp_obj_t *args);
99-
static mp_obj_fun_builtin_var_t *machine_i2c_writeto_func_obj = _get_func(8);
101+
static const mp_obj_fun_builtin_var_t *machine_i2c_writeto_func_obj = _get_func(8);
100102
static machine_i2c_writeto_func_t machine_i2c_writeto = machine_i2c_writeto_func_obj->fun.var;
101103

102104
static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_writeto_obj, 3, 4, machine_i2c_writeto)
103105

104106

105107
typedef mp_obj_t (*machine_i2c_writevto_func_t)(size_t n_args, const mp_obj_t *args);
106-
static mp_obj_fun_builtin_var_t *machine_i2c_writevto_func_obj = _get_func(9);
108+
static const mp_obj_fun_builtin_var_t *machine_i2c_writevto_func_obj = _get_func(9);
107109
static machine_i2c_writevto_func_t machine_i2c_writevto = machine_i2c_writevto_func_obj->fun.var;
108110

109111
static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_writevto_obj, 3, 4, machine_i2c_writevto);
110112

111113

112114
typedef mp_obj_t (*machine_i2c_readfrom_mem_func_t)(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
113-
static mp_obj_fun_builtin_var_t *machine_i2c_readfrom_mem_func_obj = _get_func(10);
115+
static const mp_obj_fun_builtin_var_t *machine_i2c_readfrom_mem_func_obj = _get_func(10);
114116
static machine_i2c_readfrom_mem_func_t machine_i2c_readfrom_mem = machine_i2c_readfrom_mem_func_obj->fun.kw;
115117

116118
MP_DEFINE_CONST_FUN_OBJ_KW(new_machine_i2c_readfrom_mem_obj, 1, machine_i2c_readfrom_mem);
117119

118120

119121
typedef mp_obj_t (*machine_i2c_readfrom_mem_into_func_t)(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
120-
static mp_obj_fun_builtin_var_t *machine_i2c_readfrom_mem_into_func_obj = _get_func(11);
122+
static const mp_obj_fun_builtin_var_t *machine_i2c_readfrom_mem_into_func_obj = _get_func(11);
121123
static machine_i2c_readfrom_mem_into_func_t machine_i2c_readfrom_mem_into = machine_i2c_readfrom_mem_into_func_obj->fun.kw;
122124

123125
MP_DEFINE_CONST_FUN_OBJ_KW(new_machine_i2c_readfrom_mem_into_obj, 1, machine_i2c_readfrom_mem_into);
124126

125127

126128
typedef mp_obj_t (*machine_i2c_writeto_mem_func_t)(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
127-
static mp_obj_fun_builtin_var_t *machine_i2c_writeto_mem_func_obj = _get_func(12);
129+
static const mp_obj_fun_builtin_var_t *machine_i2c_writeto_mem_func_obj = _get_func(12);
128130
static machine_i2c_writeto_mem_func_t machine_i2c_writeto_mem = machine_i2c_writeto_mem_func_obj->fun.kw;
129131

130132
static MP_DEFINE_CONST_FUN_OBJ_KW(new_machine_i2c_writeto_mem_obj, 1, machine_i2c_writeto_mem);

0 commit comments

Comments
 (0)