¿Cuál es la ventaja de DMA en el byte I / O?

0

Tengo un A / D donde señala a la CPU (Analog Devices Blackfin 706) cada vez que tiene una nueva muestra, y la CPU lo lee a través de un SPI, que es de unos pocos bytes. Luego espera de nuevo la nueva señal de smaple.

Mi pregunta es, ¿podemos usar DMA aquí? ¿Quién y cómo debería decirle a DMA que transfiera datos nuevos? No puedo decirle a DMA que observe la señal en sí, así que alguien tiene que hacerlo.

¿Tiene sentido usar DMA? Esto es básicamente como una interrupción de E / S. Cada vez que A / D señala una nueva muestra, el software principal le dice a DMA que la transfiera. Así que no hay mejora en la eficiencia. main sigue involucrado continuamente en I / O.

    
pregunta Mediocre

2 respuestas

2

La idea es que puede utilizar una interrupción para configurar una transferencia y luego dejar que la transferencia se ejecute en segundo plano. Si tiene más de 1 byte para transferir, el uso de DMA probablemente reduciría el número de interrupciones requeridas. Supongo que si los módulos DMA y SPI son lo suficientemente potentes e interactúan correctamente, debería poder salir con 1 o 2 interrupciones por muestra (una para configurar la transferencia y posiblemente una más para tratar la muestra después de la transferencia) . Si esto es una ventaja o no dependerá de muchas cosas: qué más está haciendo la CPU, la frecuencia de muestreo del ADC, la frecuencia de reloj SPI, etc.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas