cyw43_arch.h File Reference
#include "pico.h"
#include "cyw43.h"
#include "cyw43_country.h"
#include "pico/async_context.h"
Include dependency graph for cyw43_arch.h:

Go to the source code of this file.

Macros

#define PARAM_ASSERTIONS_ENABLED_CYW43_ARCH   0
 
#define PICO_CYW43_ARCH_DEBUG_ENABLED   1
 
#define PICO_CYW43_ARCH_DEFAULT_COUNTRY_CODE   CYW43_COUNTRY_WORLDWIDE
 

Functions

int cyw43_arch_init (void)
 Initialize the CYW43 architectureThis method initializes the cyw43_driver code and initializes the lwIP stack (if it was enabled at build time). This method must be called prior to using any other pico_cyw43_arch, cyw43_driver or lwIP functions. More...
 
int cyw43_arch_init_with_country (uint32_t country)
 Initialize the CYW43 architecture for use in a specific countryThis method initializes the cyw43_driver code and initializes the lwIP stack (if it was enabled at build time). This method must be called prior to using any other pico_cyw43_arch, cyw43_driver or lwIP functions. More...
 
void cyw43_arch_deinit (void)
 De-initialize the CYW43 architectureThis method de-initializes the cyw43_driver code and de-initializes the lwIP stack (if it was enabled at build time). Note this method should always be called from the same core (or RTOS task, depending on the environment) as cyw43_arch_init. More...
 
async_context_tcyw43_arch_async_context (void)
 Return the current async_context currently in use by the cyw43_arch code. More...
 
void cyw43_arch_set_async_context (async_context_t *context)
 Set the async_context to be used by the cyw43_arch_init. More...
 
async_context_tcyw43_arch_init_default_async_context (void)
 Initialize the default async_context for the current cyw43_arch typeThis method initializes and returns a pointer to the static async_context associated with cyw43_arch. This method is called by cyw43_arch_init automatically if a different async_context has not been set by cyw43_arch_set_async_context. More...
 
void cyw43_arch_poll (void)
 Perform any processing required by the cyw43_driver or the TCP/IP stackThis method must be called periodically from the main loop when using a polling style pico_cyw43_arch (e.g. pico_cyw43_arch_lwip_poll ). It may be called in other styles, but it is unnecessary to do so.
 
void cyw43_arch_wait_for_work_until (absolute_time_t until)
 Sleep until there is cyw43_driver work to be doneThis method may be called by code that is waiting for an event to come from the cyw43_driver, and has no work to do, but would like to sleep without blocking any background work associated with the cyw43_driver. More...
 
static void cyw43_arch_lwip_begin (void)
 Acquire any locks required to call into lwIPThe lwIP API is not thread safe. You should surround calls into the lwIP API with calls to this method and cyw43_arch_lwip_end. Note these calls are not necessary (but harmless) when you are calling back into the lwIP API from an lwIP callback. If you are using single-core polling only (pico_cyw43_arch_poll) then these calls are no-ops anyway it is good practice to call them anyway where they are necessary. More...
 
static void cyw43_arch_lwip_end (void)
 Release any locks required for calling into lwIPThe lwIP API is not thread safe. You should surround calls into the lwIP API with calls to cyw43_arch_lwip_begin and this method. Note these calls are not necessary (but harmless) when you are calling back into the lwIP API from an lwIP callback. If you are using single-core polling only (pico_cyw43_arch_poll) then these calls are no-ops anyway it is good practice to call them anyway where they are necessary. More...
 
static int cyw43_arch_lwip_protect (int(*func)(void *param), void *param)
 sad Release any locks required for calling into lwIPThe lwIP API is not thread safe. You can use this method to wrap a function with any locking required to call into the lwIP API. If you are using single-core polling only (pico_cyw43_arch_poll) then there are no locks to required, but it is still good practice to use this function. More...
 
uint32_t cyw43_arch_get_country_code (void)
 Return the country code used to initialize cyw43_arch. More...
 
void cyw43_arch_enable_sta_mode (void)
 Enables Wi-Fi STA (Station) mode.This enables the Wi-Fi in mode such that connections can be made to other Wi-Fi Access Points.
 
void cyw43_arch_enable_ap_mode (const char *ssid, const char *password, uint32_t auth)
 Enables Wi-Fi AP (Access point) mode.This enables the Wi-Fi in Access Point mode such that connections can be made to the device by other Wi-Fi clients. More...
 
int cyw43_arch_wifi_connect_blocking (const char *ssid, const char *pw, uint32_t auth)
 Attempt to connect to a wireless access point, blocking until the network is joined or a failure is detected. More...
 
int cyw43_arch_wifi_connect_bssid_blocking (const char *ssid, const uint8_t *bssid, const char *pw, uint32_t auth)
 Attempt to connect to a wireless access point specified by SSID and BSSID, blocking until the network is joined or a failure is detected. More...
 
int cyw43_arch_wifi_connect_timeout_ms (const char *ssid, const char *pw, uint32_t auth, uint32_t timeout)
 Attempt to connect to a wireless access point, blocking until the network is joined, a failure is detected or a timeout occurs. More...
 
int cyw43_arch_wifi_connect_bssid_timeout_ms (const char *ssid, const uint8_t *bssid, const char *pw, uint32_t auth, uint32_t timeout)
 Attempt to connect to a wireless access point specified by SSID and BSSID, blocking until the network is joined, a failure is detected or a timeout occurs. More...
 
int cyw43_arch_wifi_connect_async (const char *ssid, const char *pw, uint32_t auth)
 Start attempting to connect to a wireless access pointThis method tells the CYW43 driver to start connecting to an access point. You should subsequently check the status by calling cyw43_wifi_link_status. More...
 
int cyw43_arch_wifi_connect_bssid_async (const char *ssid, const uint8_t *bssid, const char *pw, uint32_t auth)
 Start attempting to connect to a wireless access point specified by SSID and BSSIDThis method tells the CYW43 driver to start connecting to an access point. You should subsequently check the status by calling cyw43_wifi_link_status. More...
 
void cyw43_arch_gpio_put (uint wl_gpio, bool value)
 Set a GPIO pin on the wireless chip to a given value. More...
 
bool cyw43_arch_gpio_get (uint wl_gpio)
 Read the value of a GPIO pin on the wireless chip. More...