cancel
Showing results for 
Search instead for 
Did you mean: 

X-CUBE-TOUCHGFX 4.17.0 is out

Romain DIELEMAN
ST Employee

Hi Everyone,

If you haven't noticed by now, X-CUBE-TOUCHGFX 4.17.0 is out, available from STM32CubeMX 6.0+ and from st.com as a zip (Also installable through STM32CubeMX).

Here is the documentation for 4.17.0: https://support.touchgfx.com/

Main features:

  1. Complete redesign of the TouchGFX Designer
  2. Dual core support of TouchGFX Generator
  3. FMC interface support of TouchGFX Generator
  4. Various minor framework improvements like font handling

You can see all the bug fixing and improvements in the changelog.

KNOWN ISSUES:

If you wish to use L8 images in 16-,24- or 32bpp configurations, for some RTOS you will need to remove the OSWrappers::taskYield() function call in the DMA2D file templates of the X-CUBE installation (FreeRTOS from CubeMX works OK):

  • Navigate to your Users/<user name>/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-TOUCHGFX/4.17.0/CubeMX/templates/Target folder
  • Depending on your bit depth open the dma_XXbpp_implementation_tmp.ftl file (16. 24 and 32 bpp)
  • Delete (or comment) the OSWrappers::taskYield() call in the while ((READ_REG(DMA2D->FGPFCCR) & DMA2D_FGPFCCR_START) != 0U) loop
while ((READ_REG(DMA2D->FGPFCCR) & DMA2D_FGPFCCR_START) != 0U)
{
    // OSWrappers::taskYield();
}
  • Regenerate code from STM32CubeMX for your project

/Romain

71 REPLIES 71

Hi Ezgi,

I gave it a try and may have found the issue. You need to edit the "Category" section in your json file to add "Example".

I guess from what you shared that this gui template is aimed only for one specific board ? If it is the case you could add it to the "Board Specific Demo" tab instead of Example if you want by using the type TGAPP instead of TGUI in the json.

/Romain

AUnte.1
Associate II

Hi,

I just updated a project from TouchGFX Designer 4.16 to 4.17

Unfortunately I get a runtime error in a generated codepart.

File: mainBase.cpp: line 17 --- bool sdl_init_result = static_cast<touchgfx::HALSDL2&>(hal).sdl_init(argc, argv);

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

It seems there is a problem with the hal object.

I already tried to use dynamic_cast instead of static_cast and as well leave out the baseclass type (HAL) and use the methods with the specific type (HALSDL2) which is used in the project.

This as well did not show any change.

Do you know what this problem is and how I can solve it?

I appreciate any help.

best

Andreas