2024-03-26 08:23 AM - edited 2024-03-27 04:27 AM
Hello,
I am using a STM32H747i-DISCO kit and have set up a project based on the TouchGFX Designer demo applications, which works based on a single framebuffer.
If I go into the CubeMX settings and set the framebuffer strategy to "Double Buffer" and the buffer location to "By Allocation", I can see my screen after flashing, but it is frozen. According to TouchGFXGeneratedHAL.cpp the video RGB buffer (1,152 Mbyte for 800 x 480 x 3 bytes) is located at 0xd0000000 in SDRAM and the framebuffer is placed at 0xd0119400 right after the video buffer. The pointers are set accordingly in the TouchGFXGeneratedHAL::initialise() by calling setFrameBufferStartAddresses((void*)frameBuf, (void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 2)), (void*)0);.
What causes my display to freeze when I change to double framebuffer?
Solved! Go to Solution.
2024-04-12 06:05 AM
Hello @seg_fault01 ,
So I talk with the team on that issue, and unfortunately the double frame buffer strategy is not supported on the H747 TBS. For now, I cant guarantee whenever or not that it will supported in the future.
I hope that answers your question.
Regards,
2024-03-27 05:32 AM
To recreate the problem: Open TouchGFX Designer, create any demo project for the STM32H747I disco board. In CubeMX - Middleware and Software Packs - TouchGFX set framebuffer strategy to double buffer by allocation.
2024-04-02 12:18 AM
Hello @seg_fault01,
Can you send me your map file ? So I can see how the allocation were made .
Regards,
2024-04-02 11:21 PM - edited 2024-04-03 12:18 AM
Hello,
sorry for the late reply. Here is the part of the map file that contains the framebuffer.
BufferSection 0xd0000000 0x34bc00
*(Video_RGB_Buffer Video_RGB_Buffer.*)
Video_RGB_Buffer
0xd0000000 0x119400 CM7/TouchGFX/build/STM32H747I_DISCO/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.o
*(.gnu.linkonce.r.*)
0xd0119400 . = ALIGN (0x4)
*(TouchGFX_Framebuffer TouchGFX_Framebuffer.*)
TouchGFX_Framebuffer
0xd0119400 0x232800 CM7/TouchGFX/build/STM32H747I_DISCO/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.o
*(.gnu.linkonce.r.*)
0xd034bc00 . = ALIGN (0x4)
OUTPUT(CM7/TouchGFX/build/bin/target.elf elf32-littlearm)
2024-04-12 06:05 AM
Hello @seg_fault01 ,
So I talk with the team on that issue, and unfortunately the double frame buffer strategy is not supported on the H747 TBS. For now, I cant guarantee whenever or not that it will supported in the future.
I hope that answers your question.
Regards,