2020-11-20 01:27 AM
Hallo,
I am using the TouchGFX framework on an STM32F750Z8T uC on a custom board. Connected to the uC is a SPI-flash and an external RAM. The application is loaded from the SPI flash to the external RAM on startup. After verification the application is started. Stack and heap are located in the internal RAM while all data like the frame buffer are also located in the external RAM. The connected display hast a resolution of 480 * 272.
The application uses FreeRTOSv2 with two tasks. One for the TouchGFX, and the other for reading inputs and sending data.
After startup the application is doing the hardware init, starting the first task and after that the TouchGFX task.
Everythings runs fine until the TouchGFX switches to an other screen. Then the application freezes or completly crashes. With only one screen with colorchanges and anmations the application runs without any problems.
What I have done so far is increasing the heap of the OS to 250 kbytes and the stack of the TouchGFX task to 60 kbytes in case there is memory shortage. But this didn't help.
I reduced the first task to only toggle a led pin, but this alos didn't help.
The freeze/crash doesn't alsways happen immediately on screen change. Some times I could chnage screens several times before that happens. During debugging it also seemed like the crash is somhow related to not or wrong set callback function pointers in the TouchGFX framework.
What I also noticed was, that screen transitions animationts don't work. When switching to another screen, the new screen is not sliding in as defined, but immediately displayed. Could this also be realted to the problem?
The code is generated with STM32CubeMX 5.6.0.
I appreciate any help, thank you.
Best regards
2020-11-26 08:20 AM
This result report you , that your RAM connection have data issues. Maybe PCB layout isnt good, SDRAM need handle how long is data and address lines and maybe too pulses to control need be clean. Try change clocking setup to lower speed on FMC ...
Good to check custom boards is write simple memtest code with DMA max speed use.
2021-03-19 06:24 AM
If you are not using the 3rd frame buffer, it will crash when sliding. If you are using only 1 (or less than 1 whole frame buffer) can be the cause of other crashes...