cancel
Showing results for 
Search instead for 
Did you mean: 

External Flash assets updates while touchgfx is running

KHeye.1
Associate III

Hi,

I am implementing a product that uses touchgfx and needs to support remote updates. As the downloading of the assets is slow (~30min), the updated assets to be written into external flash must be written while touchgfx is running.

I know that other similar questions of writing to external flash in memory mapped mode in this forum get answers of "just dont do that" or "work around that" but I have been unable to find any other viable solution.

Currently, my write process is: stop touchgfx task, stop ltdc interrupt, stop dma2d interrupt, wait until dma2d finishes, reinit qspi (exit mem map), write to ext flash, enter mem map, enable ltdc interrupt, enable dma2d interrupt, and finally resume touchgfx task. If touchgfx is idle (i.e. a static screen) touchgfx survives, but if the screen is non static touchgfx stops working and somehow locks out access to the debugger core in the mcu (rtos and other code still runs).

Has anyone had any luck in this? And specifically to the touchgfx devs, has this been attempted internally?

Cheers,

Kevin

13 REPLIES 13

Thanks for your input. I did as you suggested and it appears to work quite consistently without any issues.

Can show us with some code example how you "block touchgfx process when endFrame() called to confirm frame generation complete"?

Hi, I am using TouchGFX library 4.20.000. Can I apply this logic in this version? Please share the code example

RetroInTheShade
Associate III

@manto.1​ nothing special to block touchgfx. In a test implementation you might call the function performing the write to flash directly from Endframe() ….Thereby ensuring that the touchgfx operation cannot proceed until the flash write is complete.