cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX & STM32CUBEMX integration results in a white LCD screen using STM32H7B3I-DK.

HDec
Associate II

Hello,

INFO

1- I currently have a problem with the STM32H7B3I-DK that I recently purchased.

2- I followed a tutorial from ST @ https://www.youtube.com/watch?v=mU5eZ_EXW8c . I'm using the same exact board.

3- TouchGFX rev: 4.13.0

4- STM32CUBEMX rev: 5.6.0

5-STM32CUBEIDE rev: 1.3.0

5- I have attached the whole project file to this post as "DK.rar". This .ioc file was generated via STM32CUBEMX using the Boards Selector filter when creating a new project and searching for the board "STM32H7B3I-DK" . The only thing edited in the .ioc file was similar to what was edited in the youtube video above.

Problem

The Code compiles successfully on STM32CUBEIDE however as soon as I enter debug (which runs successfully too) I get a white screen only on the LCD display. Which is different than what I have in the generated TouchGFX .

**It is important to mention that everything works fine if the application is generated by TouchGFX as a standalone program rather than being integrated with STM32CUBEMX.

Could someone please shed some light on this issue as to what the cause might be?

Thanks in advanced to all your replies !

12 REPLIES 12
HDec
Associate II

@Alexandre RENOUX​  I commented the FramebufferSection, FontFlashSection and TextFlashSection, all together and individually and it didn't get past compilation. I got this error:

arm-none-eabi-g++ -o "PRO.elf" @"objects.list"  -l:libtouchgfx-float-abi-hard.a -mcpu=cortex-m7 -T"A:\Projects\STM32H\Playfield\G8-CUBEMX GENERATED\Content\PRO\STM32H7B3LIHXQ_FLASH.ld" --specs=nosys.specs -Wl,-Map="PRO.map" -Wl,--gc-sections -static -L"A:\Projects\STM32H\Playfield\G8-CUBEMX GENERATED\Content\PRO\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group
c:\st\stm32cubeide_1.3.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.0.0.201904181610\tools\arm-none-eabi\bin\ld.exe: PRO.elf section `TouchGFX_Framebuffer' will not fit in region `RAM'
c:\st\stm32cubeide_1.3.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.0.0.201904181610\tools\arm-none-eabi\bin\ld.exe: region `RAM' overflowed by 551856 bytes
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:77: PRO.elf] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.

The reason I'm not using the AT is because I get errors when I try to compile after generating code from the generated cubeMX. Here is the process I used to answer your question on why I'm not using AT.

1- I open TouchGFX, select the STM32H3I-DK board, generate the code, then run on target and everything works well.

2- I open the generated STM32CubeIDE , compile and debug everything works wells !

3- I open the generated .ioc file , select a GPIO pin to blink an LED, and generate the code.

4-Refresh STM32CubeIDE , compile and never ending errors.

So I followed the youtube tutorial https://www.youtube.com/watch?v=mU5eZ_EXW8c and it got me pretty close with no errors but just a white screen.

Hope this answers your question.

Thanks!

Hi,

Ok the RAM seems overflowed because the internal RAM is too tiny to have the framebuffer inside. So the FramebufferSection is mandatory.

******

I am glad you explained the process you used.

When you change the .ioc file and regenerate in CubeMX, you HAVE TO regenerate code from TouchGFX Designer as well before rebuilding your project otherwise you can get errors as you noticed.

Also something that can help is clean the project and perform a fresh new build.

Please try that using the AT and tell me if it works (but it should). If not, send me the error as you did perfectly in your previous post.

/Alexandre

JMoel.1
Associate

Hello,

I had the same problem. It worked as long, as I flashed with TouchGFX Designer. When I flashed with STM32CubeIDE it showed a white screen.

Solution: Press the Reset Button or reset in debug mode.

It looks like the board needs an restart after flashing and the TouchGFX Designer resets after flashing. Cube IDE does not.

Hope it helps someone.