Skip to content

Commit 17585e1

Browse files
committed
Clean up API
1 parent 91e530d commit 17585e1

File tree

11 files changed

+23
-29
lines changed

11 files changed

+23
-29
lines changed

main.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ STATIC void start_mp(supervisor_allocation* heap) {
163163
// Record which alarm woke us up, if any. An object may be created so the heap must be functional.
164164
shared_alarm_save_wake_alarm();
165165
// Reset alarm module only after we retrieved the wakeup alarm.
166-
common_hal_alarm_reset();
166+
alarm_reset();
167167
#endif
168168

169169
#if CIRCUITPY_NETWORK
@@ -293,9 +293,13 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
293293
stack_resize();
294294
filesystem_flush();
295295
supervisor_allocation* heap = allocate_remaining_memory();
296+
297+
// Prepare the VM state. Includes an alarm check/reset for sleep.
296298
start_mp(heap);
297299

300+
// This is where the user's python code is actually executed:
298301
found_main = maybe_run_list(supported_filenames, &result);
302+
// If that didn't work, double check the extensions
299303
#if CIRCUITPY_FULL_BUILD
300304
if (!found_main){
301305
found_main = maybe_run_list(double_extension_filenames, &result);
@@ -305,6 +309,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
305309
}
306310
#endif
307311

312+
// Finished executing python code. Cleanup includes a board reset.
308313
cleanup_after_vm(heap);
309314

310315
if (result.return_code & PYEXEC_FORCED_EXIT) {

ports/esp32s2/common-hal/alarm/__init__.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const alarm_sleep_memory_obj_t alarm_sleep_memory_obj = {
5454
},
5555
};
5656

57-
void common_hal_alarm_reset(void) {
57+
void alarm_reset(void) {
5858
alarm_sleep_memory_reset();
5959
alarm_pin_pinalarm_reset();
6060
alarm_time_timealarm_reset();
@@ -144,7 +144,7 @@ mp_obj_t common_hal_alarm_light_sleep_until_alarms(size_t n_alarms, const mp_obj
144144
}
145145

146146
mp_obj_t wake_alarm = _get_wake_alarm(n_alarms, alarms);
147-
alarm_pin_pinalarm_reset_alarms(n_alarms, alarms);
147+
alarm_reset();
148148
return wake_alarm;
149149
}
150150

ports/esp32s2/common-hal/alarm/__init__.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@
3131

3232
const alarm_sleep_memory_obj_t alarm_sleep_memory_obj;
3333

34-
extern void common_hal_alarm_reset(void);
34+
extern void alarm_reset(void);
3535

3636
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H

ports/esp32s2/common-hal/alarm/pin/PinAlarm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#include "components/soc/src/esp32s2/include/hal/gpio_ll.h"
3939
#include "components/xtensa/include/esp_debug_helpers.h"
4040

41-
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull) {
41+
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, const mcu_pin_obj_t *pin, bool value, bool edge, bool pull) {
4242
if (edge) {
4343
mp_raise_ValueError(translate("Cannot wake on pin edge. Only level."));
4444
}
@@ -51,7 +51,7 @@ void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu
5151
self->pull = pull;
5252
}
5353

54-
mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self) {
54+
const mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self) {
5555
return self->pin;
5656
}
5757

ports/esp32s2/common-hal/alarm/pin/PinAlarm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
typedef struct {
3131
mp_obj_base_t base;
32-
mcu_pin_obj_t *pin;
32+
const mcu_pin_obj_t *pin;
3333
bool value;
3434
bool pull;
3535
} alarm_pin_pinalarm_obj_t;

ports/stm/common-hal/alarm/__init__.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
#define STM_ALARM_FLAG RTC->BKP0R
4747

48-
void common_hal_alarm_reset(void) {
48+
void alarm_reset(void) {
4949
// Reset the alarm flag
5050
STM_ALARM_FLAG = 0x00;
5151
// alarm_sleep_memory_reset();
@@ -131,7 +131,7 @@ mp_obj_t common_hal_alarm_light_sleep_until_alarms(size_t n_alarms, const mp_obj
131131
}
132132

133133
mp_obj_t wake_alarm = _get_wake_alarm(n_alarms, alarms);
134-
common_hal_alarm_reset();
134+
alarm_reset();
135135
return wake_alarm;
136136
}
137137

ports/stm/common-hal/alarm/__init__.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@
3131

3232
const alarm_sleep_memory_obj_t alarm_sleep_memory_obj;
3333

34-
extern void common_hal_alarm_reset(void);
34+
extern void alarm_reset(void);
3535

3636
#endif // MICROPY_INCLUDED_STM32_COMMON_HAL_ALARM__INIT__H

ports/stm/common-hal/alarm/pin/PinAlarm.c

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ STATIC void pin_alarm_callback(uint8_t num) {
4343
HAL_GPIO_EXTI_IRQHandler(pin_mask(num));
4444
}
4545

46-
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull) {
46+
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, const mcu_pin_obj_t *pin, bool value, bool edge, bool pull) {
4747
if (!edge) {
4848
mp_raise_NotImplementedError(translate("Only edge detection is available on this hardware"));
4949
}
@@ -70,7 +70,7 @@ void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu
7070
self->pull = pull;
7171
}
7272

