rp-hal-boards/rp2040-hal/Cargo.toml
Jan Niehusmann 280de7cb99 Enable critical-section-impl by default only from board crates, not from hal
There are a lot of non-binary crates depending on rp2040-hal. That way,
the default-features of rp2040-hal may be activated unintentionally
through an indirect dependency. Therefore, a binary crate which wants
to disable the `critical-section-impl` feature to provide its own one
could have a hard time to do so.

In contrast, the board support crates are usually only used by top-level
binary crates. So disabling the default features on those should usually
just work.

Binary crates depending on rp2040-hal directly, which don't use any
board support crate, might need to activate the feature manually. This
is reasonable because those binary crates need to replicate some
boilerplate from the board crates anyhow.
2022-08-24 14:31:43 +00:00

63 lines
2 KiB
TOML

[package]
name = "rp2040-hal"
version = "0.5.0"
authors = ["The rp-rs Developers"]
edition = "2018"
homepage = "https://github.com/rp-rs/rp-hal"
description = "A Rust Embeded-HAL impl for the rp2040 microcontroller"
license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
cortex-m = "0.7.2"
cortex-m-rt = ">=0.6.15,<0.8"
embedded-hal = { version = "0.2.5", features = ["unproven"] }
eh1_0_alpha = { package = "embedded-hal", version = "=1.0.0-alpha.8", optional = true }
embedded-time = "0.12.0"
itertools = { version = "0.10.1", default-features = false }
nb = "1.0"
rp2040-pac = "0.3.0"
paste = "1.0"
pio = "0.2.0"
rp2040-hal-macros = { version = "0.1.0", path = "../rp2040-hal-macros" }
usb-device = "0.2.9"
vcell = "0.1"
void = { version = "1.0.2", default-features = false }
rand_core = "0.6.3"
# Always set the custom-impl feature of legacy critical-section, even if we don't provide our own,
# as the default implementation should no longer be used.
critical-section_0_2 = { package = "critical-section", version = "0.2.4", features = ["custom-impl"] }
critical-section = { version = "1.0.0" }
futures = { version = "0.3", default-features = false, optional = true }
chrono = { version = "0.4", default-features = false, optional = true }
defmt = { version = ">=0.2.0, <0.4", optional = true }
[dev-dependencies]
cortex-m-rt = "0.7"
panic-halt = "0.2.0"
rp2040-boot2 = "0.2.1"
hd44780-driver = "0.4.0"
pio-proc = "0.2.0"
dht-sensor = "0.2.1"
[features]
rt = ["rp2040-pac/rt"]
rom-func-cache = []
disable-intrinsics = []
rom-v2-intrinsics = []
rp2040-e5 = [] # USB errata 5: USB device fails to exit RESET state on busy USB bus.
critical-section-impl = ["critical-section/restore-state-u8"]
[[example]]
# irq example uses cortex-m-rt::interrupt, need rt feature for that
name = "gpio_irq_example"
required-features = ["rt"]
[[example]]
# vector_table example uses cortex-m-rt::interrupt, need rt feature for that
name = "vector_table"
required-features = ["rt"]