Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement async support for all applicable peripheral drivers #361

Closed
10 of 19 tasks
jessebraham opened this issue Jan 25, 2023 · 16 comments
Closed
10 of 19 tasks

Implement async support for all applicable peripheral drivers #361

jessebraham opened this issue Jan 25, 2023 · 16 comments
Labels
status:long-term This task will be around a while

Comments

@jessebraham
Copy link
Member

jessebraham commented Jan 25, 2023

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.

  • AES (in progress)
  • ECC
  • GPIO
  • I2C
  • I2S
  • LEDC
  • MCPWM
  • PARL_IO
  • PCNT
  • RMT
  • RSA
  • SDMMC
  • SHA
  • SPI
  • TWAI
  • UART
  • USB (ESP32-S2 & ESP32-S3)
  • USB_SERIAL_JTAG
  • ieee802154 radio
@playfulFence
Copy link
Contributor

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

@JurajSadel
Copy link
Contributor

I'll look into AES

@SergioGasquez
Copy link
Member

I'll be working on SHA!

@bjoernQ
Copy link
Contributor

bjoernQ commented Jun 29, 2023

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)

@SergioGasquez SergioGasquez self-assigned this Jun 29, 2023
@jessebraham jessebraham pinned this issue Jul 4, 2023
@jessebraham
Copy link
Member Author

Async support for USB Serial JTAG added in #632

@jessebraham
Copy link
Member Author

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
Copy link
Contributor

I'm working on RSA

@jessebraham
Copy link
Member Author

@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
Copy link
Member

SergioGasquez commented Sep 5, 2023

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: main...SergioGasquez:esp-hal:feature/async-sha. It still not working, so I will try to work on it

@JurajSadel
Copy link
Contributor

@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
Copy link
Contributor

bjoernQ commented Sep 18, 2023

I will start looking into async I2S next

@bjoernQ
Copy link
Contributor

bjoernQ commented Sep 21, 2023

I'll implement async PARL_IO next

@playfulFence
Copy link
Contributor

Will take a look into USB for s2 and s3

@ptpaterson
Copy link
Contributor

I'm working on TWAI in #951

@jessebraham jessebraham unpinned this issue Dec 14, 2023
@jessebraham
Copy link
Member Author

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).

@jessebraham
Copy link
Member Author

I think this issue has probably outlived its usefulness, we can create issues per-driver as needed (some of these exist already).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:long-term This task will be around a while
Projects
Status: Done
Development

No branches or pull requests

7 participants