diff options
| author | robert-hh <robert@hammelrath.com> | 2022-08-04 20:19:57 +0200 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-08-23 14:58:13 +1000 |
| commit | c3305c49e422369119ab211dc8fb2366aa6d7d53 (patch) | |
| tree | 799aca0390859f2eefeaecd42a87cf988bcde1d2 | |
| parent | 717924001d8da40032fd56aa3ba2207059f550d2 (diff) | |
stm32: Add definitions required for lwIP version of Wiznet NIC.
| -rw-r--r-- | ports/stm32/mphalport.h | 8 | ||||
| -rw-r--r-- | ports/stm32/mpnetworkport.c | 5 | ||||
| -rw-r--r-- | ports/stm32/pendsv.h | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/ports/stm32/mphalport.h b/ports/stm32/mphalport.h index 47bb1f8c8..8028782a9 100644 --- a/ports/stm32/mphalport.h +++ b/ports/stm32/mphalport.h @@ -96,11 +96,19 @@ static inline mp_uint_t mp_hal_ticks_cpu(void) { #define mp_hal_pin_od_high(p) mp_hal_pin_high(p) #define mp_hal_pin_read(p) (((p)->gpio->IDR >> (p)->pin) & 1) #define mp_hal_pin_write(p, v) ((v) ? mp_hal_pin_high(p) : mp_hal_pin_low(p)) +#define mp_hal_pin_interrupt(pin, handler, trigger, hard) extint_register_pin(pin, trigger, hard, handler) + +enum mp_hal_pin_interrupt_trigger { + MP_HAL_PIN_TRIGGER_NONE, + MP_HAL_PIN_TRIGGER_FALL = GPIO_MODE_IT_FALLING, + MP_HAL_PIN_TRIGGER_RISE = GPIO_MODE_IT_RISING, +}; void mp_hal_gpio_clock_enable(GPIO_TypeDef *gpio); void mp_hal_pin_config(mp_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, uint32_t alt); bool mp_hal_pin_config_alt(mp_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, uint8_t fn, uint8_t unit); void mp_hal_pin_config_speed(mp_hal_pin_obj_t pin_obj, uint32_t speed); +void extint_register_pin(const pin_obj_t *pin, uint32_t mode, bool hard_irq, mp_obj_t callback_obj); enum { MP_HAL_MAC_WLAN0 = 0, diff --git a/ports/stm32/mpnetworkport.c b/ports/stm32/mpnetworkport.c index 2f49328e1..1ce758e7d 100644 --- a/ports/stm32/mpnetworkport.c +++ b/ports/stm32/mpnetworkport.c @@ -50,6 +50,11 @@ #if MICROPY_PY_NETWORK_WIZNET5K void wiznet5k_poll(void); +void wiznet5k_deinit(void); + +void wiznet5k_try_poll(void) { + pendsv_schedule_dispatch(PENDSV_DISPATCH_WIZNET, wiznet5k_poll); +} #endif u32_t sys_now(void) { diff --git a/ports/stm32/pendsv.h b/ports/stm32/pendsv.h index 0733d355d..f97581e99 100644 --- a/ports/stm32/pendsv.h +++ b/ports/stm32/pendsv.h @@ -35,6 +35,9 @@ enum { #if MICROPY_PY_NETWORK_CYW43 PENDSV_DISPATCH_CYW43, #endif + #if MICROPY_PY_NETWORK_WIZNET5K + PENDSV_DISPATCH_WIZNET, + #endif #endif #if MICROPY_PY_BLUETOOTH && !MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS PENDSV_DISPATCH_BLUETOOTH_HCI, |
