arduino / arduino/ArduinoCore-API

Should provide DMA library

Aperta
#93 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
306
Fork
150
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia confrontando la libreria Adafruit_ZeroDMA con libraries/I2S/src/utility/DMA.h, concentrandoti sull’allocazione dei canali, sull’archiviazione dei descrittori, sul reset del controller e sulla coesistenza tra gli utenti. Determina se una libreria o API inclusa nel core sia la soluzione più adatta per l’ArduinoCore-API indipendente dall’hardware, e considera completato il lavoro quando esiste un design documentato che consenta a più librerie che usano DMA di coesistere senza conflitti sulle risorse.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
embedded-iot
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.