* Add BSSID connection options to PicoW
When working with a mesh or multiple APs with the same SSID, it is often
necessary to specify which of the APs to connect to in order to maximize
the WiFi strength.
Add BSSID options to the SDK's PicoW cyw43_arch_wifi_connect_XXX APIs.
Fixes#1090
Co-authored-by: Earle F. Philhower, III <earlephilhower@yahoo.com>
Basically the integration code (cyw43_config.h and related implementations) are now in the driver.
cyw43_arch now just has
* async_context creation per CYW43_ARCH_TYPE
* pre-existing cyw43_arch methods for connect etc.
* Extract all poll/threadsafe_background/freertos from cyw43_arch into new abstraction async_context:
* provides support for asynchronous events (timers/IRQ notifications) to be handled in a safe context.
* now guarantees all callbacks happen on a single core.
* is reusable by multiple different libraries (stdio_usb can now be ported to this but hasn't been yet).
* supports multiple independent instances (independent instances will not block each other).
* cyw43_arch libraries cleaned up to use the new abstraction. Note each distinct cyw43_arch type is now a very thin layer that creates the right type of context and adds cyw43_driver and lwip support as appropriate.
Additionally,
* Add new pico_time and hardware_alarm APIs
* Add from_us_since_boot()
* Add alarm_pool_create_with_unused_hardware_alarm()
* Add alarm_pool_add_alarm_at_force_in_context()
* Add hardware_alarm_claim_unused()
* Add hardware_alarm_force_irq()
* Added panic_compact() and some minor comment cleanup; moved FIRST_USER_IRQ define to platform_defs.h