aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/Cargo.toml
diff options
context:
space:
mode:
authorJames Munns <[email protected]>2025-04-01 19:32:12 +0200
committerDario Nieuwenhuis <[email protected]>2025-09-11 14:45:06 +0200
commited2e51bfa4f92b422233343a0c5b1af98fb36537 (patch)
tree481133e93d5eb8f2017c9e308220e24007a58c04 /embassy-executor/Cargo.toml
parentba0426f767bb602750bed4fae87a156b661c0e92 (diff)
Dependency enablement trickery
Diffstat (limited to 'embassy-executor/Cargo.toml')
-rw-r--r--embassy-executor/Cargo.toml18
1 files changed, 12 insertions, 6 deletions
diff --git a/embassy-executor/Cargo.toml b/embassy-executor/Cargo.toml
index 80b5867c9..06e12ae7e 100644
--- a/embassy-executor/Cargo.toml
+++ b/embassy-executor/Cargo.toml
@@ -46,7 +46,7 @@ flavors = [
46[package.metadata.docs.rs] 46[package.metadata.docs.rs]
47default-target = "thumbv7em-none-eabi" 47default-target = "thumbv7em-none-eabi"
48targets = ["thumbv7em-none-eabi"] 48targets = ["thumbv7em-none-eabi"]
49features = ["defmt", "arch-cortex-m", "executor-thread", "executor-interrupt"] 49features = ["defmt", "arch-cortex-m", "executor-thread", "executor-interrupt", "drs-scheduler"]
50 50
51[dependencies] 51[dependencies]
52defmt = { version = "1.0.1", optional = true } 52defmt = { version = "1.0.1", optional = true }
@@ -76,13 +76,17 @@ js-sys = { version = "0.3", optional = true }
76# arch-avr dependencies 76# arch-avr dependencies
77avr-device = { version = "0.7.0", optional = true } 77avr-device = { version = "0.7.0", optional = true }
78 78
79[dependencies.cordyceps] 79# Note: this is ONLY a dependency when the target has atomics, this is
80# note: targeting v0.3.3, to be released when 80# used for `run_queue_atomics`. We need to be conditional because
81# cordyceps *requires* the use of atomics, so we pull it in when
82# `run_queue_atomics` would be enabled, and NOT when `run_queue_critical_section`
83# would be enabled.
84[target.'cfg(target_has_atomic="ptr")'.dependencies.cordyceps]
85# TODO: targeting v0.3.3, to be released when
81# https://github.com/hawkw/mycelium/pull/520 is merged 86# https://github.com/hawkw/mycelium/pull/520 is merged
82version = "0.3" 87version = "0.3"
83git = "https://github.com/hawkw/mycelium" 88git = "https://github.com/hawkw/mycelium"
84rev = "9649db0525b9972b95937d83d52d3f51cc486281" 89rev = "9649db0525b9972b95937d83d52d3f51cc486281"
85optional = true
86 90
87[dev-dependencies] 91[dev-dependencies]
88critical-section = { version = "1.1", features = ["std"] } 92critical-section = { version = "1.1", features = ["std"] }
@@ -133,5 +137,7 @@ trace = ["_any_trace"]
133rtos-trace = ["_any_trace", "metadata-name", "dep:rtos-trace", "dep:embassy-time-driver"] 137rtos-trace = ["_any_trace", "metadata-name", "dep:rtos-trace", "dep:embassy-time-driver"]
134_any_trace = [] 138_any_trace = []
135 139
136## Enable "Deadline Rank Scheduler" 140## Enable "Deadline Rank Sorted" Scheduler, using soft-realtime "deadlines" to prioritize
137drs-scheduler = ["dep:cordyceps", "dep:embassy-time-driver"] 141## tasks based on the remaining time before their deadline. Adds some overhead. Requires
142## hardware atomic support
143drs-scheduler = ["dep:embassy-time-driver"]