-
Notifications
You must be signed in to change notification settings - Fork 118
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-executorto include aarch-tocktarget. - Extend the
libtock-rs::sharemodule to export anasync_scopemethod to be used in capsuleasyncAPIs. - Convert the userspace-level
critical-sectionimplementation indemos/st7789-slintinto a crate feature. - Implement
asyncGPIO trait. - Modify the
embassy-timeandembassy-time-drivercrates to allow for the timer frequency to be determined at runtime. - Implement
asyncTimer using theembassy-timeinterface. - 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-rsI2C controller API to use the new convention. - Modify the
libtock-cI2C controller API to use the new convention. - Implement
asyncI2C controller. - Implement
asyncConsole API. - Implement
asyncSPI controller. - Add demos both in
libtock-rsandembassy/examples.
Encountered Issues
- The design contract of the
I2ctrait exported byembedded-hal-asyncis incompatible with theI2cMastertrait 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
embassyandlibtock-rspublic 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