8000 esp8266/moduos: Convert module to use extmod version. · micropython/micropython@ade2720 · GitHub
[go: up one dir, main page]

Skip to content

Commit ade2720

Browse files
committed
esp8266/moduos: Convert module to use extmod version.
Signed-off-by: Damien George <damien@micropython.org>
1 parent 11b7726 commit ade2720

File tree

5 files changed

+31
-85
lines changed

5 files changed

+31
-85
lines changed

extmod/moduos.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@
5555
#endif
5656

5757
#if MICROPY_PY_UOS_UNAME
58+
59+
#if MICROPY_PY_UOS_UNAME_RELEASE_DYNAMIC
60+
#define CONST_RELEASE
61+
#else
62+
#define CONST_RELEASE const
63+
#endif
64+
5865
STATIC const qstr mp_uos_uname_info_fields[] = {
5966
MP_QSTR_sysname,
6067
MP_QSTR_nodename,
@@ -64,7 +71,7 @@ STATIC const qstr mp_uos_uname_info_fields[] = {
6471
};
6572
STATIC const MP_DEFINE_STR_OBJ(mp_uos_uname_info_sysname_obj, MICROPY_PY_SYS_PLATFORM);
6673
STATIC const MP_DEFINE_STR_OBJ(mp_uos_uname_info_nodename_obj, MICROPY_PY_SYS_PLATFORM);
67-
STATIC const MP_DEFINE_STR_OBJ(mp_uos_uname_info_release_obj, MICROPY_VERSION_STRING);
74+
STATIC CONST_RELEASE MP_DEFINE_STR_OBJ(mp_uos_uname_info_release_obj, MICROPY_VERSION_STRING);
6875
STATIC const MP_DEFINE_STR_OBJ(mp_uos_uname_info_version_obj, MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE MICROPY_BUILD_TYPE_PAREN);
6976
STATIC const MP_DEFINE_STR_OBJ(mp_uos_uname_info_machine_obj, MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME);
7077

@@ -80,9 +87,15 @@ STATIC MP_DEFINE_ATTRTUPLE(
8087
);
8188

8289
STATIC mp_obj_t mp_uos_uname(void) {
90+
#if MICROPY_PY_UOS_UNAME_RELEASE_DYNAMIC
91+
const char *release = mp_uos_uname_release();
92+
mp_uos_uname_info_release_obj.len = strlen(release);
93+
mp_uos_uname_info_release_obj.data = (const byte *)release;
94+
#endif
8395
return MP_OBJ_FROM_PTR(&mp_uos_uname_info_obj);
8496
}
8597
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_uos_uname_obj, mp_uos_uname);
98+
8699
#endif
87100

