160 lines
6.6 KiB
TOML
160 lines
6.6 KiB
TOML
[package]
|
|
name = "esp-hal"
|
|
version = "0.21.1"
|
|
edition = "2021"
|
|
rust-version = "1.79.0"
|
|
description = "Bare-metal HAL for Espressif devices"
|
|
documentation = "https://docs.esp-rs.org/esp-hal/"
|
|
repository = "https://github.com/esp-rs/esp-hal"
|
|
license = "MIT OR Apache-2.0"
|
|
links = "esp-hal"
|
|
|
|
[package.metadata.docs.rs]
|
|
default-target = "riscv32imac-unknown-none-elf"
|
|
features = ["esp32c6"]
|
|
rustdoc-args = ["--cfg", "docsrs"]
|
|
|
|
[dependencies]
|
|
bitflags = "2.6.0"
|
|
bytemuck = "1.18.0"
|
|
bitfield = "0.16.1"
|
|
cfg-if = "1.0.0"
|
|
chrono = { version = "0.4.38", default-features = false }
|
|
critical-section = "1.1.3"
|
|
defmt = { version = "0.3.8", optional = true }
|
|
delegate = "0.12.0"
|
|
digest = { version = "0.10.7", default-features = false, optional = true }
|
|
document-features = "0.2.10"
|
|
embassy-futures = "0.1.1"
|
|
embassy-sync = "0.6.0"
|
|
embassy-usb-driver = { version = "0.1.0", optional = true }
|
|
embassy-usb-synopsys-otg = { version = "0.1.0", optional = true }
|
|
embedded-can = "0.4.1"
|
|
embedded-hal-02 = { version = "0.2.7", features = ["unproven"], package = "embedded-hal" }
|
|
embedded-hal = "1.0.0"
|
|
embedded-hal-async = "1.0.0"
|
|
embedded-hal-nb = "1.0.0"
|
|
embedded-io = "0.6.1"
|
|
embedded-io-async = "0.6.1"
|
|
enumset = "1.1.5"
|
|
esp-synopsys-usb-otg = { version = "0.4.2", optional = true, features = ["fs", "esp32sx"] }
|
|
fugit = "0.3.7"
|
|
log = { version = "0.4.22", optional = true }
|
|
nb = "1.1.0"
|
|
paste = "1.0.15"
|
|
portable-atomic = { version = "1.9.0", default-features = false }
|
|
procmacros = { version = "0.14.0", features = ["enum-dispatch", "interrupt", "ram"], package = "esp-hal-procmacros", path = "../esp-hal-procmacros" }
|
|
riscv = { version = "0.11.1", optional = true }
|
|
strum = { version = "0.26.3", default-features = false, features = ["derive"] }
|
|
void = { version = "1.0.2", default-features = false }
|
|
usb-device = { version = "0.3.2", optional = true }
|
|
rand_core = "0.6.4"
|
|
ufmt-write = "0.1.0"
|
|
xtensa-lx = { version = "0.9.0", optional = true }
|
|
|
|
# IMPORTANT:
|
|
# Each supported device MUST have its PAC included below along with a
|
|
# corresponding feature.
|
|
esp32 = { version = "0.33.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
esp32c2 = { version = "0.22.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
esp32c3 = { version = "0.25.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
esp32c6 = { version = "0.16.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
esp32h2 = { version = "0.12.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
esp32s2 = { version = "0.24.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
esp32s3 = { version = "0.28.0", git = "https://github.com/esp-rs/esp-pacs.git", rev = "390c88b", features = ["critical-section", "rt"], optional = true }
|
|
|
|
[target.'cfg(target_arch = "riscv32")'.dependencies]
|
|
esp-riscv-rt = { version = "0.9.0", path = "../esp-riscv-rt" }
|
|
|
|
[target.'cfg(target_arch = "xtensa")'.dependencies]
|
|
xtensa-lx-rt = { version = "0.17.0", path = "../xtensa-lx-rt" }
|
|
|
|
[build-dependencies]
|
|
basic-toml = "0.1.9"
|
|
cfg-if = "1.0.0"
|
|
esp-build = { version = "0.1.0", path = "../esp-build" }
|
|
esp-metadata = { version = "0.4.0", path = "../esp-metadata" }
|
|
esp-config = { version = "0.1.0", path = "../esp-config", features = ["build"] }
|
|
serde = { version = "1.0.210", features = ["derive"] }
|
|
|
|
[features]
|
|
default = []
|
|
|
|
riscv = ["dep:riscv", "critical-section/restore-state-u8"]
|
|
xtensa = ["dep:xtensa-lx", "critical-section/restore-state-u32"]
|
|
|
|
bluetooth = []
|
|
|
|
usb-otg = ["dep:embassy-usb-driver", "dep:embassy-usb-synopsys-otg", "dep:esp-synopsys-usb-otg", "dep:usb-device"]
|
|
|
|
__esp_hal_embassy = []
|
|
|
|
## Enable debug features in the HAL (used for development).
|
|
debug = [
|
|
"esp32?/impl-register-debug",
|
|
"esp32c2?/impl-register-debug",
|
|
"esp32c3?/impl-register-debug",
|
|
"esp32c6?/impl-register-debug",
|
|
"esp32h2?/impl-register-debug",
|
|
"esp32s2?/impl-register-debug",
|
|
"esp32s3?/impl-register-debug",
|
|
]
|
|
## Enable logging output using the `log` crate.
|
|
log = ["dep:log"]
|
|
|
|
# Chip Support Feature Flags
|
|
# Target the ESP32.
|
|
esp32 = ["dep:esp32", "xtensa", "xtensa-lx/spin", "xtensa-lx-rt/esp32"]
|
|
# Target the ESP32-C2.
|
|
esp32c2 = ["dep:esp32c2", "riscv", "portable-atomic/unsafe-assume-single-core"]
|
|
# Target the ESP32-C3.
|
|
esp32c3 = ["dep:esp32c3", "riscv", "portable-atomic/unsafe-assume-single-core", "esp-riscv-rt/rtc-ram"]
|
|
# Target the ESP32-C6.
|
|
esp32c6 = ["dep:esp32c6", "riscv", "procmacros/has-lp-core", "esp-riscv-rt/rtc-ram"]
|
|
# Target the ESP32-H2.
|
|
esp32h2 = ["dep:esp32h2", "riscv", "esp-riscv-rt/rtc-ram"]
|
|
# Target the ESP32-S2.
|
|
esp32s2 = ["dep:esp32s2", "xtensa", "portable-atomic/critical-section", "procmacros/has-ulp-core", "xtensa-lx-rt/esp32s2", "usb-otg"]
|
|
# Target the ESP32-S3.
|
|
esp32s3 = ["dep:esp32s3", "xtensa", "procmacros/has-ulp-core", "xtensa-lx/spin", "xtensa-lx-rt/esp32s3", "usb-otg"]
|
|
|
|
#! ### RISC-V Exclusive Feature Flags
|
|
## Move the stack to start of RAM to get zero-cost stack overflow protection
|
|
## (ESP32-C6 and ESPS32-H2 only!).
|
|
flip-link = ["esp-riscv-rt/fix-sp"]
|
|
|
|
#! ### Trait Implementation Feature Flags
|
|
## Implement `defmt::Format` on certain types.
|
|
defmt = [
|
|
"dep:defmt",
|
|
"embassy-futures/defmt",
|
|
"embassy-sync/defmt",
|
|
"embedded-hal/defmt-03",
|
|
"embedded-io/defmt-03",
|
|
"embedded-io-async/defmt-03",
|
|
"esp32?/defmt",
|
|
"esp32c2?/defmt",
|
|
"esp32c3?/defmt",
|
|
"esp32c6?/defmt",
|
|
"esp32h2?/defmt",
|
|
"esp32s2?/defmt",
|
|
"esp32s3?/defmt",
|
|
"fugit/defmt",
|
|
]
|
|
|
|
#! ### PSRAM Feature Flags
|
|
## Use externally connected Quad PSRAM
|
|
quad-psram = []
|
|
|
|
## Use externally connected Octal RAM
|
|
octal-psram = []
|
|
|
|
# This feature is intended for testing; you probably don't want to enable it:
|
|
ci = ["defmt", "bluetooth"]
|
|
|
|
[lints.clippy]
|
|
mixed_attributes_style = "allow"
|
|
|
|
[lints.rust]
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(host_os, values("windows"))'] }
|