aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* embassy-executor: explicitly return impl Future in task inner taskBrezak2025-07-231-4/+4
|
* Add diagnostic::on_unimplemented for nightlyMatthew Tran2025-06-011-0/+4
|
* Mention ! in diagnosticMatthew Tran2025-05-291-1/+1
|
* Allow `-> impl Future<Output = ()>` in #[task]Matthew Tran2025-05-281-2/+45
|
* Add support for Cortex-A/RRobin Mueller2025-05-281-0/+2
|
* executor: add executor selection to #[embassy_executor::main]outfoxxed2025-04-061-0/+2
|
* Move macro helper functions to embassy-executorMatthew Tran2025-03-291-0/+26
|
* Statically allocate task pools on stable Rust.Dario Nieuwenhuis2025-03-281-75/+103
| | | | | | Thanks @0e4ef622 for the awesome idea of how to do it and the first implementation. Co-Authored-By: Matthew Tran <[email protected]>
* executor: use WakerHack unconditionally even if `nightly` feature is ↵Dario Nieuwenhuis2024-11-121-1/+0
| | | | | | enabled. (#3528) This ensures the executor compiles with all recent nightly versions, including the stable-but-with-nightly-features-enabled xtensa rustc.
* Detect and allow older nightliesDániel Buga2024-11-061-0/+1
|
* executor/spin: introduce an architecture agnostic executorDummyc0m2024-10-061-1/+9
| | | | | | | | | | | | | | | | | | | | | | Spin polls the raw executor and never sleeps. It is useful for disabling any power features associated with wfi/wfe-like instructions. When implementing support for the CH32V30x MCU, the wfi instruction had issues interacting with the USB OTG peripheral and appeared to be non-spec-compliant. 1. When sending a USB Data-in packet, the USB peripheral appears to be unable to read the system main memory while in WFI. This manifests in the USB peripheral sending all or partially zeroed DATA packets. Disabling WFI works around this issue. 2. The WFI instruction does not wake up the processor when MIE is disabled. The MCU provides a WFITOWFE bit to emulate the WFE instruction on arm, which, when enabled, ignores the MIE and allows the processor to wake up. This works around the non-compliant WFI implementation. Co-authored-by: Codetector <[email protected]> Co-authored-by: Dummyc0m <[email protected]>
* fix: remove stable nightly featureOleksandr Babak2024-09-061-1/+0
|
* use nightly waker_getters APIszjp2024-06-091-0/+1
| | | | | | | Since https://github.com/rust-lang/rust/issues/96992 has stalled, to prevent potential unsoundness caused by transmuting to &WakerHack, we can use nightly waker_getters APIs by gating it behind nightly feature in embassy-executor without waiting for it to be stablized.
* Merge remote-tracking branch 'origin'sodo2024-01-021-0/+3
|\
| * [embassy-executor] improved documentationBarnaby Walters2023-12-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | * Feature auto-documentation * Task arena sizes in a <details> list * Non-documented comment explaining turbowakers with see-also link Further improvements: * Are the task-arena-size-* numbers sizes in bytes? or something else? * Task arena section could benefit from advice about how to choose a suitable size
* | add avr supportsodo2023-12-101-1/+2
|/
* executor: rename macro crate to embassy-executor-macros, bump it.Dario Nieuwenhuis2023-12-071-1/+1
|
* executor: remove arch-xtensa.Dario Nieuwenhuis2023-12-031-3/+1
| | | | | | | | It's been broken for months and nobody has noticed. The `esp*-hal` crates have much better support. Fixes #2234 Closes #1912
* executor: make task arena size configurable.Dario Nieuwenhuis2023-11-241-3/+7
|
* executor: add support for main/task macros in stable (allocates tasks in an ↵Dario Nieuwenhuis2023-11-241-3/+92
| | | | arena)
* executor: Remove non-functional rtos-trace-interrupt.Dario Nieuwenhuis2023-11-241-22/+1
|
* Upgrade static-cell to v2.0Dario Nieuwenhuis2023-11-021-1/+0
|
* Update Rust nightly.Dario Nieuwenhuis2023-11-011-0/+1
|
* executor: add Pender, rework Cargo features.Dario Nieuwenhuis2023-04-031-41/+30
| | | | | | | | | This introduces a `Pender` struct with enum cases for thread-mode, interrupt-mode and custom callback executors. This avoids calls through function pointers when using only the thread or interrupt executors. Faster, and friendlier to `cargo-call-stack`. `embassy-executor` now has `arch-xxx` Cargo features to select the arch and to enable the builtin executors (thread and interrupt).
* executor: unify export mod.Dario Nieuwenhuis2023-04-031-8/+4
|
* refactor: autodetect macro variantUlf Lilleengen2022-11-231-1/+9
| | | | | Export all main macro per target architecture from embassy-macros, and select the appropriate macro in embassy-executor.
* Remove Forever, switch to static_cell.Dario Nieuwenhuis2022-08-221-0/+6
|
* Merge branch 'master' of https://github.com/embassy-rs/embassy into rtos-traceQuentin Smith2022-08-191-7/+34
|\
| * Split embassy-time from embassy-executor.Dario Nieuwenhuis2022-08-181-10/+32
| |
* | Add separate feature flag to enable interrupt tracingQuentin Smith2022-08-161-6/+6
| |
* | cargo fmtQuentin Smith2022-08-101-1/+0
| |
* | Add support for rtos-trace behind a feature flagQuentin Smith2022-08-101-0/+21
|/
* Split embassy crate into embassy-executor, embassy-util.Dario Nieuwenhuis2022-07-291-0/+22