Skip to content

Commit e4c6699

Browse files
committed
compiles
1 parent 39e1f52 commit e4c6699

File tree

15 files changed

+98
-73
lines changed

15 files changed

+98
-73
lines changed

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

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,50 +26,56 @@
2626
*/
2727

2828
#include "shared-bindings/alarm/__init__.h"
29-
#include "shared-bindings/alarm_io/__init__.h"
30-
#include "shared-bindings/alarm_time/__init__.h"
29+
#include "shared-bindings/alarm/pin/PinAlarm.h"
30+
#include "shared-bindings/alarm/time/DurationAlarm.h"
3131

3232
#include "esp_sleep.h"
3333

3434
void common_hal_alarm_disable_all(void) {
3535
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
3636
}
3737

38-
mp_obj_t common_hal_alarm_get_reset_reason(void) {
38+
alarm_reset_reason_t common_hal_alarm_get_reset_reason(void) {
3939
switch (esp_sleep_get_wakeup_cause()) {
4040
case ESP_SLEEP_WAKEUP_TIMER:
4141
return RESET_REASON_DEEP_SLEEP_ALARM;
42+
4243
case ESP_SLEEP_WAKEUP_EXT0:
4344
return RESET_REASON_DEEP_SLEEP_ALARM;
45+
4446
case ESP_SLEEP_WAKEUP_TOUCHPAD:
4547
//TODO: implement TouchIO
4648
case ESP_SLEEP_WAKEUP_UNDEFINED:
4749
default:
48-
return mp_const_none;
49-
break;
50+
return RESET_REASON_INVALID;
5051
}
5152
}
5253

5354

5455
mp_obj_t common_hal_alarm_get_wake_alarm(void) {
5556
switch (esp_sleep_get_wakeup_cause()) {
56-
case ESP_SLEEP_WAKEUP_TIMER: ;
57-
//Wake up from timer.
58-
alarm_time_obj_t *timer = m_new_obj(alarm_time_obj_t);
59-
timer->base.type = &alarm_time_type;
57+
case ESP_SLEEP_WAKEUP_TIMER: {
58+
// Wake up from timer.
59+
alarm_time_duration_alarm_obj_t *timer = m_new_obj(alarm_time_duration_alarm_obj_t);
60+
timer->base.type = &alarm_time_duration_alarm_type;
6061
return timer;
61-
case ESP_SLEEP_WAKEUP_EXT0: ;
62-
//Wake up from GPIO
63-
alarm_io_obj_t *ext0 = m_new_obj(alarm_io_obj_t);
64-
ext0->base.type = &alarm_io_type;
62+
}
63+
64+
case ESP_SLEEP_WAKEUP_EXT0: {
65+
// Wake up from GPIO
66+
alarm_pin_pin_alarm_obj_t *ext0 = m_new_obj(alarm_pin_pin_alarm_obj_t);
67+
ext0->base.type = &alarm_pin_pin_alarm_type;
6568
return ext0;
69+
}
70+
6671
case ESP_SLEEP_WAKEUP_TOUCHPAD:
67-
//TODO: implement TouchIO
68-
//Wake up from touch on pad, esp_sleep_get_touchpad_wakeup_status()
72+
// TODO: implement TouchIO
73+
// Wake up from touch on pad, esp_sleep_get_touchpad_wakeup_status()
6974
break;
75+
7076
case ESP_SLEEP_WAKEUP_UNDEFINED:
7177
default:
72-
//Not a deep sleep reset
78+
// Not a deep sleep reset.
7379
break;
7480
}
7581
return mp_const_none;

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,17 @@
2727

2828
#include "esp_sleep.h"
2929

30-
#include "shared-bindings/alarm/time/DurationAlarm.h"
30+
#include "shared-bindings/alarm/pin/PinAlarm.h"
31+
#include "shared-bindings/microcontroller/Pin.h"
3132

32-
void common_hal_alarm_pin_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, mcu_pin_obj_t *pin, bool level, bool edge, bool pull) {
33+
void common_hal_alarm_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, const mcu_pin_obj_t *pin, bool level, bool edge, bool pull) {
3334
self->pin = pin;
3435
self->level = level;
3536
self->edge = edge;
3637
self->pull = pull;
38+
}
3739

38-
mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self) {
40+
const mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self) {
3941
return self->pin;
4042
}
4143

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 level;
3434
bool edge;
3535
bool pull;

ports/esp32s2/common-hal/alarm/time/DurationAlarm.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
#include "esp_sleep.h"
2929