88101
STATIC const mp_rom_map_elem_t os_module_globals_table[] = {

ports/esp8266/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ SRC_C = \
102102
modesp.c \
103103
modnetwork.c \
104104
modutime.c \
105-
moduos.c \
106105
ets_alt_task.c \
107106
fatfs_port.c \
108107
posix_helpers.c \

ports/esp8266/main.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@ STATIC void mp_reset(void) {
6969
args[1] = MP_OBJ_NEW_SMALL_INT(115200);
7070
args[0] = pyb_uart_type.make_new(&pyb_uart_type, 2, 0, args);
7171
args[1] = MP_OBJ_NEW_SMALL_INT(1);
72-
extern mp_obj_t os_dupterm(size_t n_args, const mp_obj_t *args);
73-
os_dupterm(2, args);
72+
mp_uos_dupterm_obj.fun.var(2, args);
7473
}
7574

7675
#if MICROPY_MODULE_FROZEN

ports/esp8266/moduos.c

Lines changed: 9 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -37,37 +37,11 @@
3737
#include "esp_mphal.h"
3838
#include "user_interface.h"
3939

40-
STATIC const qstr os_uname_info_fields[] = {
41-
MP_QSTR_sysname, MP_QSTR_nodename,
42-
MP_QSTR_release, MP_QSTR_version, MP_QSTR_machine
43-
};
44-
STATIC const MP_DEFINE_STR_OBJ(os_uname_info_sysname_obj, MICROPY_PY_SYS_PLATFORM);
45-
STATIC const MP_DEFINE_STR_OBJ(os_uname_info_nodename_obj, MICROPY_PY_SYS_PLATFORM);
46-
STATIC const MP_DEFINE_STR_OBJ(os_uname_info_version_obj, MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE);
47-
STATIC const MP_DEFINE_STR_OBJ(os_uname_info_machine_obj, MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME);
48-
49-
STATIC mp_obj_tuple_t os_uname_info_obj = {
50-
.base = {&mp_type_attrtuple},
51-
.len = 5,
52-
.items = {
53-
(mp_obj_t)&os_uname_info_sysname_obj,
54-
(mp_obj_t)&os_uname_info_nodename_obj,
55-
NULL,
56-
(mp_obj_t)&os_uname_info_version_obj,
57-
(mp_obj_t)&os_uname_info_machine_obj,
58-
(void *)os_uname_info_fields,
59-
}
60-
};
61-
62-
STATIC mp_obj_t os_uname(void) {
63-
// We must populate the "release" field each time in case it was GC'd since the last call.
64-
const char *ver = system_get_sdk_version();
65-
os_uname_info_obj.items[2] = mp_obj_new_str(ver, strlen(ver));
66-
return (mp_obj_t)&os_uname_info_obj;
40+
STATIC const char *mp_uos_uname_release(void) {
41+
return system_get_sdk_version();
6742
}
68-
STATIC MP_DEFINE_CONST_FUN_OBJ_0(os_uname_obj, os_uname);
6943

70-
STATIC mp_obj_t os_urandom(mp_obj_t num) {
44+
STATIC mp_obj_t mp_uos_urandom(mp_obj_t num) {
7145
mp_int_t n = mp_obj_get_int(num);
7246
vstr_t vstr;
7347
vstr_init_len(&vstr, n);
@@ -76,64 +50,20 @@ STATIC mp_obj_t os_urandom(mp_obj_t num) {
7650
}
7751
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
7852
}
79-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_urandom_obj, os_urandom);
53+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_uos_urandom_obj, mp_uos_urandom);
8054

81-
// We wrap the mp_uos_dupterm function to detect if a UART is attached or not
82-
mp_obj_t os_dupterm(size_t n_args, const mp_obj_t *args) {
83-
mp_obj_t prev_obj = mp_uos_dupterm_obj.fun.var(n_args, args);
84-
if (mp_obj_get_type(args[0]) == &pyb_uart_type) {
55+
void mp_uos_dupterm_stream_detached_attached(mp_obj_t stream_detached, mp_obj_t stream_attached) {
56+
if (mp_obj_get_type(stream_attached) == &pyb_uart_type) {
8557
++uart_attached_to_dupterm;
8658
}
87-
if (mp_obj_get_type(prev_obj) == &pyb_uart_type) {
59+
if (mp_obj_get_type(stream_detached) == &pyb_uart_type) {
8860
--uart_attached_to_dupterm;
8961
}
90-
return prev_obj;
9162
}
92-
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(os_dupterm_obj, 1, 2, os_dupterm);
9363

94-
STATIC mp_obj_t os_dupterm_notify(mp_obj_t obj_in) {
64+
STATIC mp_obj_t mp_uos_dupterm_notify(mp_obj_t obj_in) {
9565
(void)obj_in;
9666
mp_hal_signal_dupterm_input();
9767
return mp_const_none;
9868
}
99-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_dupterm_notify_obj, os_dupterm_notify);
100-
101-
STATIC const mp_rom_map_elem_t os_module_globals_table[] = {
102-
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_uos) },
103-
{ MP_ROM_QSTR(MP_QSTR_uname), MP_ROM_PTR(&os_uname_obj) },
104-
{ MP_ROM_QSTR(MP_QSTR_urandom), MP_ROM_PTR(&os_urandom_obj) },
105-
#if MICROPY_PY_OS_DUPTERM
106-
{ MP_ROM_QSTR(MP_QSTR_dupterm), MP_ROM_PTR(&os_dupterm_obj) },
107-
{ MP_ROM_QSTR(MP_QSTR_dupterm_notify), MP_ROM_PTR(&os_dupterm_notify_obj) },
108-
#endif
109-
#if MICROPY_VFS
110-
{ MP_ROM_QSTR(MP_QSTR_ilistdir), MP_ROM_PTR(&mp_vfs_ilistdir_obj) },
111-
{ MP_ROM_QSTR(MP_QSTR_listdir), MP_ROM_PTR(&mp_vfs_listdir_obj) },
112-
{ MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&mp_vfs_mkdir_obj) },
113-
{ MP_ROM_QSTR(MP_QSTR_rmdir), MP_ROM_PTR(&mp_vfs_rmdir_obj) },
114-
{ MP_ROM_QSTR(MP_QSTR_chdir), MP_ROM_PTR(&mp_vfs_chdir_obj) },
115-
{ MP_ROM_QSTR(MP_QSTR_getcwd), MP_ROM_PTR(&mp_vfs_getcwd_obj) },
116-
{ MP_ROM_QSTR(MP_QSTR_remove), MP_ROM_PTR(&mp_vfs_remove_obj) },
117-
{ MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&mp_vfs_rename_obj) },
118-
{ MP_ROM_QSTR(MP_QSTR_stat), MP_ROM_PTR(&mp_vfs_stat_obj) },
119-
{ MP_ROM_QSTR(MP_QSTR_statvfs), MP_ROM_PTR(&mp_vfs_statvfs_obj) },
120-
{ MP_ROM_QSTR(MP_QSTR_mount), MP_ROM_PTR(&mp_vfs_mount_obj) },
121-
{ MP_ROM_QSTR(MP_QSTR_umount), MP_ROM_PTR(&mp_vfs_umount_obj) },
122-
#if MICROPY_VFS_FAT
123-
{ MP_ROM_QSTR(MP_QSTR_VfsFat), MP_ROM_PTR(&mp_fat_vfs_type) },
124-
#endif
125-
#if MICROPY_VFS_LFS1
126-
{ MP_ROM_QSTR(MP_QSTR_VfsLfs1), MP_ROM_PTR(&mp_type_vfs_lfs1) },
127-
#endif
128-
#if MICROPY_VFS_LFS2
129-
{ MP_ROM_QSTR(MP_QSTR_VfsLfs2), MP_ROM_PTR(&mp_type_vfs_lfs2) },
130-
#endif
131-
#endif
132-
};
133-
134-
STATIC MP_DEFINE_CONST_DICT(os_module_globals, os_module_globals_table);
135-
136-
const mp_obj_module_t uos_module = {
137-
.base = { &mp_type_module },
138-
.globals = (mp_obj_dict_t *)&os_module_globals,
139-
};
69+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_uos_dupterm_notify_obj, mp_uos_dupterm_notify);

