This is the documentation for the latest (main) development branch of mcuxpresso sdk. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

dpu_1_rop

Overview

This example shows how to use the ROP unit in blit engine. In this project, there are three input frame buffers to the blit engine. The blit engine generates two frames using different ROP configurations, so the output frames are different.

For landscape display panel:

Output frame 0

+——————+——————+——————+ | | | | | Red | Yellow | Green | | | | | | | | | | +————————————–+ | | | | | | | | | Magenta | White | Cyan | | | | | | | | | | | | | | +——–|———+——————+——————+ | | | | | Black | | Black | | | Blue | | | | | | +——–+————————————–+——–+

Output frame 1

+——————+——————+——————+ | | | | | Cyan | Blue | Magenta | | | | | | | | | | +————————————–+ | | | | | | | | | Green | Black | Red | | | | | | | | | | | | | | +——–|———+——————+——————+ | | | | | White | | White | | | Yellow | | | | | | +——–+————————————–+——–+

For portrait display panel:

Output frame 0

+——————+——————+——————+ | | | | | Red | Yellow | Green | | | | | | | | | | | | | | | | | | | | | | +————————————–+ | | | | | | | | | Magenta | White | Cyan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +——–|———+——————+——————+ | | | | | Black | | Black | | | Blue | | | | | | | | | | | | | | | | | | +——–+————————————–+——–+

Output frame 1

+——————+——————+——————+ | | | | | Cyan | Blue | Magenta | | | | | | | | | | | | | | | | | | | | | | +————————————–+ | | | | | | | | | Green | Black | Red | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +——–|———+——————+——————+ | | | | | White | | White | | | Yellow | | | | | | | | | | | | | | | | | | +——–+————————————–+——–+

The two frames are shown one by one. Because the switch interval is controlled by an software loop delay, so the interval might be different for debug target and release target.

In this project, a new blit engine process is started only when the previous frame finished.

The DPU path is configured like this:



  • s_redWinFrameBuffer * * s_greenWinFrameBuffer* * s_blueWinFrameBuffer *



     |                           |                        |
     v                           v                        v

+—————–+ +—————–+ +—————–+ | | | | | | | FetchDecode 9 | | FetchRot 9 | | FetchEco 9 | | | | | | | +—————–+ +—————–+ +—————–+ | | | | v | | +—————–+ | | | | | +—————–>| ROP 9 |<—————+ | | +—————–+ | v +—————–+ | | | BlitBlend 9 | | | +—————–+ | v +—————–+ | | | Store 9 | | | +—————–+ | v ************************ * * * s_displayFrameBuffer * * * ************************ | v +—————–+ +—————–+ | | | | | FetchYUV0 | | Const Frame 0 | | | | | +—————–+ +—————–+ | | | v | +—————–+ | | | +————>| LayerBlend 1 | | | +—————–+ | v +—————–+ | | | ExtDst 0 | | | +—————–+ | Content Stream v +—————–+ | | | FrameGen 0 | | | +—————–+ | v

Supported Boards