10000 RP2: Add networking support. · micropython/micropython@9a0d5e3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9a0d5e3

Browse files
committed
RP2: Add networking support.
1 parent d9749f9 commit 9a0d5e3

File tree

5 files changed

+44
-3
lines changed

5 files changed

+44
-3
lines changed

extmod/extmod.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ set(MICROPY_SOURCE_EXTMOD
3232
${MICROPY_EXTMOD_DIR}/modutimeq.c
3333
${MICROPY_EXTMOD_DIR}/moduwebsocket.c
3434
${MICROPY_EXTMOD_DIR}/moduzlib.c
35+
${MICROPY_EXTMOD_DIR}/modusocket.c
36+
${MICROPY_EXTMOD_DIR}/modnetwork.c
3537
${MICROPY_EXTMOD_DIR}/modwebrepl.c
3638
${MICROPY_EXTMOD_DIR}/uos_dupterm.c
3739
${MICROPY_EXTMOD_DIR}/utime_mphal.c

extmod/modusocket.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
#include "shared/netutils/netutils.h"
3636
#include "modnetwork.h"
3737

38-
#if MICROPY_PY_USOCKET && !MICROPY_PY_LWIP
38+
#if MICROPY_PY_NETWORK && MICROPY_PY_USOCKET && !MICROPY_PY_LWIP
3939

4040
/******************************************************************************/
4141
// socket class
@@ -517,4 +517,5 @@ const mp_obj_module_t mp_module_usocket = {
517517
.globals = (mp_obj_dict_t *)&mp_module_usocket_globals,
518518
};
519519

520-
#endif // MICROPY_PY_USOCKET && !MICROPY_PY_LWIP
520+
#endif // MICROPY_PY_NETWORK && MICROPY_PY_USOCKET && !MICROPY_PY_LWIP
521+

ports/rp2/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ set(MICROPY_SOURCE_LIB
7474
${MICROPY_DIR}/shared/runtime/stdout_helpers.c
7575
${MICROPY_DIR}/shared/runtime/sys_stdio_mphal.c
7676
${MICROPY_DIR}/shared/timeutils/timeutils.c
77+
${MICROPY_DIR}/shared/netutils/netutils.c
7778
)
7879

7980
set(MICROPY_SOURCE_DRIVERS

ports/rp2/main.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
#include "modrp2.h"
4242
#include "genhdr/mpversion.h"
4343

44+
#if MICROPY_PY_NETWORK
45+
#include "extmod/modnetwork.h"
46+
#endif
47+
4448
#include "pico/stdlib.h"
4549
#include "pico/binary_info.h"
4650
#include "hardware/rtc.h"
@@ -107,6 +111,10 @@ int main(int argc, char **argv) {
107111
machine_pin_init();
108112
rp2_pio_init();
109113

114+
#if MICROPY_PY_NETWORK
115+
mod_network_init();
116+
#endif
117+
110118
// Execute _boot.py to set up the filesystem.
111119
pyexec_frozen_module("_boot.py");
112120

@@ -136,6 +144,9 @@ int main(int argc, char **argv) {
136144

137145
soft_reset_exit:
138146
mp_printf(MP_PYTHON_PRINTER, "MPY: soft reboot\n");
147+
#if MICROPY_PY_NETWORK
148+
mod_network_deinit();
149+
#endif
139150
rp2_pio_deinit();
140151
machine_pin_deinit();
141152
#if MICROPY_PY_THREAD

ports/rp2/mpconfigport.h

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@
146146
#define MICROPY_VFS (1)
147147
#define MICROPY_VFS_LFS2 (1)
148148
#define MICROPY_VFS_FAT (1)
149+
#ifndef MICROPY_PY_USOCKET
150+
#define MICROPY_PY_USOCKET (0)
151+
#endif
152+
#ifndef MICROPY_PY_NETWORK
153+
#define MICROPY_PY_NETWORK (0)
154+
#endif
149155

150156
// fatfs configuration
151157
#define MICROPY_FATFS_ENABLE_LFN (1)
@@ -170,26 +176,46 @@ extern const struct _mp_obj_module_t mp_module_onewire;
170176
extern const struct _mp_obj_module_t mp_module_rp2;
171177
extern const struct _mp_obj_module_t mp_module_uos;
172178
extern const struct _mp_obj_module_t mp_module_utime;
179+
extern const struct _mp_obj_module_t mp_module_usocket;
180+
extern const struct _mp_obj_module_t mp_module_network;
181+
182+
#if MICROPY_PY_USOCKET
183+
#define SOCKET_BUILTIN_MODULE { MP_ROM_QSTR(MP_QSTR_usocket), MP_ROM_PTR(&mp_module_usocket) },
184+
#else
185+
#define SOCKET_BUILTIN_MODULE
186+
#endif
187+
#if MICROPY_PY_NETWORK
188+
#define NETWORK_BUILTIN_MODULE { MP_ROM_QSTR(MP_QSTR_network), MP_ROM_PTR(&mp_module_network) },
189+
#define NETWORK_ROOT_POINTERS mp_obj_list_t mod_network_nic_list;
190+
#else
191+
#define NETWORK_BUILTIN_MODULE
192+
#define NETWORK_ROOT_POINTERS
193+
#endif
173194

174195
#define MICROPY_PORT_BUILTIN_MODULES \
175196
{ MP_OBJ_NEW_QSTR(MP_QSTR_machine), (mp_obj_t)&mp_module_machine }, \
176197
{ MP_OBJ_NEW_QSTR(MP_QSTR__onewire), (mp_obj_t)&mp_module_onewire }, \
177198
{ MP_OBJ_NEW_QSTR(MP_QSTR__rp2), (mp_obj_t)&mp_module_rp2 }, \
178199
{ MP_ROM_QSTR(MP_QSTR_uos), MP_ROM_PTR(&mp_module_uos) }, \
179200
{ MP_ROM_QSTR(MP_QSTR_utime), MP_ROM_PTR(&mp_module_utime) }, \
201+
SOCKET_BUILTIN_MODULE \
202+
NETWORK_BUILTIN_MODULE \
180203

181204
#ifndef MICROPY_BOARD_ROOT_POINTERS
182205
#define MICROPY_BOARD_ROOT_POINTERS
183206
#endif
184207

208+
#define MICROPY_PORT_NETWORK_INTERFACES \
209+
185210
#define MICROPY_PORT_ROOT_POINTERS \
186211
const char *readline_hist[8]; \
187212
void *machine_pin_irq_obj[30]; \
188213
void *rp2_pio_irq_obj[2]; \
189214
void *rp2_state_machine_irq_obj[8]; \
190215
void *rp2_uart_rx_buffer[2]; \
191216
void *rp2_uart_tx_buffer[2]; \
192-
MICROPY_BOARD_ROOT_POINTERS \
217+
NETWORK_ROOT_POINTERS \
218+
MICROPY_BOARD_ROOT_POINTERS \
193219

194220
#define MP_STATE_PORT MP_STATE_VM
195221

0 commit comments

Comments
 (0)
0