2021-03-29 02:11:32 +00:00
[ package ]
name = "embassy-rp"
2024-08-02 20:06:39 +00:00
version = "0.2.0"
2022-06-18 00:15:48 +00:00
edition = "2021"
2022-10-07 10:41:56 +00:00
license = "MIT OR Apache-2.0"
2024-01-11 23:32:47 +00:00
description = "Embassy Hardware Abstraction Layer (HAL) for the Raspberry Pi RP2040 microcontroller"
keywords = [ "embedded" , "async" , "raspberry-pi" , "rp2040" , "embedded-hal" ]
2024-01-11 23:35:01 +00:00
categories = [ "embedded" , "hardware-support" , "no-std" , "asynchronous" ]
2024-01-11 23:32:47 +00:00
repository = "https://github.com/embassy-rs/embassy"
documentation = "https://docs.embassy.dev/embassy-rp"
2021-03-29 02:11:32 +00:00
2022-04-05 19:05:09 +00:00
[ package . metadata . embassy_docs ]
src_base = "https://github.com/embassy-rs/embassy/blob/embassy-rp-v$VERSION/embassy-rp/src/"
2022-06-26 21:55:38 +00:00
src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-rp/src/"
2023-11-29 16:23:48 +00:00
features = [ "defmt" , "unstable-pac" , "time-driver" ]
2022-04-05 19:05:09 +00:00
flavors = [
2024-08-12 08:32:31 +00:00
{ name = "rp2040" , target = "thumbv6m-none-eabi" , features = [ "rp2040" ] } ,
2024-08-12 12:38:52 +00:00
{ name = "rp235xa" , target = "thumbv8m.main-none-eabihf" , features = [ "rp235xa" ] } ,
{ name = "rp235xb" , target = "thumbv8m.main-none-eabihf" , features = [ "rp235xb" ] } ,
2022-04-05 19:05:09 +00:00
]
2024-01-11 22:16:28 +00:00
[ package . metadata . docs . rs ]
features = [ "defmt" , "unstable-pac" , "time-driver" ]
2021-03-29 02:11:32 +00:00
[ features ]
2023-06-08 16:00:19 +00:00
default = [ "rt" ]
2024-08-05 14:59:08 +00:00
## Enable the rt feature of [`rp-pac`](https://docs.rs/rp-pac). This brings in the [`cortex-m-rt`](https://docs.rs/cortex-m-rt) crate, which adds startup code and minimal runtime initialization.
2024-08-09 16:31:29 +00:00
rt = [ "rp-pac/rt" ]
2023-05-29 19:30:28 +00:00
2024-01-14 02:21:50 +00:00
## Enable [defmt support](https://docs.rs/defmt) and enables `defmt` debug-log messages and formatting in embassy drivers.
2023-11-29 16:23:48 +00:00
defmt = [ "dep:defmt" , "embassy-usb-driver/defmt" , "embassy-hal-internal/defmt" ]
2021-07-14 20:19:04 +00:00
2024-08-05 14:59:08 +00:00
## Configure the [`critical-section`](https://docs.rs/critical-section) crate to use an implementation that is safe for multicore use on rp2040.
2022-12-10 11:57:45 +00:00
critical-section-impl = [ "critical-section/restore-state-u8" ]
2023-12-22 22:50:37 +00:00
## Reexport the PAC for the currently enabled chip at `embassy_rp::pac`.
2024-01-14 02:21:50 +00:00
## This is unstable because semver-minor (non-breaking) releases of `embassy-rp` may major-bump (breaking) the PAC version.
2023-12-22 22:50:37 +00:00
## If this is an issue for you, you're encouraged to directly depend on a fixed version of the PAC.
## There are no plans to make this stable.
2021-07-14 20:19:04 +00:00
unstable-pac = [ ]
2024-01-14 00:08:18 +00:00
## Enable the timer for use with `embassy-time` with a 1MHz tick rate.
2024-01-11 15:38:44 +00:00
time-driver = [ "dep:embassy-time-driver" , "embassy-time-driver?/tick-hz-1_000_000" ]
2022-09-09 10:45:03 +00:00
2024-01-14 02:21:50 +00:00
## Enable ROM function cache. This will store the address of a ROM function when first used, improving performance of subsequent calls.
2022-09-23 04:38:47 +00:00
rom-func-cache = [ ]
2024-01-14 02:21:50 +00:00
## Enable implementations of some compiler intrinsics using functions in the rp2040 Mask ROM.
## These should be as fast or faster than the implementations in compiler-builtins. They also save code space and reduce memory contention.
## Compiler intrinsics are used automatically, you do not need to change your code to get performance improvements from this feature.
2022-09-26 17:52:55 +00:00
intrinsics = [ ]
2024-01-14 02:21:50 +00:00
## Enable intrinsics based on extra ROM functions added in the v2 version of the rp2040 Mask ROM.
## This version added a lot more floating point operations - many f64 functions and a few f32 functions were added in ROM v2.
2022-09-23 04:38:47 +00:00
rom-v2-intrinsics = [ ]
2024-01-14 02:21:50 +00:00
## Allow using QSPI pins as GPIO pins. This is mostly not what you want (because your flash is attached via QSPI pins)
## and adds code and memory overhead when this feature is enabled.
2023-12-22 22:50:37 +00:00
qspi-as-gpio = [ ]
## Indicate code is running from RAM.
## Set this if all code is in RAM, and the cores never access memory-mapped flash memory through XIP.
## This allows the flash driver to not force pausing execution on both cores when doing flash operations.
run-from-ram = [ ]
#! ### boot2 flash chip support
2024-01-14 02:21:50 +00:00
#! RP2040's internal bootloader is only able to run code from the first 256 bytes of flash.
#! A 2nd stage bootloader (boot2) is required to run larger programs from external flash.
#! Select from existing boot2 implementations via the following features. If none are selected,
#! boot2-w25q080 will be used (w25q080 is the flash chip used on the pico).
#! Each implementation uses flash commands and timings specific to a QSPI flash chip family for better performance.
## Use boot2 with support for Renesas/Dialog AT25SF128a SPI flash.
2023-05-09 16:36:17 +00:00
boot2-at25sf128a = [ ]
2024-01-14 02:21:50 +00:00
## Use boot2 with support for Gigadevice GD25Q64C SPI flash.
2023-05-09 16:36:17 +00:00
boot2-gd25q64cs = [ ]
2024-01-14 02:21:50 +00:00
## Use boot2 that only uses generic flash commands - these are supported by all SPI flash, but are slower.
2023-05-09 16:36:17 +00:00
boot2-generic-03h = [ ]
2024-01-14 02:21:50 +00:00
## Use boot2 with support for ISSI IS25LP080 SPI flash.
2023-05-09 16:36:17 +00:00
boot2-is25lp080 = [ ]
2024-01-14 02:21:50 +00:00
## Use boot2 that copies the entire program to RAM before booting. This uses generic flash commands to perform the copy.
2023-05-09 16:36:17 +00:00
boot2-ram-memcpy = [ ]
2024-01-14 02:21:50 +00:00
## Use boot2 with support for Winbond W25Q080 SPI flash.
2023-05-09 16:36:17 +00:00
boot2-w25q080 = [ ]
2024-01-14 02:21:50 +00:00
## Use boot2 with support for Winbond W25X10CL SPI flash.
2023-05-09 16:36:17 +00:00
boot2-w25x10cl = [ ]
2024-06-25 12:31:15 +00:00
## Have embassy not provide the boot2 so you can use your own.
## Place your own in the ".boot2" section like:
## ```
## #[link_section = ".boot2"]
## #[used]
2024-06-25 12:43:30 +00:00
## static BOOT2: [u8; 256] = [0; 256]; // Provide your own with e.g. include_bytes!
2024-06-25 12:31:15 +00:00
## ```
boot2-none = [ ]
2023-05-09 16:36:17 +00:00
2024-08-12 08:32:31 +00:00
## Configure the hal for use with the rp2040
2024-08-09 16:31:29 +00:00
rp2040 = [ "rp-pac/rp2040" ]
2024-08-12 08:32:31 +00:00
_rp235x = [ "rp-pac/rp235x" ]
## Configure the hal for use with the rp235xA
rp235xa = [ "_rp235x" ]
## Configure the hal for use with the rp235xB
rp235xb = [ "_rp235x" ]
2024-08-08 03:20:26 +00:00
2024-08-12 09:47:16 +00:00
# hack around cortex-m peripherals being wrong when running tests.
_test = [ ]
## Add a binary-info header block containing picotool-compatible metadata.
##
## Takes up a little flash space, but picotool can then report the name of your
## program and other details.
2024-08-17 19:56:14 +00:00
binary-info = [ "rt" , "dep:rp-binary-info" , "rp-binary-info?/binary-info" ]
2024-08-08 03:20:26 +00:00
2021-03-29 02:11:32 +00:00
[ dependencies ]
2024-05-29 10:09:55 +00:00
embassy-sync = { version = "0.6.0" , path = "../embassy-sync" }
2024-01-11 15:38:44 +00:00
embassy-time-driver = { version = "0.1" , path = "../embassy-time-driver" , optional = true }
2024-08-02 17:20:26 +00:00
embassy-time = { version = "0.3.2" , path = "../embassy-time" }
2022-09-22 14:48:35 +00:00
embassy-futures = { version = "0.1.0" , path = "../embassy-futures" }
2024-08-02 17:17:23 +00:00
embassy-hal-internal = { version = "0.2.0" , path = "../embassy-hal-internal" , features = [ "cortex-m" , "prio-bits-2" ] }
2024-08-02 17:14:43 +00:00
embassy-embedded-hal = { version = "0.2.0" , path = "../embassy-embedded-hal" }
2023-11-29 16:23:48 +00:00
embassy-usb-driver = { version = "0.1.0" , path = "../embassy-usb-driver" }
2022-08-14 21:16:06 +00:00
atomic-polyfill = "1.0.1"
2021-11-15 16:08:51 +00:00
defmt = { version = "0.3" , optional = true }
2021-09-10 22:10:46 +00:00
log = { version = "0.4.14" , optional = true }
2024-10-20 21:28:47 +00:00
nb = "1.1.0"
2022-08-18 08:14:37 +00:00
cfg-if = "1.0.0"
2021-08-18 22:56:11 +00:00
cortex-m-rt = ">=0.6.15,<0.8"
2022-08-14 21:16:06 +00:00
cortex-m = "0.7.6"
2024-10-20 21:28:47 +00:00
critical-section = "1.2.0"
2022-09-16 04:45:27 +00:00
chrono = { version = "0.4" , default-features = false , optional = true }
2024-01-04 20:25:55 +00:00
embedded-io = { version = "0.6.1" }
2023-11-29 16:23:48 +00:00
embedded-io-async = { version = "0.6.1" }
2022-09-16 10:40:39 +00:00
embedded-storage = { version = "0.3" }
2023-12-04 12:47:21 +00:00
embedded-storage-async = { version = "0.4.1" }
2022-11-30 01:46:04 +00:00
rand_core = "0.6.4"
2024-10-20 21:28:47 +00:00
fixed = "1.28.0"
2021-03-29 02:11:32 +00:00
2024-08-11 22:02:15 +00:00
rp-pac = { git = "https://github.com/embassy-rs/rp-pac.git" , rev = "a7f42d25517f7124ad3b4ed492dec8b0f50a0e6c" , feature = [ "rt" ] }
2022-02-15 16:28:48 +00:00
embedded-hal-02 = { package = "embedded-hal" , version = "0.2.6" , features = [ "unproven" ] }
2023-12-26 16:38:34 +00:00
embedded-hal-1 = { package = "embedded-hal" , version = "1.0" }
embedded-hal-async = { version = "1.0" }
embedded-hal-nb = { version = "1.0" }
2022-07-27 20:45:46 +00:00
2023-04-26 20:15:10 +00:00
pio-proc = { version = "0.2" }
pio = { version = "0.2.1" }
2023-05-09 16:36:17 +00:00
rp2040-boot2 = "0.3"
2024-10-20 21:28:47 +00:00
document-features = "0.2.10"
2024-08-08 03:20:26 +00:00
sha2-const-stable = "0.1"
2024-08-17 19:56:14 +00:00
rp-binary-info = { version = "0.1.0" , optional = true }
2024-10-09 14:04:35 +00:00
smart-leds = "0.4.0"
2023-05-29 19:30:28 +00:00
[ dev-dependencies ]
2024-10-20 23:26:02 +00:00
embassy-executor = { version = "0.6.1" , path = "../embassy-executor" , features = [ "arch-std" , "executor-thread" ] }
2023-11-02 20:52:07 +00:00
static_cell = { version = "2" }