* Add boot2 feature. Add boot2 linkage into each BSP optional on feature
* Enable boot2 feature in BSPs by default. Remove boot2 decl from all BSP examples
* Add EXTERN in memory.x for BOOT2_FIRMWARE, rename bootloader static slice to BOOT2_FIRMWARE
* Update new examples and itsy_bitsy BSP to use boot2 feature
* Remove boot2 as a dev-dependency for the BSPs, no longer needed
* Add no_mangle BOOT2_FIRMWARE to adafruit_macropad
* Fix itsy-bitsy blinky - it wasn't using the BSP, so it didn't get BOOT2_FIRMWARE linked in
If GPIO23 is low, the power supply is in low-power mode. But it
generates some noise. If GPIO23 is high, the power supply is less
efficient, but it generates less noise too.
* Implement peripheral support for i2c and an advanced example for the pico board.
* Simplify i2c peripheral bootstrap and add a "free" function to allow switching modes.
* Set dependency to futures & nostd_async to specific version/revision.
* move enum & struct to the start of the file
* Add a bit of documentation to the pico_i2c_controller_peripheral demo.
* Migrate to pico_i2c_controller_peripheral to embassy & simplify the peripheral support
nostd_async is broken since last stable roll out.
The pico_i2c_controller_peripheral is being migrated to use embassy's executor.
The Controller Async API is now aligned with embassy's traits to facilitate integration.
The peripheral no longer require async to run and now appears as an event iterator.
Embassy's support relies on unstable features (generic_associated_types and type_alias_impl_traits)
and is therefore gated behind the `embassy-traits` feature flag.
* make futures & embassy optional for the pico board too
* Pin embassy to a specific rev.
* Impl embassy_traits::i2c::WriteIter & enable unlimited transfer size on i2c
* Applies comment suggestion from @9names for the advanced i2c example.
Co-authored-by: 9names <60134748+9names@users.noreply.github.com>
* use `I2C block` instead of `IP`.
* Fix formatting (unnecessary space at end of line)
* Enhance explanation for why `rd_req()` is not cleared in `Iterator::next`'s
implementation.
Co-authored-by: 9names <60134748+9names@users.noreply.github.com>
* Created an itsy bitsy rp2040 board support package adapted from the bsp of the qt py rp2040. Special thanks to ithinuel for help in matrix
* Changed the board description so it doesn't match the qt py rp2040
* Changed blinky.rs to itsy_bitsy_blinky.rs and ran changes through cargo fmt
* Add pico_i2c_pio example
* Update pico_i2c_pio's main function documentation
* Update bootloader reference.
* Implement uart output for the pico_i2c_pio example.
* pin to a specific rev of i2c-pio
* Bump i2c-pio to get the fix for write_read
Answers on a postcard please on how to avoid `static mut` when you have
lazy initialization, and static objects holding references to other
static objects.