Cómo implementar un búfer doble usando un ARM Cortex M3

2

Soy un principiante total, pero he estado trabajando en un proyecto para intentar construir mi propio microcontrolador que genere gráficos 2D básicos en una pantalla LCD. Al hacer algunas investigaciones sobre cómo esto se hace comúnmente, he escuchado mucho sobre los beneficios del doble búfer. Sin embargo, no he podido encontrar ninguna información en la logística para implementar dicha función. Esperaba que alguien pudiera explicar cómo funciona en términos de flujo de datos, y si es posible implementarlo utilizando solo 1 procesador (Cortex M3 SAM3S4C). ¿Es posible llenar un búfer mientras el 2do búfer se está escribiendo en la pantalla LCD con solo este procesador? Cualquier y todos los consejos serían muy apreciados.

    
pregunta Keminitus

1 respuesta

1

Si esa MCU tiene un motor DMA que puede alimentar cualquier interfaz periférica que esté impulsando la pantalla, y un árbitro de bus de memoria entre eso y la CPU, y suficiente ancho de banda para mantener el periférico alimentado frente al arbitraje, entonces debería funcionar .

Puede programar el DMA para que genere el búfer mostrado (es decir, cebando el DMA desde su dirección base), mientras usa el procesador para escribir en el otro.

También puede querer ver si puede programar el DMA para que se active de un búfer a otro cuando necesite copiar entre ellos.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas