esp-hal/esp-hal-common/Cargo.toml
Scott Mabin bd2f0fee2b Pin log crate to 0.4.18
This is temporary measure, as the problem cannot be solved cleanly right
now.

The issue is that the msrv check uses the stable compiler, which uses a
stable cargo. With a stable cargo, the unstable `build-std` option is
not respected within `.cargo/config.toml`. This means `core` is never
rebuilt with the atomic cfg flags so we get this error when building log
version 0.4.19. The 0.4.19 release uses the atomic cfg flags instead of
a custom build script, so by switching back to 0.4.188888888 we can avoid this
issue... for now at least.
2023-06-20 06:35:01 -07:00

122 lines
5.0 KiB
TOML

[package]
name = "esp-hal-common"
version = "0.9.0"
authors = [
"Jesse Braham <jesse@beta7.io>",
"Björn Quentin <bjoern.quentin@mobile-j.de>",
]
edition = "2021"
rust-version = "1.65.0"
description = "HAL implementations for peripherals common among Espressif devices; should not be used directly"
repository = "https://github.com/esp-rs/esp-hal"
license = "MIT OR Apache-2.0"
[dependencies]
bitflags = "2.2.1"
cfg-if = "1.0.0"
critical-section = "1.1.1"
embedded-can = { version = "0.4.1", optional = true }
embedded-dma = "0.2.0"
embedded-hal = { version = "0.2.7", features = ["unproven"] }
embedded-hal-1 = { version = "=1.0.0-alpha.10", optional = true, package = "embedded-hal" }
embedded-hal-nb = { version = "=1.0.0-alpha.2", optional = true }
esp-synopsys-usb-otg = { version = "0.3.1", optional = true, features = ["fs", "esp32sx"] }
fugit = "0.3.6"
log = "=0.4.18"
lock_api = { version = "0.4.9", optional = true }
nb = "1.1.0"
paste = "1.0.12"
procmacros = { version = "0.5.0", package = "esp-hal-procmacros", path = "../esp-hal-procmacros" }
strum = { version = "0.24.1", default-features = false, features = ["derive"] }
void = { version = "1.0.2", default-features = false }
usb-device = { version = "0.2.9", optional = true }
# async
embedded-hal-async = { version = "0.2.0-alpha.1", optional = true }
embassy-sync = { version = "0.2.0", optional = true }
embassy-time = { version = "0.1.1", features = ["nightly"], optional = true }
embassy-futures = { version = "0.1.0", optional = true }
# RISC-V
esp-riscv-rt = { version = "0.3.0", path = "../esp-riscv-rt", optional = true }
riscv-atomic-emulation-trap = { version = "0.4.0", optional = true }
# Xtensa
xtensa-lx = { version = "0.8.0", optional = true }
xtensa-lx-rt = { version = "0.15.0", optional = true }
# Part of `ufmt` containing only `uWrite` trait
ufmt-write = { version = "0.1.0", optional = true }
# IMPORTANT:
# Each supported device MUST have its PAC included below along with a
# corresponding feature.
esp32 = { version = "0.24.0", features = ["critical-section"], optional = true }
esp32c2 = { version = "0.12.0", features = ["critical-section"], optional = true }
esp32c3 = { version = "0.15.0", features = ["critical-section"], optional = true }
esp32c6 = { version = "0.5.0", features = ["critical-section"], optional = true }
esp32h2 = { version = "0.1.0", features = ["critical-section"], optional = true }
esp32s2 = { version = "0.15.0", features = ["critical-section"], optional = true }
esp32s3 = { version = "0.19.0", features = ["critical-section"], optional = true }
[build-dependencies]
basic-toml = "0.1.2"
serde = { version = "1.0.160", features = ["derive"] }
[features]
esp32 = ["esp32/rt" , "xtensa", "xtensa-lx/esp32", "xtensa-lx-rt/esp32", "lock_api", "procmacros/esp32"]
esp32c2 = ["esp32c2/rt", "riscv", "procmacros/esp32c2"]
esp32c3 = ["esp32c3/rt", "riscv", "procmacros/esp32c3"]
esp32c6 = ["esp32c6/rt", "riscv", "procmacros/esp32c6"]
esp32h2 = ["esp32h2/rt", "riscv", "procmacros/esp32h2"]
esp32s2 = ["esp32s2/rt", "xtensa", "xtensa-lx/esp32s2", "xtensa-lx-rt/esp32s2", "esp-synopsys-usb-otg", "usb-device", "procmacros/esp32s2"]
esp32s3 = ["esp32s3/rt", "xtensa", "xtensa-lx/esp32s3", "xtensa-lx-rt/esp32s3", "lock_api", "esp-synopsys-usb-otg", "usb-device", "procmacros/esp32s3"]
esp32_40mhz = []
esp32_26mhz = []
esp32c2_40mhz = []
esp32c2_26mhz = []
psram_2m = []
psram_4m = []
psram_8m = []
# Implement the `embedded-hal==1.0.0-alpha.x` traits
eh1 = ["embedded-hal-1", "embedded-hal-nb", "embedded-can"]
# To support `ufmt`
ufmt = ["ufmt-write"]
# To use vectored interrupts (calling the handlers defined in the PAC)
vectored = ["procmacros/interrupt"]
# Implement the `embedded-hal-async==1.0.0-alpha.x` traits
async = ["embedded-hal-async", "eh1", "embassy-sync", "embassy-futures"]
embassy = ["embassy-time"]
embassy-time-systick = []
embassy-time-timg0 = []
interrupt-preemption = []
# Architecture-specific features (intended for internal use)
riscv = ["critical-section/restore-state-u8", "procmacros/riscv", "esp-riscv-rt", "riscv-atomic-emulation-trap", "esp-riscv-rt/zero-bss"]
xtensa = ["critical-section/restore-state-u32", "procmacros/xtensa"]
# Initialize / clear data sections and RTC memory
rv-init-data = ["esp-riscv-rt/init-data", "esp-riscv-rt/init-rw-text"]
rv-zero-rtc-bss = ["esp-riscv-rt/zero-rtc-fast-bss"]
rv-init-rtc-data = ["esp-riscv-rt/init-rtc-fast-data", "esp-riscv-rt/init-rtc-fast-text"]
# Enable the `impl-register-debug` feature for the selected PAC
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",
]