29#include "hardware/gpio.h"
30#include "hardware/pio.h"
31#include "hardware/sync.h"
32#include "hardware/watchdog.h"
33#include "pico/multicore.h"
34#include "pico/stdio.h"
54#define USB_ENUMERATION_DELAY_MS 1500
55#define GLOBAL_WATCHDOG_TIMEOUT_MS 5000
56#define WATCHDOG_DISABLED_FOR_DEBUGGING 1
100 init_app(&app_context, &persistent_config);
124 LOG_PLAIN(
"\r\nv24-eth-bridge: hello from RP2040\r\n");
125 LOG_PLAIN(
"\r\nType 'help' in USB serial.\r\n");
126 LOG_PLAIN(
"Version: %s\r\n", VERSION_STRING);
130 LOG_PLAIN(
"\r\nDebug logging enabled.\r\n> ");
void init_app(app_ctx_t *app, const config_t *persistent_config)
Initialize application context from persistent/default configuration.
void baudrate_estimator_init(V24_PIN_T pin)
Initialize baudrate estimator on a specific RX clock pin.
log_level_t get_loglevel(void)
Get current global log level.
void log_core1_drain(void)
void fatal_panic(e2s_error_t reason)
Print error message and panic.
e2s_error_t
Common error codes returned by ether2ser modules.
void event_loop(app_ctx_t *app)
Run the main application polling loop.
void event_queue_init(void)
Initialize the event queue storage.
void init_pins(void)
Initialize all board GPIOs used by the application.
static void core1_entry(void)
#define WATCHDOG_DISABLED_FOR_DEBUGGING
#define GLOBAL_WATCHDOG_TIMEOUT_MS
#define USB_ENUMERATION_DELAY_MS
void dump_config(void)
Print current configuration to console/log output.
bool config_read(config_t *cfg)
Read configuration from flash.
bool config_is_valid(void)
Check if flash configuration magic marker is valid.
void tx_clock_init(PIO pio, uint pio_sm, V24_CONFIG_T *config)
Initialize TX clock/data PIO state machine.
void rx_clock_init(PIO pio, uint pio_sm, V24_RX_POLARITIES_T *polarities)
Initialize RX clock/data PIO state machine.
V24_POLARITIES_T polarities
V24_RX_POLARITIES_T rx_polarities
Global application context shared across modules.
UDP_CONFIG_T local_config
uint8_t tx_queue_buffer[TX_FRAME_QUEUE_SIZE *sizeof(TX_QUEUE_ENTRY_T)]
Persistent configuration blob stored in flash.
e2s_error_t tx_queue_init(TX_QUEUE_T *queue, uint8_t *buffer_data)
Initialize TX queue and ring buffer storage.
void w5500_driver_init(void)
Initialize W5500 driver and low-level interface.
e2s_error_t w5500_open_udp_socket(UDP_CONFIG_T *config)
Open configured UDP socket.
void w5500_debug_status(void)
Print W5500 socket/PHY debug status.