-
Notifications
You must be signed in to change notification settings - Fork 119
Open
Description
I am currently working on porting the Embassy executor along with extending capsule API with async
methods that implement the embedded-hal-async
traits.
Roadmap
- Port the
embassy-executor
to include aarch-tock
target. - Extend the
libtock-rs::share
module to export anasync_scope
method to be used in capsuleasync
APIs. - Convert the userspace-level
critical-section
implementation indemos/st7789-slint
into a crate feature. - Implement
async
GPIO trait. - Modify the
embassy-time
andembassy-time-driver
crates to allow for the timer frequency to be determined at runtime. - Implement
async
Timer using theembassy-time
interface. - Extend Tock I2C capsule command interface to include a clear separation between an in place write-read command, and a write-read command that uses a separate read-only "write" buffer and read-write "read" buffer, as well as modify the write command to use a read-only buffer.
- Modify the
libtock-rs
I2C controller API to use the new convention. - Modify the
libtock-c
I2C controller API to use the new convention. - Implement
async
I2C controller. - Implement
async
Console API. - Implement
async
SPI controller. - Add demos both in
libtock-rs
andembassy/examples
.
Encountered Issues
- The design contract of the
I2c
trait exported byembedded-hal-async
is incompatible with theI2cMaster
trait used by the HIL.
Upstreaming roadmap
This part is important, as these crates and examples will have inter-dependencies.
- Create a Pull Request to Tock with the mentioned I2C modifications.
- Publish
embassy
andlibtock-rs
public forks containing the respective modifications that reference each other. - Merge the changes into both upstream repositories.
- Change the dependencies to reference the main repositories, instead of the forks.
These should ensure that the modifications are testable from both sides at every step.
Metadata
Metadata
Assignees
Labels
No labels