mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-27 04:10:25 +00:00
117 lines
3.9 KiB
TOML
117 lines
3.9 KiB
TOML
[package]
|
|
name = "embassy-executor"
|
|
version = "0.7.0"
|
|
edition = "2021"
|
|
license = "MIT OR Apache-2.0"
|
|
description = "async/await executor designed for embedded usage"
|
|
repository = "https://github.com/embassy-rs/embassy"
|
|
documentation = "https://docs.embassy.dev/embassy-executor"
|
|
categories = [
|
|
"embedded",
|
|
"no-std",
|
|
"asynchronous",
|
|
]
|
|
|
|
[package.metadata.embassy_docs]
|
|
src_base = "https://github.com/embassy-rs/embassy/blob/embassy-executor-v$VERSION/embassy-executor/src/"
|
|
src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-executor/src/"
|
|
features = ["defmt"]
|
|
flavors = [
|
|
{ name = "std", target = "x86_64-unknown-linux-gnu", features = ["arch-std", "executor-thread"] },
|
|
{ name = "wasm", target = "wasm32-unknown-unknown", features = ["arch-wasm", "executor-thread"] },
|
|
{ name = "cortex-m", target = "thumbv7em-none-eabi", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] },
|
|
{ name = "riscv32", target = "riscv32imac-unknown-none-elf", features = ["arch-riscv32", "executor-thread"] },
|
|
]
|
|
|
|
[package.metadata.docs.rs]
|
|
default-target = "thumbv7em-none-eabi"
|
|
targets = ["thumbv7em-none-eabi"]
|
|
features = ["defmt", "arch-cortex-m", "executor-thread", "executor-interrupt"]
|
|
|
|
[dependencies]
|
|
defmt = { version = "1.0.1", optional = true }
|
|
log = { version = "0.4.14", optional = true }
|
|
rtos-trace = { version = "0.1.3", optional = true }
|
|
|
|
embassy-executor-macros = { version = "0.6.2", path = "../embassy-executor-macros" }
|
|
embassy-time-driver = { version = "0.2", path = "../embassy-time-driver", optional = true }
|
|
critical-section = "1.1"
|
|
|
|
document-features = "0.2.7"
|
|
|
|
# needed for AVR
|
|
portable-atomic = { version = "1.5", optional = true }
|
|
|
|
# arch-cortex-m dependencies
|
|
cortex-m = { version = "0.7.6", optional = true }
|
|
|
|
# arch-cortex-ar dependencies
|
|
cortex-ar = { version = "0.2", optional = true }
|
|
|
|
# arch-wasm dependencies
|
|
wasm-bindgen = { version = "0.2.82", optional = true }
|
|
js-sys = { version = "0.3", optional = true }
|
|
|
|
# arch-avr dependencies
|
|
avr-device = { version = "0.7.0", optional = true }
|
|
|
|
[dev-dependencies]
|
|
critical-section = { version = "1.1", features = ["std"] }
|
|
trybuild = "1.0"
|
|
embassy-sync = { path = "../embassy-sync" }
|
|
rustversion = "1.0.21"
|
|
|
|
[features]
|
|
|
|
## Enable nightly-only features
|
|
nightly = ["embassy-executor-macros/nightly"]
|
|
|
|
# Enables turbo wakers, which requires patching core. Not surfaced in the docs by default due to
|
|
# being an complicated advanced and undocumented feature.
|
|
# See: https://github.com/embassy-rs/embassy/pull/1263
|
|
turbowakers = []
|
|
|
|
#! ### Architecture
|
|
_arch = [] # some arch was picked
|
|
## std
|
|
arch-std = ["_arch"]
|
|
## Cortex-M
|
|
arch-cortex-m = ["_arch", "dep:cortex-m"]
|
|
## Cortex-A/R
|
|
arch-cortex-ar = ["_arch", "dep:cortex-ar"]
|
|
## RISC-V 32
|
|
arch-riscv32 = ["_arch"]
|
|
## WASM
|
|
arch-wasm = ["_arch", "dep:wasm-bindgen", "dep:js-sys"]
|
|
## AVR
|
|
arch-avr = ["_arch", "dep:portable-atomic", "dep:avr-device"]
|
|
## spin (architecture agnostic; never sleeps)
|
|
arch-spin = ["_arch"]
|
|
|
|
#! ### Executor
|
|
|
|
## Enable the thread-mode executor (using WFE/SEV in Cortex-M, WFI in other embedded archs)
|
|
executor-thread = []
|
|
## Enable the interrupt-mode executor (available in Cortex-M only)
|
|
executor-interrupt = []
|
|
## Enable tracing support (adds some overhead)
|
|
trace = []
|
|
## Enable support for rtos-trace framework
|
|
rtos-trace = ["dep:rtos-trace", "trace", "dep:embassy-time-driver"]
|
|
|
|
#! ### Timer Item Payload Size
|
|
#! Sets the size of the payload for timer items, allowing integrated timer implementors to store
|
|
#! additional data in the timer item. The payload field will be aligned to this value as well.
|
|
#! If these features are not defined, the timer item will contain no payload field.
|
|
|
|
_timer-item-payload = [] # A size was picked
|
|
|
|
## 1 bytes
|
|
timer-item-payload-size-1 = ["_timer-item-payload"]
|
|
## 2 bytes
|
|
timer-item-payload-size-2 = ["_timer-item-payload"]
|
|
## 4 bytes
|
|
timer-item-payload-size-4 = ["_timer-item-payload"]
|
|
## 8 bytes
|
|
timer-item-payload-size-8 = ["_timer-item-payload"]
|