73-
mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self) {
73+
const mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self) {
7474
return self->pin;
7575
}
7676

@@ -112,6 +112,7 @@ void alarm_pin_pinalarm_reset(void) {
112112
HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);
113113
alarm_pin_triggered = 0;
114114
woke_up = false;
115+
deep_wkup_enabled = false;
115116
}
116117

117118
// Deep sleep alarms don't actually make use of EXTI, but we pretend they're the same.
@@ -135,17 +136,6 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob
135136
}
136137
}
137138

138-
void alarm_pin_pinalarm_reset_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
139-
alarm_pin_triggered = 0;
140-
deep_wkup_enabled = false;
141-
for (size_t i = 0; i < n_alarms; i++) {
142-
if (MP_OBJ_IS_TYPE(alarms[i], &alarm_pin_pinalarm_type)) {
143-
alarm_pin_pinalarm_obj_t *alarm = MP_OBJ_TO_PTR(alarms[i]);
144-
stm_peripherals_exti_disable(alarm->pin->number);
145-
}
146-
}
147-
}
148-
149139
// If we don't have WKUP enabled, ensure it's disabled
150140
// TODO; is this really required?
151141
void alarm_pin_pinalarm_prepare_for_deep_sleep(void) {

ports/stm/common-hal/alarm/pin/PinAlarm.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,13 @@
2929

3030
typedef struct {
3131
mp_obj_base_t base;
32-
mcu_pin_obj_t *pin;
32+
const mcu_pin_obj_t *pin;
3333
bool value;
3434
bool pull;
3535
} alarm_pin_pinalarm_obj_t;
3636

3737
void alarm_pin_pinalarm_reset(void);
3838
void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms);
39-
void alarm_pin_pinalarm_reset_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms);
4039
void alarm_pin_pinalarm_prepare_for_deep_sleep(void);
4140
mp_obj_t alarm_pin_pinalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms);
4241
bool alarm_pin_pinalarm_woke_us_up(void);

shared-bindings/alarm/pin/PinAlarm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ STATIC mp_obj_t alarm_pin_pinalarm_make_new(const mp_obj_type_t *type, mp_uint_t
7373
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
7474
mp_arg_parse_all(0, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
7575

76-
mcu_pin_obj_t *pin = validate_obj_is_free_pin(args[ARG_pin].u_obj);
76+
const mcu_pin_obj_t *pin = validate_obj_is_free_pin(args[ARG_pin].u_obj);
7777

7878
common_hal_alarm_pin_pinalarm_construct(self,
7979
pin,
@@ -89,7 +89,7 @@ STATIC mp_obj_t alarm_pin_pinalarm_make_new(const mp_obj_type_t *type, mp_uint_t
8989
//|
9090
STATIC mp_obj_t alarm_pin_pinalarm_obj_get_pin(mp_obj_t self_in) {
9191
alarm_pin_pinalarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
92-
mcu_pin_obj_t *pin = common_hal_alarm_pin_pinalarm_get_pin(self);
92+
const mcu_pin_obj_t *pin = common_hal_alarm_pin_pinalarm_get_pin(self);
9393
if (pin == NULL) {
9494
return mp_const_none;
9595
}

shared-bindings/alarm/pin/PinAlarm.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434

3535
extern const mp_obj_type_t alarm_pin_pinalarm_type;
3636

37-
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull);
38-
extern mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self);
37+
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, const mcu_pin_obj_t *pin, bool value, bool edge, bool pull);
38+
extern const mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self);
3939
extern bool common_hal_alarm_pin_pinalarm_get_value(alarm_pin_pinalarm_obj_t *self);
4040
extern bool common_hal_alarm_pin_pinalarm_get_edge(alarm_pin_pinalarm_obj_t *self);
4141
extern bool common_hal_alarm_pin_pinalarm_get_pull(alarm_pin_pinalarm_obj_t *self);

0 commit comments

Comments
 (0)