This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Behaviour of DRV_frameCopy() & DRV_displaySwitchBuf()



I would like to better understand the programatic behaviour of DRV_frameCopy() & DRV_displaySwitchBuf(), and have the following specific questions:

1) Is DRV_frameCopy() blocking, or does it initiate the DMA copy and then return control to the calling thread, leaving the copy to happen in the background?

2) If DRV_frameCopy() is non-blocking, how is the completion of the DMA synchronized to DRV_displaySwitchBuf()?

3) Can the completion of DRV_frameCopy() be determined through an API/flag setting?

4) A call to DRV_displaySwitchBuf() seems to act as an enqueueing command, meaning 'I am copying to this frame'; it does not seem to mean 'display this frame now'.  Is this correct?

5) I must assume that DRV_displaySwitchBuf() is internally synchronized to the display timing, such that the switch of frames does not happen part-way through the output of a frame to the screen.  Please can you confirm this?

6) When DRV_displaySwitchBuf() returns, it modifies the bufId passed to it to signify 'this frame has been displayed, you can re-use the buffer'.  Is this correct?  Is the buffer immediately free when DRV_displaySwitchBuf() has returned, or is it in the process of being output to screen?

7) What is the blocking behaviour of DRV_displaySwitchBuf()?  Is it always non-blocking, or can it block in any circumstance?

If you were able to make the source code for DRV_frameCopy() & DRV_displaySwitchBuf() available, it may help me to get to the bottom of these questions by myself.

Regards

Dave