Estoy tratando de usar un DMA en modo circular para transferir datos de un ADC a una matriz que contendrá los datos. Necesito usar simultáneamente los datos entrantes (en este caso, estoy usando los comandos AT para enviar los datos a través de Wi-Fi con el módulo esp8266)
Me pregunto cómo se vería el flujo de software.
Aquí hay algunas preguntas:
-
¿Cómo sabrá el DMAC cuándo cerrarse cuando llegue al final de la matriz? - es decir, ¿cómo puedo asegurarme de que el DMA no transfiera datos más allá del último índice de matriz? (¿Este límite de tamaño está definido por DMA_BufferSize?)
-
Debido a que quiero usar simultáneamente los datos recopilados, estoy pensando en usar 3 matrices para almacenar los datos. Yo leería & borre los datos de una matriz mientras los otros están siendo rellenados por el DMA, y los ciclos se realizarán. ¿Es inteligente y / o posible cambiar el destino DMA constantemente de esta manera?
Gracias.