2
\$\begingroup\$

I am a total beginner, but I have been working on a project to attempt to build my own microcontroller that outputs basic 2D graphics to an LCD screen. In doing some research as to how this is commonly done, I have heard a lot about the benefits of double buffering. However, I have not been able to find any information into the logistics of implementing such a feature. I was hoping someone could explain how it works in terms of data flow, and if it is possible to implement using only 1 processor (Cortex M3 SAM3S4C). Is it possible to be filling one buffer while the 2nd buffer is being written to the LCD screen with only this one processor? Any and all advice would be greatly appreciated.

\$\endgroup\$
1
\$\begingroup\$

If that MCU has a DMA engine that can feed whatever peripheral interface is driving the screen, and a memory bus arbiter between that and the CPU, and sufficient bandwidth to keep the peripheral fed in the face of arbitration, then it should work.

You could program the DMA to output the displayed buffer (ie, by priming DMA from its base address), while using the processor to write to the other.

You may also want to see if you can program the DMA to blit from one buffer to the other when you need to copy between them.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.