|
51 | 51 | static machine_hw_i2c_obj_t machine_hw_i2c_bus_obj[I2C_NUM_MAX]; |
52 | 52 |
|
53 | 53 |
|
54 | | -static void * _get_func(size_t index) |
| 54 | +static const void *_get_func(size_t index) |
55 | 55 | { |
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; |
57 | 59 |
|
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; |
60 | 62 | } |
61 | 63 |
|
62 | 64 |
|
63 | 65 | 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); |
65 | 67 | static machine_i2c_scan_func_t machine_i2c_scan = machine_i2c_scan_func_obj->fun._1; |
66 | 68 |
|
67 | 69 | MP_DEFINE_CONST_FUN_OBJ_1(new_machine_i2c_scan_obj, machine_i2c_scan); |
68 | 70 |
|
69 | 71 |
|
70 | 72 | 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); |
72 | 74 | static machine_i2c_readinto_func_t machine_i2c_readinto = machine_i2c_readinto_func_obj->fun.var; |
73 | 75 |
|
74 | 76 | MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_readinto_obj, 2, 3, machine_i2c_readinto); |
75 | 77 |
|
76 | 78 |
|
77 | 79 | 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); |
79 | 81 | static machine_i2c_write_func_t machine_i2c_write = machine_i2c_write_func_obj->fun._2; |
80 | 82 |
|
81 | 83 | MP_DEFINE_CONST_FUN_OBJ_2(new_machine_i2c_write_obj, machine_i2c_write); |
82 | 84 |
|
83 | 85 |
|
84 | 86 | 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); |
86 | 88 | static machine_i2c_readfrom_func_t machine_i2c_readfrom = machine_i2c_readfrom_func_obj->fun.var; |
87 | 89 |
|
88 | 90 | MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_readfrom_obj, 3, 4, machine_i2c_readfrom); |
89 | 91 |
|
90 | 92 |
|
91 | 93 | 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); |
93 | 95 | static machine_i2c_readfrom_into_func_t machine_i2c_readfrom_into = machine_i2c_readfrom_into_func_obj->fun.var; |
94 | 96 |
|
95 | 97 | MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_readfrom_into_obj, 3, 4, machine_i2c_readfrom_into); |
96 | 98 |
|
97 | 99 |
|
98 | 100 | 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); |
100 | 102 | static machine_i2c_writeto_func_t machine_i2c_writeto = machine_i2c_writeto_func_obj->fun.var; |
101 | 103 |
|
102 | 104 | static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_writeto_obj, 3, 4, machine_i2c_writeto) |
103 | 105 |
|
104 | 106 |
|
105 | 107 | 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); |
107 | 109 | static machine_i2c_writevto_func_t machine_i2c_writevto = machine_i2c_writevto_func_obj->fun.var; |
108 | 110 |
|
109 | 111 | static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(new_machine_i2c_writevto_obj, 3, 4, machine_i2c_writevto); |
110 | 112 |
|
111 | 113 |
|
112 | 114 | 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); |
114 | 116 | static machine_i2c_readfrom_mem_func_t machine_i2c_readfrom_mem = machine_i2c_readfrom_mem_func_obj->fun.kw; |
115 | 117 |
|
116 | 118 | MP_DEFINE_CONST_FUN_OBJ_KW(new_machine_i2c_readfrom_mem_obj, 1, machine_i2c_readfrom_mem); |
117 | 119 |
|
118 | 120 |
|
119 | 121 | 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); |
121 | 123 | static machine_i2c_readfrom_mem_into_func_t machine_i2c_readfrom_mem_into = machine_i2c_readfrom_mem_into_func_obj->fun.kw; |
122 | 124 |
|
123 | 125 | MP_DEFINE_CONST_FUN_OBJ_KW(new_machine_i2c_readfrom_mem_into_obj, 1, machine_i2c_readfrom_mem_into); |
124 | 126 |
|
125 | 127 |
|
126 | 128 | 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); |
128 | 130 | static machine_i2c_writeto_mem_func_t machine_i2c_writeto_mem = machine_i2c_writeto_mem_func_obj->fun.kw; |
129 | 131 |
|
130 | 132 | static MP_DEFINE_CONST_FUN_OBJ_KW(new_machine_i2c_writeto_mem_obj, 1, machine_i2c_writeto_mem); |
|
0 commit comments