-
Notifications
You must be signed in to change notification settings - Fork 7.3k
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
SPI DMA & Async memcpy (IDFGH-9182) #10575
Comments
@enhany Thanks for reporting the issue. This seems like a hardware limitation that we can't workaround very well at the moment. The issue is that, the memory copy engine will occupy one of the DMA trigger ID that used by other peripherals. And by default, we set the trigger ID to zero for memory copy, however, this ID is also used by SPI2. For now, you can just change them to In the future, we should make the user ID selectable from the menuconfig. But we can't change the situation that the memcpy takes another perpheral's DMA. Edit: the hardware limitation is removed since ESP32C6. |
1. add check in the gdma driver, to prevent multiple channels connecting to the same peripheral 2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP targets (e.g. esp32c3/s3). We should search for a free one when install async memcpy driver. Closes #10575
1. add check in the gdma driver, to prevent multiple channels connecting to the same peripheral 2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP targets (e.g. esp32c3/s3). We should search for a free one when install async memcpy driver. Closes #10575
Answers checklist.
General issue report
Slave SPI DMA and async memcpy doesn't work together.
Device: ESP32-C3 (any devboard or chip)
How to reproduce:
Initialize async memcpy code:
The text was updated successfully, but these errors were encountered: