Commit Graph

20 Commits

Author SHA1 Message Date
Kaspar Schleiser
03adeeddc2 executor: allow overriding embassy_executor path in task macro 2024-11-04 23:02:30 +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
f0de049308 executor-macros: improve error messages. 2024-10-20 23:54:17 +02:00
Dario Nieuwenhuis
1f58e0efd0
executor: fix unsoundness due to impl Trait, improve macro error handling. (#3425)
* executor-macros: don't parse function bodies.

* executor-macros: refactor for better recovery and ide-friendliness on errors.

* executor-macros: disallow `impl Trait` in task arguments.

Fixes #3420

* Fix example using `impl Trait` in tasks.
2024-10-18 03:18:59 +02:00
Dummyc0m
9e6e09a8d7 executor/spin: introduce an architecture agnostic executor
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 <codetector@codetector.org>
Co-authored-by: Dummyc0m <y@types.moe>
2024-10-06 23:33:34 -07:00
Ulf Lilleengen
37d7b0cd06 prepare release embassy-executor 2024-08-05 08:56:29 +02:00
J. Neuschäfer
0a19879c5d executor: Use spawner.must_spawn(...) for wasm too
All other architectures use must_spawn instead of spawn+unwrap, so use
it for wasm as well.
2024-07-12 02:05:59 +02:00
Dario Nieuwenhuis
3845288ffb
Merge pull request #2718 from embassy-rs/update-nightly44
Update nightly Rust.
2024-03-20 15:54:55 +00:00
Dario Nieuwenhuis
eca9aac194 Fix warnings in recent nightly. 2024-03-20 16:39:09 +01:00
Grant Miller
ea89b0c4a0 oops 2024-02-23 18:45:07 -06:00
Grant Miller
dd549dad1a Improve hygiene 2024-02-14 16:59:43 -06:00
Grant Miller
84258e1680 wip 2024-02-14 15:57:06 -06:00
Dario Nieuwenhuis
35f09374b5
Merge pull request #2273 from djdisodo/main
initial support for avr
2024-01-19 23:26:55 +01:00
Scott Mabin
929ebd568a embassy-executor-macros v0.4.1 2024-01-14 21:30:53 +00:00
Dario Nieuwenhuis
6a1c415a4c Complete cargo.tomls more. 2024-01-12 00:32:47 +01:00
Dario Nieuwenhuis
b452a6bcf6 Centralize license and MSRV boilerplate into the repo readme. 2024-01-11 18:18:35 +01:00
sodo
6ee153a3e2 Merge remote-tracking branch 'origin' 2024-01-02 13:34:22 +09:00
Scott Mabin
93b64b90ce Extend the task macro to allow cfging arguments away 2023-12-31 14:14:32 +00:00
sodo
58d503a77d add avr support 2023-12-10 01:45:24 +09:00
Dario Nieuwenhuis
ac2aec4e7a executor: rename macro crate to embassy-executor-macros, bump it. 2023-12-07 00:48:30 +01:00