111 Commits

Author SHA1 Message Date
Dario Nieuwenhuis
4d71f432ad Update manifests to satisfy new checks. 2025-09-22 00:47:08 +02:00
Dario Nieuwenhuis
55b3c5c6e8 ci: use devtool to build. 2025-09-11 21:52:47 +02:00
Dario Nieuwenhuis
6ec9bcb1c4 executor: add priority scheduler. 2025-09-11 16:33:48 +02:00
Dario Nieuwenhuis
e1209c5563 executor: make Deadline actually private. 2025-09-11 15:40:33 +02:00
Dion Dokter
2e21dcf2e6 Fix metadata 2025-09-11 14:45:41 +02:00
Dion Dokter
401fac6ea9 Make requested API changes 2025-09-11 14:45:40 +02:00
Dion Dokter
adb0c3e947 Add more metadata 2025-09-11 14:45:27 +02:00
diondokter
52d1785605 Introduce metadata-deadline and let the EDF scheduler use it 2025-09-11 14:45:27 +02:00
James Munns
20b56b0fe0 Update to use critical-section::Mutex instead of mutex::BlockingMutex
This allows the scheduler to better collaborate with existing critical sections
2025-09-11 14:45:06 +02:00
James Munns
db063945e7 Inline the "MutexTransferStack" impl as it is unclear whether it will be merged upstream 2025-09-11 14:45:06 +02:00
James Munns
d88ea8dd2a Update with cordyceps changes 2025-09-11 14:45:06 +02:00
James Munns
7af8f35a50 There can be only one (run queue) 2025-09-11 14:45:06 +02:00
James Munns
0e28ba1091 "Deadline Rank Sorted Scheduler" -> "Earliest Deadline First Scheduler" 2025-09-11 14:45:06 +02:00
James Munns
b1b2955b60 Switch to released version of cordyceps, add error if used w/o atomics 2025-09-11 14:45:06 +02:00
James Munns
08a57b1cb0 Update with changes from the PR 2025-09-11 14:45:06 +02:00
James Munns
ed2e51bfa4 Dependency enablement trickery 2025-09-11 14:45:06 +02:00
James Munns
8c70aafd4b Make some things more consistent 2025-09-11 14:45:06 +02:00
James Munns
1f50e4d496 Implement Deadline Ranked Scheduling
This implements a minimal version of Deadline Rank Scheduling, as well as ways to access and set Deadlines.

This still needs some UX improvements, but is likely Enough for testing.
2025-09-11 14:45:06 +02:00
James Munns
535c80e61f Add initial DRS scheduler placeholder
* Start hacking in cordyceps

This adds a third kind of runqueue, for now it should work the same as the
current "atomics" runqueue, but uses a cordyceps TransferStack instead of
the existing home-rolled linked list.

* Clean up, use new cordyceps feature

* A bit more cleanup

* Update docs to be more clear
2025-09-11 14:45:06 +02:00
Gabriel Smith
86aff0e63e chore: bump embassy-executor to 0.9.1 to match released version 2025-09-08 14:48:06 -04:00
Dario Nieuwenhuis
286d887529 executor: always name main task main, not just with rtos-trace.
Also fixes the warning about the `rtos-trace` feature not existing in embassy-executor-macros.
2025-09-05 14:57:05 +02:00
Dániel Buga
219cf09aab
Remove features, fix changelog 2025-09-02 08:34:07 +02:00
Florian Grandel
47e45c9821
rtos-trace: upgraded feature support
Upgrade rtos-trace for start/stop and marker support.