30+
#include "py/runtime.h"
31+
3032
#include "shared-bindings/alarm/time/DurationAlarm.h"
3133

3234
void common_hal_alarm_time_duration_alarm_construct(alarm_time_duration_alarm_obj_t *self, mp_float_t duration) {
@@ -36,7 +38,8 @@ void common_hal_alarm_time_duration_alarm_construct(alarm_time_duration_alarm_ob
3638
mp_float_t common_hal_alarm_time_duration_alarm_get_duration(alarm_time_duration_alarm_obj_t *self) {
3739
return self->duration;
3840
}
39-
void common_hal_alarm_time_duration_alarm_enable(alarm_time_duration_alarm_obj_t *self)
41+
42+
void common_hal_alarm_time_duration_alarm_enable(alarm_time_duration_alarm_obj_t *self) {
4043
if (esp_sleep_enable_timer_wakeup((uint64_t) (self->duration * 1000000)) == ESP_ERR_INVALID_ARG) {
4144
mp_raise_ValueError(translate("duration out of range"));
4245
}

py/circuitpy_defns.mk

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,6 @@ SRC_COMMON_HAL_ALL = \
359359
rtc/__init__.c \
360360
sdioio/SDCard.c \
361361
sdioio/__init__.c \
362-
sleepio/__init__.c \
363-
sleepio/ResetReason.c \
364362
socketpool/__init__.c \
365363
socketpool/SocketPool.c \
366364
socketpool/Socket.c \
@@ -395,9 +393,10 @@ $(filter $(SRC_PATTERNS), \
395393
_bleio/Address.c \
396394
_bleio/Attribute.c \
397395
_bleio/ScanEntry.c \
398-
canio/Match.c \
399396
_eve/__init__.c \
397+
alarm/ResetReason.c \
400398
camera/ImageFormat.c \
399+
canio/Match.c \
401400
digitalio/Direction.c \
402401
digitalio/DriveMode.c \
403402
digitalio/Pull.c \
@@ -414,9 +413,6 @@ SRC_SHARED_MODULE_ALL = \
414413
_bleio/Attribute.c \
415414
_bleio/ScanEntry.c \
416415
_bleio/ScanResults.c \
417-
canio/Match.c \
418-
canio/Message.c \
419-
canio/RemoteTransmissionRequest.c \
420416
_eve/__init__.c \
421417
_pixelbuf/PixelBuf.c \
422418
_pixelbuf/__init__.c \
@@ -441,6 +437,9 @@ SRC_SHARED_MODULE_ALL = \
441437
bitbangio/__init__.c \
442438
board/__init__.c \
443439
busio/OneWire.c \
440+
canio/Match.c \
441+
canio/Message.c \
442+
canio/RemoteTransmissionRequest.c \
444443
displayio/Bitmap.c \
445444
displayio/ColorConverter.c \
446445
displayio/Display.c \

py/enum.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ typedef struct {
3535
} cp_enum_obj_t;
3636

3737
#define MAKE_ENUM_VALUE(type, prefix, name, value) \
38-
STATIC const cp_enum_obj_t prefix ## _ ## name ## _obj = { \
38+
const cp_enum_obj_t prefix ## _ ## name ## _obj = { \
3939
{ &type }, value, MP_QSTR_ ## name, \
4040
}
4141

4242
#define MAKE_ENUM_MAP(name) \
43-
STATIC const mp_rom_map_elem_t name ## _locals_table[] =
43+
const mp_rom_map_elem_t name ## _locals_table[] =
4444

4545
#define MAKE_ENUM_MAP_ENTRY(prefix, name) \
4646
{ MP_ROM_QSTR(MP_QSTR_ ## name), MP_ROM_PTR(&prefix ## _ ## name ## _obj) }

py/genlast.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ def preprocess(command, output_dir, fn):
4747
print(e, file=sys.stderr)
4848

4949
def maybe_preprocess(command, output_dir, fn):
50-
if subprocess.call(["grep", "-lqE", "(MP_QSTR|translate)", fn]) == 0:
50+
# Preprocess the source file if it contains "MP_QSTR", "translate",
51+
# or if it uses enum.h (which generates "MP_QSTR" strings.
52+
if subprocess.call(["grep", "-lqE", r"(MP_QSTR|translate|enum\.h)", fn]) == 0:
5153
preprocess(command, output_dir, fn)
5254

5355
if __name__ == '__main__':

shared-bindings/alarm/ResetReason.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,25 @@
2424
* THE SOFTWARE.
2525
*/
2626

27+
#include "py/obj.h"
2728
#include "py/enum.h"
2829

2930
#include "shared-bindings/alarm/ResetReason.h"
3031

31-
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, POWER_VALID, RESET_REASON_POWER_ON);
32+
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, INVALID, RESET_REASON_INVALID);
33+
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, POWER_ON, RESET_REASON_POWER_ON);
34+
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, BROWNOUT, RESET_REASON_BROWNOUT);
3235
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, SOFTWARE, RESET_REASON_SOFTWARE);
3336
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, DEEP_SLEEP_ALARM, RESET_REASON_DEEP_SLEEP_ALARM);
34-
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, EXTERNAL, RESET_REASON_EXTERNAL);
37+
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, RESET_PIN, RESET_REASON_RESET_PIN);
38+
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, WATCHDOG, RESET_REASON_WATCHDOG);
3539

