rp-hal-boards/rp2040-hal/src/lib.rs

56 lines
1.2 KiB
Rust
Raw Normal View History

//! HAL for the RP2040 microcontroller
//!
//! This is an implementation of the [`embedded-hal`] traits for the RP2040 microcontroller
//! NOTE This HAL is still under active development. This API will remain volatile until 1.0.0
2021-07-20 02:58:26 +10:00
#![warn(missing_docs)]
#![no_std]
Implement peripheral support for i2c and an advanced example (#162) * 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>
2021-11-08 23:23:28 +11:00
#![cfg_attr(feature = "embassy-traits", feature(generic_associated_types))]
#![cfg_attr(feature = "embassy-traits", feature(type_alias_impl_trait))]
extern crate cortex_m;
extern crate embedded_hal as hal;
extern crate nb;
pub use paste;
2021-04-24 21:38:17 +10:00
pub extern crate rp2040_pac as pac;
#[macro_use]
mod intrinsics;
pub mod adc;
pub(crate) mod atomic_register_access;
2021-05-02 07:18:37 +10:00
pub mod clocks;
mod critical_section_impl;
pub mod dma;
mod float;
2021-04-18 09:18:10 +10:00
pub mod gpio;
pub mod i2c;
pub mod multicore;
pub mod pio;
2021-04-25 18:12:38 +10:00
pub mod pll;
pub mod prelude;
pub mod pwm;
pub mod resets;
2021-02-02 15:57:32 +11:00
pub mod rom_data;
pub mod rosc;
pub mod rtc;
2021-05-10 23:29:59 +10:00
pub mod sio;
pub mod spi;
pub mod ssi;
pub mod timer;
pub mod typelevel;
pub mod uart;
pub mod usb;
pub mod watchdog;
2021-04-24 21:38:17 +10:00
pub mod xosc;
2021-12-04 00:04:45 +11:00
// Provide access to common datastructures to avoid repeating ourselves
pub use adc::Adc;
pub use clocks::Clock;
pub use i2c::I2C;
pub use sio::Sio;
pub use spi::Spi;
pub use timer::Timer;
2021-12-04 15:38:25 +11:00
pub use watchdog::Watchdog;