summaryrefslogtreecommitdiffstatshomepage
path: root/stm
diff options
context:
space:
mode:
Diffstat (limited to 'stm')
-rw-r--r--stm/adc.c25
-rw-r--r--stm/audio.c15
-rw-r--r--stm/exti.c16
-rw-r--r--stm/file.c14
-rw-r--r--stm/i2c.c18
-rw-r--r--stm/led.c14
-rw-r--r--stm/pin.c14
-rw-r--r--stm/sdcard.c14
-rw-r--r--stm/servo.c10
-rw-r--r--stm/usart.c16
10 files changed, 88 insertions, 68 deletions
diff --git a/stm/adc.c b/stm/adc.c
index 0706787579..acdaa97dae 100644
--- a/stm/adc.c
+++ b/stm/adc.c
@@ -6,6 +6,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "adc.h"
/* ADC defintions */
@@ -323,19 +324,20 @@ static MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_temp_obj, adc_all_read_core_t
static MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_vbat_obj, adc_all_read_core_vbat);
static MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_vref_obj, adc_all_read_core_vref);
-static const mp_method_t adc_all_methods[] = {
- { MP_QSTR_read_channel, &adc_all_read_channel_obj},
- { MP_QSTR_read_core_temp, &adc_all_read_core_temp_obj},
- { MP_QSTR_read_core_vbat, &adc_all_read_core_vbat_obj},
- { MP_QSTR_read_core_vref, &adc_all_read_core_vref_obj},
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t adc_all_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read_channel), (mp_obj_t) &adc_all_read_channel_obj},
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read_core_temp), (mp_obj_t)&adc_all_read_core_temp_obj},
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read_core_vbat), (mp_obj_t)&adc_all_read_core_vbat_obj},
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read_core_vref), (mp_obj_t)&adc_all_read_core_vref_obj},
};
+STATIC MP_DEFINE_CONST_DICT(adc_all_locals_dict, adc_all_locals_dict_table);
+
static const mp_obj_type_t adc_all_type = {
{ &mp_type_type },
.name = MP_QSTR_ADC,
.print = adc_all_print,
- .methods = adc_all_methods,
+ .locals_dict = (mp_obj_t)&adc_all_locals_dict,
};
mp_obj_t pyb_ADC_all(mp_obj_t resolution) {
@@ -380,16 +382,17 @@ static mp_obj_t adc_read(mp_obj_t self_in) {
static MP_DEFINE_CONST_FUN_OBJ_1(adc_read_obj, adc_read);
-static const mp_method_t adc_methods[] = {
- { MP_QSTR_read, &adc_read_obj},
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t adc_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read), (mp_obj_t)&adc_read_obj},
};
+STATIC MP_DEFINE_CONST_DICT(adc_locals_dict, adc_locals_dict_table);
+
static const mp_obj_type_t adc_type = {
{ &mp_type_type },
.name = MP_QSTR_ADC,
.print = adc_print,
- .methods = adc_methods,
+ .locals_dict = (mp_obj_t)&adc_locals_dict,
};
mp_obj_t pyb_ADC(mp_obj_t pin_name_obj) {
diff --git a/stm/audio.c b/stm/audio.c
index 5523087ec8..22f635a5b7 100644
--- a/stm/audio.c
+++ b/stm/audio.c
@@ -193,18 +193,19 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(pyb_audio_triangle_obj, pyb_audio_triangle);
STATIC MP_DEFINE_CONST_FUN_OBJ_2(pyb_audio_dac_obj, pyb_audio_dac);
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(pyb_audio_dma_obj, 3, pyb_audio_dma);
-STATIC const mp_method_t pyb_audio_methods[] = {
- { MP_QSTR_noise, &pyb_audio_noise_obj },
- { MP_QSTR_triangle, &pyb_audio_triangle_obj },
- { MP_QSTR_dac, &pyb_audio_dac_obj },
- { MP_QSTR_dma, &pyb_audio_dma_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t pyb_audio_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_noise), (mp_obj_t)&pyb_audio_noise_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_triangle), (mp_obj_t)&pyb_audio_triangle_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_dac), (mp_obj_t)&pyb_audio_dac_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_dma), (mp_obj_t)&pyb_audio_dma_obj },
};
+STATIC MP_DEFINE_CONST_DICT(pyb_audio_locals_dict, pyb_audio_locals_dict_table);
+
STATIC const mp_obj_type_t pyb_audio_type = {
{ &mp_type_type },
.name = MP_QSTR_,
- .methods = pyb_audio_methods,
+ .locals_dict = (mp_obj_t)&pyb_audio_locals_dict,
};
STATIC const pyb_audio_t pyb_audio_channel_1 = {{&pyb_audio_type}, DAC_Channel_1, DMA1_Stream5};
diff --git a/stm/exti.c b/stm/exti.c
index 1484b622ec..5b8c694a88 100644
--- a/stm/exti.c
+++ b/stm/exti.c
@@ -9,6 +9,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "runtime.h"
#include "nlr.h"
@@ -226,14 +227,15 @@ static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_enable_obj, exti_obj_enable);
static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_disable_obj, exti_obj_disable);
static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_swint_obj, exti_obj_swint);
-static const mp_method_t exti_methods[] = {
- { MP_QSTR_line, &exti_obj_line_obj },
- { MP_QSTR_enable, &exti_obj_enable_obj },
- { MP_QSTR_disable, &exti_obj_disable_obj },
- { MP_QSTR_swint, &exti_obj_swint_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t exti_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_line), (mp_obj_t) &exti_obj_line_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_enable), (mp_obj_t) &exti_obj_enable_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_disable), (mp_obj_t) &exti_obj_disable_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_swint), (mp_obj_t) &exti_obj_swint_obj },
};
+STATIC MP_DEFINE_CONST_DICT(exti_locals_dict, exti_locals_dict_table);
+
static mp_obj_t exti_regs(void) {
printf("EXTI_IMR %08lx\n", EXTI->IMR);
printf("EXTI_EMR %08lx\n", EXTI->EMR);
@@ -317,7 +319,7 @@ const mp_obj_type_t exti_obj_type = {
{ &exti_meta_obj_type },
.name = MP_QSTR_Exti,
.print = exti_obj_print,
- .methods = exti_methods,
+ .locals_dict = (mp_obj_t)&exti_locals_dict,
};
void exti_init(void) {
diff --git a/stm/file.c b/stm/file.c
index e56b05faeb..208ce804b4 100644
--- a/stm/file.c
+++ b/stm/file.c
@@ -5,6 +5,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "file.h"
#include "ff.h"
@@ -52,18 +53,19 @@ static MP_DEFINE_CONST_FUN_OBJ_1(file_obj_close_obj, file_obj_close);
// TODO gc hook to close the file if not already closed
-static const mp_method_t file_methods[] = {
- { MP_QSTR_read, &file_obj_read_obj },
- { MP_QSTR_write, &file_obj_write_obj },
- { MP_QSTR_close, &file_obj_close_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t file_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read), (mp_obj_t)&file_obj_read_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_write), (mp_obj_t)&file_obj_write_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_close), (mp_obj_t)&file_obj_close_obj },
};
+STATIC MP_DEFINE_CONST_DICT(file_locals_dict, file_locals_dict_table);
+
static const mp_obj_type_t file_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_File,
.print = file_obj_print,
- .methods = file_methods,
+ .locals_dict = (mp_obj_t)&file_locals_dict,
};
mp_obj_t pyb_io_open(mp_obj_t o_filename, mp_obj_t o_mode) {
diff --git a/stm/i2c.c b/stm/i2c.c
index 4d726c9593..b3d06df147 100644
--- a/stm/i2c.c
+++ b/stm/i2c.c
@@ -7,6 +7,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
typedef enum {
PYB_I2C_1 = 0,
@@ -325,20 +326,21 @@ static MP_DEFINE_CONST_FUN_OBJ_1(i2c_obj_read_obj, i2c_obj_read);
static MP_DEFINE_CONST_FUN_OBJ_1(i2c_obj_readAndStop_obj, i2c_obj_readAndStop);
static MP_DEFINE_CONST_FUN_OBJ_1(i2c_obj_stop_obj, i2c_obj_stop);
-static const mp_method_t i2c_methods[] = {
- { MP_QSTR_start, &i2c_obj_start_obj },
- { MP_QSTR_write, &i2c_obj_write_obj },
- { MP_QSTR_read, &i2c_obj_read_obj },
- { MP_QSTR_readAndStop, &i2c_obj_readAndStop_obj },
- { MP_QSTR_stop, &i2c_obj_stop_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t i2c_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_start), (mp_obj_t)&i2c_obj_start_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_write), (mp_obj_t)&i2c_obj_write_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read), (mp_obj_t)&i2c_obj_read_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_readAndStop), (mp_obj_t)&i2c_obj_readAndStop_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_stop), (mp_obj_t)&i2c_obj_stop_obj },
};
+STATIC MP_DEFINE_CONST_DICT(i2c_locals_dict, i2c_locals_dict_table);
+
static const mp_obj_type_t i2c_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_I2C,
.print = i2c_obj_print,
- .methods = i2c_methods,
+ .locals_dict = (mp_obj_t)&i2c_locals_dict,
};
// create the I2C object
diff --git a/stm/led.c b/stm/led.c
index ceae49ca73..bfb98f9b58 100644
--- a/stm/led.c
+++ b/stm/led.c
@@ -6,6 +6,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "led.h"
#include "pin.h"
#include "build/pins.h"
@@ -109,18 +110,19 @@ static MP_DEFINE_CONST_FUN_OBJ_1(led_obj_on_obj, led_obj_on);
static MP_DEFINE_CONST_FUN_OBJ_1(led_obj_off_obj, led_obj_off);
static MP_DEFINE_CONST_FUN_OBJ_1(led_obj_toggle_obj, led_obj_toggle);
-static const mp_method_t led_methods[] = {
- { MP_QSTR_on, &led_obj_on_obj },
- { MP_QSTR_off, &led_obj_off_obj },
- { MP_QSTR_toggle, &led_obj_toggle_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t led_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_on), (mp_obj_t)&led_obj_on_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_off), (mp_obj_t)&led_obj_off_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_toggle), (mp_obj_t)&led_obj_toggle_obj },
};
+STATIC MP_DEFINE_CONST_DICT(led_locals_dict, led_locals_dict_table);
+
static const mp_obj_type_t led_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_Led,
.print = led_obj_print,
- .methods = led_methods,
+ .locals_dict = (mp_obj_t)&led_locals_dict,
};
static mp_obj_t pyb_Led(mp_obj_t led_id) {
diff --git a/stm/pin.c b/stm/pin.c
index 4bdbfcb16b..6b97d2f7c1 100644
--- a/stm/pin.c
+++ b/stm/pin.c
@@ -7,6 +7,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "pin.h"
@@ -34,18 +35,19 @@ static MP_DEFINE_CONST_FUN_OBJ_1(pin_obj_name_obj, pin_obj_name);
static MP_DEFINE_CONST_FUN_OBJ_1(pin_obj_port_obj, pin_obj_port);
static MP_DEFINE_CONST_FUN_OBJ_1(pin_obj_pin_obj, pin_obj_pin);
-static const mp_method_t pin_methods[] = {
- { MP_QSTR_name, &pin_obj_name_obj },
- { MP_QSTR_port, &pin_obj_port_obj },
- { MP_QSTR_pin, &pin_obj_pin_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t pin_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_name), (mp_obj_t)&pin_obj_name_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_port), (mp_obj_t)&pin_obj_port_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_pin), (mp_obj_t)&pin_obj_pin_obj },
};
+STATIC MP_DEFINE_CONST_DICT(pin_locals_dict, pin_locals_dict_table);
+
const mp_obj_type_t pin_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_Pin,
.print = pin_obj_print,
- .methods = pin_methods,
+ .locals_dict = (mp_obj_t)&pin_locals_dict,
};
void pin_af_obj_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) {
diff --git a/stm/sdcard.c b/stm/sdcard.c
index 0898c42a57..566fe70d53 100644
--- a/stm/sdcard.c
+++ b/stm/sdcard.c
@@ -9,6 +9,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "runtime.h"
#include "sdcard.h"
@@ -194,17 +195,18 @@ static mp_obj_t sd_read(mp_obj_t self, mp_obj_t block_num) {
static MP_DEFINE_CONST_FUN_OBJ_2(sd_read_obj, sd_read);
-static const mp_method_t sdcard_methods[] = {
- { MP_QSTR_present, &sd_present_obj },
- { MP_QSTR_power, &sd_power_obj },
- { MP_QSTR_read, &sd_read_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t sdcard_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_present), (mp_obj_t)&sd_present_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_power), (mp_obj_t)&sd_power_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_read), (mp_obj_t)&sd_read_obj },
};
+STATIC MP_DEFINE_CONST_DICT(sdcard_locals_dict, sdcard_locals_dict_table);
+
static const mp_obj_type_t sdcard_type = {
{ &mp_type_type },
.name = MP_QSTR_SDcard,
- .methods = sdcard_methods,
+ .locals_dict = (mp_obj_t)&sdcard_locals_dict,
};
const mp_obj_base_t pyb_sdcard_obj = {&sdcard_type};
diff --git a/stm/servo.c b/stm/servo.c
index cd6370b126..176081e1ad 100644
--- a/stm/servo.c
+++ b/stm/servo.c
@@ -8,6 +8,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "servo.h"
// PWM
@@ -146,16 +147,17 @@ STATIC mp_obj_t servo_obj_angle(mp_obj_t self_in, mp_obj_t angle) {
STATIC MP_DEFINE_CONST_FUN_OBJ_2(servo_obj_angle_obj, servo_obj_angle);
-STATIC const mp_method_t servo_methods[] = {
- { MP_QSTR_angle, &servo_obj_angle_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t servo_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_angle), (mp_obj_t)&servo_obj_angle_obj },
};
+STATIC MP_DEFINE_CONST_DICT(servo_locals_dict, servo_locals_dict_table);
+
STATIC const mp_obj_type_t servo_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_Servo,
.print = servo_obj_print,
- .methods = servo_methods,
+ .locals_dict = (mp_obj_t)&servo_locals_dict,
};
STATIC mp_obj_t pyb_Servo(mp_obj_t servo_id) {
diff --git a/stm/usart.c b/stm/usart.c
index 41a53c2fe8..27c40fd841 100644
--- a/stm/usart.c
+++ b/stm/usart.c
@@ -7,6 +7,7 @@
#include "mpconfig.h"
#include "qstr.h"
#include "obj.h"
+#include "map.h"
#include "usart.h"
pyb_usart_t pyb_usart_global_debug = PYB_USART_NONE;
@@ -235,19 +236,20 @@ static MP_DEFINE_CONST_FUN_OBJ_1(usart_obj_rx_char_obj, usart_obj_rx_char);
static MP_DEFINE_CONST_FUN_OBJ_2(usart_obj_tx_char_obj, usart_obj_tx_char);
static MP_DEFINE_CONST_FUN_OBJ_2(usart_obj_tx_str_obj, usart_obj_tx_str);
-STATIC const mp_method_t usart_methods[] = {
- { MP_QSTR_status, &usart_obj_status_obj },
- { MP_QSTR_recv_chr, &usart_obj_rx_char_obj },
- { MP_QSTR_send_chr, &usart_obj_tx_char_obj },
- { MP_QSTR_send, &usart_obj_tx_str_obj },
- { MP_QSTR_NULL, NULL },
+STATIC const mp_map_elem_t usart_locals_dict_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR_status), (mp_obj_t)&usart_obj_status_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_recv_chr), (mp_obj_t)&usart_obj_rx_char_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_send_chr), (mp_obj_t)&usart_obj_tx_char_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_send), (mp_obj_t)&usart_obj_tx_str_obj },
};
+STATIC MP_DEFINE_CONST_DICT(usart_locals_dict, usart_locals_dict_table);
+
STATIC const mp_obj_type_t usart_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_Usart,
.print = usart_obj_print,
- .methods = usart_methods,
+ .locals_dict = (mp_obj_t)&usart_locals_dict,
};
STATIC mp_obj_t pyb_Usart(mp_obj_t usart_id, mp_obj_t baudrate) {