3640
//| class ResetReason:
3741
//| """The reason the chip was last reset"""
3842
//|
43+
//| INVALID: object
44+
//| """Invalid reason: indicates an internal error."""
45+
//|
3946
//| POWER_ON: object
4047
//| """The chip was started from power off."""
4148
//|
@@ -55,6 +62,7 @@ MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, EXTERNAL, RESET_REASON_EX
5562
//| """The chip was reset by its watchdog timer."""
5663
//|
5764
MAKE_ENUM_MAP(alarm_reset_reason) {
65+
MAKE_ENUM_MAP_ENTRY(reset_reason, INVALID),
5866
MAKE_ENUM_MAP_ENTRY(reset_reason, POWER_ON),
5967
MAKE_ENUM_MAP_ENTRY(reset_reason, BROWNOUT),
6068
MAKE_ENUM_MAP_ENTRY(reset_reason, SOFTWARE),

shared-bindings/alarm/ResetReason.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@
2727
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM__RESET_REASON__H
2828
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM__RESET_REASON__H
2929

30+
#include "py/obj.h"
31+
#include "py/enum.h"
32+
3033
typedef enum {
34+
RESET_REASON_INVALID,
3135
RESET_REASON_POWER_ON,
3236
RESET_REASON_BROWNOUT,
3337
RESET_REASON_SOFTWARE,
@@ -36,8 +40,8 @@ typedef enum {
3640
RESET_REASON_WATCHDOG,
3741
} alarm_reset_reason_t;
3842

39-
extern const mp_obj_type_t alarm_reset_reason_type;
43+
extern const cp_enum_obj_t reset_reason_INVALID_obj;
4044

41-
extern alarm_reset_reason_t common_hal_alarm_get_reset_reason(void);
45+
extern const mp_obj_type_t alarm_reset_reason_type;
4246

4347
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM__RESET_REASON__H

shared-bindings/alarm/__init__.c

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@
3434
#include "py/obj.h"
3535
#include "py/runtime.h"
3636

37+
#include "shared-bindings/alarm/__init__.h"
38+
#include "shared-bindings/alarm/ResetReason.h"
39+
#include "shared-bindings/alarm/pin/PinAlarm.h"
40+
#include "shared-bindings/alarm/time/DurationAlarm.h"
41+
3742
STATIC mp_obj_t alarm_sleep_until_alarm(size_t n_args, const mp_obj_t *args) {
3843
// TODO
3944
return mp_const_none;
@@ -56,47 +61,47 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(alarm_restart_on_alarm_obj, 1, MP_OBJ_FUN_AR
5661
//| """The `alarm.pin` module contains alarm attributes and classes related to pins
5762
//| """
5863
//|
59-
mp_map_elem_t alarm_pin_globals_table[] = {
64+
STATIC const mp_map_elem_t alarm_pin_globals_table[] = {
6065
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_pin) },
6166

62-
{ MP_ROM_QSTR(MP_QSTR_PinAlarm), MP_ROM_PTR(&alarm_pin_pin_alarm_type) },
67+
{ MP_ROM_QSTR(MP_QSTR_PinAlarm), MP_OBJ_FROM_PTR(&alarm_pin_pin_alarm_type) },
6368
};
6469

6570
STATIC MP_DEFINE_CONST_DICT(alarm_pin_globals, alarm_pin_globals_table);
6671

67-
const mp_obj_module_t alarm_pin_module = {
72+
STATIC const mp_obj_module_t alarm_pin_module = {
6873
.base = { &mp_type_module },
69-
.globals = (mp_obj_dict_t*)&alarm_pinn_globals,
74+
.globals = (mp_obj_dict_t*)&alarm_pin_globals,
7075
};
7176

7277
//| """The `alarm.time` module contains alarm attributes and classes related to time-keeping.
7378
//| """
7479
//|
75-
mp_map_elem_t alarm_time_globals_table[] = {
80+
STATIC const mp_map_elem_t alarm_time_globals_table[] = {
7681
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_time) },
7782

78-
{ MP_ROM_QSTR(MP_QSTR_DurationAlarm), MP_ROM_PTR(&alarm_time_duration_alarm_type) },
83+
{ MP_ROM_QSTR(MP_QSTR_DurationAlarm), MP_OBJ_FROM_PTR(&alarm_time_duration_alarm_type) },
7984
};
8085

8186
STATIC MP_DEFINE_CONST_DICT(alarm_time_globals, alarm_time_globals_table);
8287

83-
const mp_obj_module_t alarm_time_module = {
88+
STATIC const mp_obj_module_t alarm_time_module = {
8489
.base = { &mp_type_module },
8590
.globals = (mp_obj_dict_t*)&alarm_time_globals,
8691
};
8792

88-
mp_map_elem_t alarm_module_globals_table[] = {
93+
STATIC mp_map_elem_t alarm_module_globals_table[] = {
8994
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_alarm) },
9095

9196
// wake_alarm and reset_reason are mutable attributes.
9297
{ MP_ROM_QSTR(MP_QSTR_wake_alarm), mp_const_none },
93-
{ MP_ROM_QSTR(MP_QSTR_reset_reason), mp_const_none },
98+
{ MP_ROM_QSTR(MP_QSTR_reset_reason), MP_OBJ_FROM_PTR(&reset_reason_INVALID_obj) },
9499

95-
{ MP_ROM_QSTR(MP_QSTR_sleep_until_alarm), MP_ROM_PTR(&alarm_sleep_until_alarm_obj) },
96-
{ MP_ROM_QSTR(MP_QSTR_restart_on_alarm), MP_ROM_PTR(&alarm_restart_on_alarm_obj) },
100+
{ MP_ROM_QSTR(MP_QSTR_sleep_until_alarm), MP_OBJ_FROM_PTR(&alarm_sleep_until_alarm_obj) },
101+
{ MP_ROM_QSTR(MP_QSTR_restart_on_alarm), MP_OBJ_FROM_PTR(&alarm_restart_on_alarm_obj) },
97102

98-
{ MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&alarm_pin_module) },
99-
{ MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&alarm_time_module) }
103+
{ MP_ROM_QSTR(MP_QSTR_pin), MP_OBJ_FROM_PTR(&alarm_pin_module) },
104+
{ MP_ROM_QSTR(MP_QSTR_time), MP_OBJ_FROM_PTR(&alarm_time_module) }
100105

101106
};
102107
STATIC MP_DEFINE_MUTABLE_DICT(alarm_module_globals, alarm_module_globals_table);
@@ -105,27 +110,17 @@ void common_hal_alarm_set_wake_alarm(mp_obj_t alarm) {
105110
// Equivalent of:
106111
// alarm.wake_alarm = alarm
107112
mp_map_elem_t *elem =
108-
mp_map_lookup(&alarm_module_globals_table, MP_ROM_QSTR(MP_QSTR_wake_alarm), MP_MAP_LOOKUP);
113+
mp_map_lookup(&alarm_module_globals.map, MP_ROM_QSTR(MP_QSTR_wake_alarm), MP_MAP_LOOKUP);
109114
if (elem) {
110115
elem->value = alarm;
111116
}
112117
}
113118

114-
alarm_reset_reason_t common_hal_alarm_get_reset_reason(void) {
115-
mp_map_elem_t *elem =
116-
mp_map_lookup(&alarm_module_globals_table, MP_ROM_QSTR(MP_QSTR_reset_reason), MP_MAP_LOOKUP);
117-
if (elem) {
118-
return elem->value;
119-
} else {
120-
return mp_const_none;
121-
}
122-
}
123-
124119
void common_hal_alarm_set_reset_reason(mp_obj_t reset_reason) {
125120
// Equivalent of:
126121
// alarm.reset_reason = reset_reason
127122
mp_map_elem_t *elem =
128-
mp_map_lookup(&alarm_module_globals_table, MP_ROM_QSTR(MP_QSTR_reset_reason), MP_MAP_LOOKUP);
123+
mp_map_lookup(&alarm_module_globals.map, MP_ROM_QSTR(MP_QSTR_reset_reason), MP_MAP_LOOKUP);
129124
if (elem) {
130125
elem->value = reset_reason;
131126
}

0 commit comments

Comments
 (0)