Problem when DMA2D is activated.
Hi,
I am trying to activate DMA2D in my display. We are using an STM32F7 processor. I have few questions regarding this.
Current situation:
As soon I activated the DMA2D, I started observing glitters in text rendering. I thought it has something to do with invalidating cache and I added the line SCB_CleanInvalidateDCache(); at the beginning of function void STM32F7DMA::start().
This resolved the text rendering problem. But on stressing the display (by continuously sliding on the slider widget) after around 40seconds, the screen would freeze. There is no recovery after. The display restarts.
I guessed this has to do something with simultaneous DMA and TFT accesses to SDRAM, therefore I set the hal.lockDMAToFrontPorch to true.
After doing this, there was no screen freeze or text rendering problem.
I have the following questions based on the above situation:
1) While I had text rendering problem, hal.lockDMAToFrontPorch was set to false and on stress testing there was no screen freeze.
I also didn't find any instance of SCB_CleanInvalidateDCache() in the project except the one I added. So, I somehow feel that adding this line to solve text rendering problem introduced screen freeze.
Hence, is my fix of invalidating cache to solve text rendering problem correct ?
2) If invalidating cache is necessary then is there any way to fix screen freeze other than setting the hal.lockDMAToFrontPorch to true ?
Any inputs related to this will be very helpful.