ports/esp8266/mpconfigport.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,14 @@
9595
#define MICROPY_PY_WEBREPL_DELAY (20)
9696
#define MICROPY_PY_WEBREPL_STATIC_FILEBUF (1)
9797
#define MICROPY_PY_MICROPYTHON_MEM_INFO (1)
98+
#define MICROPY_PY_UOS (1)
99+
#define MICROPY_PY_UOS_INCLUDEFILE "ports/esp8266/moduos.c"
98100
#define MICROPY_PY_OS_DUPTERM (2)
101+
#define MICROPY_PY_UOS_DUPTERM_NOTIFY (1)
102+
#define MICROPY_PY_UOS_DUPTERM_STREAM_DETACHED_ATTACHED (1)
103+
#define MICROPY_PY_UOS_UNAME (1)
104+
#define MICROPY_PY_UOS_UNAME_RELEASE_DYNAMIC (1)
105+
#define MICROPY_PY_UOS_URANDOM (1)
99106
#define MICROPY_CPYTHON_COMPAT (1)
100107
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
101108
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
@@ -172,7 +179,6 @@ extern const struct _mp_print_t mp_debug_print;
172179
extern const struct _mp_obj_module_t esp_module;
173180
extern const struct _mp_obj_module_t network_module;
174181
extern const struct _mp_obj_module_t utime_module;
175-
extern const struct _mp_obj_module_t uos_module;
176182
extern const struct _mp_obj_module_t mp_module_lwip;
177183
extern const struct _mp_obj_module_t mp_module_onewire;
178184

@@ -181,7 +187,6 @@ extern const struct _mp_obj_module_t mp_module_onewire;
181187
{ MP_ROM_QSTR(MP_QSTR_usocket), MP_ROM_PTR(&mp_module_lwip) }, \
182188
{ MP_ROM_QSTR(MP_QSTR_network), MP_ROM_PTR(&network_module) }, \
183189
{ MP_ROM_QSTR(MP_QSTR_utime), MP_ROM_PTR(&utime_module) }, \
184-
{ MP_ROM_QSTR(MP_QSTR_uos), MP_ROM_PTR(&uos_module) }, \
185190
{ MP_ROM_QSTR(MP_QSTR__onewire), MP_ROM_PTR(&mp_modu 4653 le_onewire) }, \
186191

187192
#define MP_STATE_PORT MP_STATE_VM

0 commit comments

Comments
 (0)
0