#include #include "pico/stdlib.h" #include "pico/critical_section.h" #include "wizchip_conf.h" #include "wizchip_spi.h" #include "wizchip_qspi_pio.h" static critical_section_t g_cris_sec; void wizchip_cris_enter() { critical_section_enter_blocking(&g_cris_sec); } void wizchip_cris_exit() { critical_section_exit(&g_cris_sec); } void wizchip_reset() { gpio_init(PIN_RST); gpio_set_dir(PIN_RST, GPIO_OUT); gpio_put(PIN_RST, 0); sleep_ms(100); gpio_put(PIN_RST, 1); sleep_ms(100); } void wizchip_spi_initialize() { wizchip_pio_init(); } void wizchip_cris_initialize() { critical_section_init(&g_cris_sec); } void wizchip_initialize() { wizchip_pio_frame_end(); uint8_t memsize[2][8] = {{4, 4, 4, 4, 4, 4, 4, 4}, {4, 4, 4, 4, 4, 4, 4, 4}}; ctlwizchip(CW_INIT_WIZCHIP, (void *)memsize); } void wizchip_check() { if (getCIDR() != 0x6300) { printf("W6300 ACCESS ERR: CIDR = 0x%04x\n", getCIDR()); while (1); } } void network_initialize(wiz_NetInfo net_info) { uint8_t syslock = SYS_NET_LOCK; ctlwizchip(CW_SYS_UNLOCK, &syslock); ctlnetwork(CN_SET_NETINFO, (void *)&net_info); }