These methods are not used in embassy code but can be useful in client
code.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2025-08-30 17:54:03 +02:00
Dario Nieuwenhuis
da9cdf0c53 executor: add "task metadata" concept, make name a task metadata. 2025-08-29 13:22:59 +02:00
Dario Nieuwenhuis
2ba34ce217 executor: allow trace and rtos-trace to coexist additively.
Before, enabling `trace` would enable embassy-native tracing, and
enabling *both* would *disable* embassy-native tracing.
2025-08-29 13:22:01 +02:00
Ulf Lilleengen
83f2557eac chore: prepare embassy crate releases 2025-08-26 16:05:09 +02:00
Dario Nieuwenhuis
9f12852c38 Read crate configs from metadata. 2025-08-25 19:44:50 +02:00
Dániel Buga
74037f0493
Make TimerQueueItem opaque 2025-08-18 12:50:51 +02:00
Ulf Lilleengen
afc8be91a8 chore: Release embassy-executor version 0.8.0 2025-07-31 10:34:07 +02:00
Ulf Lilleengen
3f1ddaf60e chore: prepare embassy-executor 0.8 release 2025-07-31 10:33:14 +02:00
Matthew Tran
3cef4f0c04 Update tests 2025-06-01 12:36:46 -05:00
Robin Mueller
5a07ea5d85 Add support for Cortex-A/R 2025-05-28 17:00:42 +02:00
Yuri Astrakhan
ef0f29f0ed Update defmt dependencies 2025-05-18 20:52:09 +02:00
Phil-hacker
1a4b1a9476 update avr_device 2025-04-08 22:07:36 +02:00
Dániel Buga
c04b433991
embassy-sync, executor/wasm: don't select critical-section impl for std 2025-04-06 22:43:32 +02:00
Åke Amcoff
ac4f4ee807 disable critical-section/std for arch-std in embassy-executor 2025-04-05 18:36:04 +02:00
Dario Nieuwenhuis
695a6da322 Statically allocate task pools on stable Rust.
Thanks @0e4ef622 for the awesome idea of how to do it and the first implementation.

Co-Authored-By: Matthew Tran <0e4ef622@gmail.com>
2025-03-28 19:11:53 +01:00
Dániel Buga
9a238e6ad8
Prepare new embassy-time-*driver, embassy-executor, embassy-time 2024-12-22 20:27:15 +01:00
Dániel Buga
c6ca46c825
Set RUN_QUEUED unconditionally 2024-12-17 16:52:13 +01:00
Dániel Buga
c9f32b7e36
Attach payload to TimerQueueItem 2024-12-16 20:36:59 +01:00
Dario Nieuwenhuis
2f2e2c6031
Make integrated-timers the default, remove Cargo feature. 2024-12-15 18:49:57 +01:00
Dániel Buga
5a5495aac4
Refactor integrated-timers 2024-12-10 21:31:42 +01:00
Ulf Lilleengen
f0be2fdce4 Extend tracing api to support executor id and end task
Allow applications to provide a trace implementation that only needs to
implement APIs used by the embassy executor, and provide more context in
the event of multiple executors being used.
2024-12-09 15:16:03 +01:00
Dario Nieuwenhuis
796f6c034a Release embassy-executor 0.6.3. 2024-11-12 18:07:50 +01:00
Dario Nieuwenhuis
baeb59b5b8
executor: use WakerHack unconditionally even if nightly feature is enabled. (#3528)
This ensures the executor compiles with all recent nightly versions,
including the stable-but-with-nightly-features-enabled xtensa rustc.
2024-11-12 16:28:26 +01:00
Dániel Buga
aeb85454e9
Also bump macros 2024-11-06 14:09:41 +01:00
Dániel Buga
94659325ab
Prep executor 0.6.2 2024-11-06 13:58:02 +01:00
Dániel Buga
1e850ae791
Detect and allow older nightlies 2024-11-06 10:48:59 +01:00
Dario Nieuwenhuis
1a24b4f018 Release embassy-executor v0.6.1, embassy-executor-macros v0.6.1 2024-10-21 01:26:02 +02:00
Dario Nieuwenhuis
8f98268723 executor: add compile-fail / ui tests. 2024-10-20 23:54:17 +02:00