arduino / arduino/ArduinoCore-API
Should provide DMA library
- Ngôn ngữ chính
- C++
- Star
- 306
- Fork
- 150
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
The SAMD core supports DMA, but this cannot be easily used from a library or sketch currently. In particular, multiple users of the DMA module need some coordination about what channels are in use, where the descriptor memory is located (I think), when to reset the DMA controller, etc.
Currently, I think there is the [Adafruit_ZeroDMA](https://github.com/adafruit/Adafruit_ZeroDMA) library that does this, but the [I2S library](https://github.com/arduino/ArduinoCore-samd/blob/master/libraries/I2S/src/utility/DMA.h) also has a DMA coordinator embedded (so these two will not play together nicely).
A single official library contained in the core (or perhaps an API contained in the core itself) would be good here. This could be a fully featured DMA library, but it might also be useful to have a minimal DMA coordinator library (that e.g. only handles resetting/initializing the controller, allocating channels and descriptors and maybe more, leaving all the channel-specific configuration that can coexist to third party or other libraries).
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách so sánh thư viện Adafruit_ZeroDMA với libraries/I2S/src/utility/DMA.h, tập trung vào việc phân bổ kênh, lưu trữ descriptor, reset controller và khả năng cùng tồn tại giữa các bên sử dụng. Xác định xem một thư viện hoặc API được tích hợp trong core có phù hợp nhất với ArduinoCore-API độc lập với phần cứng hay không, và xác định hoàn thành là khi có một thiết kế được tài liệu hóa cho phép nhiều thư viện sử dụng DMA cùng tồn tại mà không xung đột tài nguyên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- embedded-iot
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 30/100