embassy/embassy-rp
Caleb Jamison 372270a9b9 rp235x flash support.
The 2350 doesn't have a boot2 like the 2040, but it does have the
concept of a xip setup function that could be customized. By default the
bootrom searches for the attached flash chip and provides an xip setup
func at the base of the bootram. That bootram is not executable, so it
still needs to be copied to ram like boot2 would be.

Currently does not use inline assembly.

Also switch to picotool, as elf2uf2 has not been patched to support the
2350.
2024-08-29 10:47:03 -04:00
..
src rp235x flash support. 2024-08-29 10:47:03 -04:00
build.rs Initial rp235x support 2024-08-08 21:35:21 -04:00
Cargo.toml rp: use the rp-binary-info crate for binary info. 2024-08-17 22:12:39 +02:00
CHANGELOG.md update dates 2024-08-05 08:58:56 +02:00
funcsel.txt rp: add initial version 2021-03-29 21:35:25 +02:00
LICENSE-APACHE Add license files to embassy-rp crediting rp-rs. 2024-08-16 17:51:52 +02:00
LICENSE-MIT Add license files to embassy-rp crediting rp-rs. 2024-08-16 17:51:52 +02:00
link-rp.x.in Initial rp235x support 2024-08-08 21:35:21 -04:00
README.md Fix possible typo in embassy-rp README.md 2024-08-03 15:32:39 +02:00

Embassy RP HAL

HALs implement safe, idiomatic Rust APIs to use the hardware capabilities, so raw register manipulation is not needed.

The embassy-rp HAL targets the Raspberry Pi RP2040 microcontroller. The HAL implements both blocking and async APIs for many peripherals. The benefit of using the async APIs is that the HAL takes care of waiting for peripherals to complete operations in low power mode and handling interrupts, so that applications can focus on more important matters.

embassy-time time driver

If the time-driver feature is enabled, the HAL uses the TIMER peripheral as a global time driver for embassy-time, with a tick rate of 1MHz.

Embedded-hal

The embassy-rp HAL implements the traits from embedded-hal (v0.2 and 1.0) and embedded-hal-async, as well as embedded-io and embedded-io-async.

Interoperability

This crate can run on any executor.

Optionally, some features requiring embassy-time can be activated with the time-driver feature. If you enable it, you must link an embassy-time driver in your project.