| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Thanks @0e4ef622 for the awesome idea of how to do it and the first implementation.
Co-Authored-By: Matthew Tran <[email protected]>
|
| |
|
|
|
|
| |
enabled. (#3528)
This ensures the executor compiles with all recent nightly versions,
including the stable-but-with-nightly-features-enabled xtensa rustc.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]>
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
| |
It's been broken for months and nobody has noticed. The `esp*-hal` crates have
much better support.
Fixes #2234
Closes #1912
|
| | |
|
| |
|
|
| |
arena)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
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).
|
| | |
|
| |
|
|
|
| |
Export all main macro per target architecture from embassy-macros,
and select the appropriate macro in embassy-executor.
|
| | |
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|