esp-rs / esp-hal

no_std Hardware Abstraction Layers for ESP32 microcontrollers
https://docs.esp-rs.org/esp-hal/
Apache License 2.0
637 stars 177 forks source link

Implement `async` support for all applicable peripheral drivers #361

Open jessebraham opened 1 year ago

jessebraham commented 1 year ago

While we have a tracking issue for async drivers with embedded-hal-alpha traits (#70), we should additionally implement async drivers for peripherals which do not have traits pre-defined. We can still provide our own APIs and make these useful.

As we make progress on #70 and I have a better idea of how things are looking, I will update this comment to (eventually) include a task list tracking which drivers need work.


Note There may be additional peripherals missing from the list below which do support asynchronous operation, and conversely there may be peripherals listed below which do not support asynchronous operation. This will get cleaned up over time and this notice will be removed when able.

playfulFence commented 1 year ago

I'll take a look at usb-serial-jtag as a start!

JurajSadel commented 1 year ago

I'll look into AES

SergioGasquez commented 1 year ago

I'll be working on SHA!

bjoernQ commented 1 year ago

I plan a rewrite of the RMT driver including a reasonable level of async support. (Won't be able to start on this too soon - just mentioning it here)

jessebraham commented 1 year ago

Async support for USB Serial JTAG added in #632

jessebraham commented 11 months ago

Maybe it would be helpful to go through our existing drivers and figure out which are capable of asynchronous operation, then we can create a task list here to track the progress and hopefully make it easier for people to contribute.

playfulFence commented 10 months ago

I'm working on RSA

jessebraham commented 10 months ago

@JurajSadel @SergioGasquez any updates on your progress? If you don't have time to work on these it might be nice to push your current efforts to a branch so somebody else could wrap it up.

SergioGasquez commented 10 months ago

I started working on SHA, abandoned it (it was not working) for other stuff, then DMA was refactored in several ways. Today, I started reimplementing my changes from scratch using an updated base branch, here are my changes: https://github.com/esp-rs/esp-hal/compare/main...SergioGasquez:esp-hal:feature/async-sha. It still not working, so I will try to work on it

JurajSadel commented 10 months ago

@jessebraham I have my work here: https://github.com/JurajSadel/esp-hal/tree/feature/async-aes it does something but it's not correct yet.

bjoernQ commented 10 months ago

I will start looking into async I2S next

bjoernQ commented 10 months ago

I'll implement async PARL_IO next

playfulFence commented 8 months ago

Will take a look into USB for s2 and s3

ptpaterson commented 8 months ago

I'm working on TWAI in #951

jessebraham commented 4 months ago

Just noting, the list in the original comment needs to be updated to include new peripherals on the ESP32-P4 (but this is pretty low-priority).