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