cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX fails to program and run Target. .elf file is missing.

IvanOrot
Associate II

I am trying to program my RVT70HSSFWC0 Display it fails every time, although the simulation works perfectly. I have not written any extra C++ code, yet, because I want to make sure everything works fine before I do. When clicking on program and run target the compiling fails. I've read instruction on how to flash my display. So far I have,

-Downloaded STM32CubeProgrammer

-Moved the QSPI_STM32H747I-Riverdi-MICRON_V2.stldr to Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\ExternalLoader

-Powered the display while:

  • Running the program through TouchGFX
  • Running the program through STM32Programmer

The ST-Link connects properly to the display.

I get this error:

 

 Compiling Middlewares/ST/STM32_USB_Host_Library/Class/MSC/src/usbh_msc.c
        Compiling Middlewares/ST/STM32_USB_Host_Library/Class/MSC/src/usbh_msc_bot.c
        Compiling Middlewares/ST/STM32_USB_Host_Library/Class/MSC/src/usbh_msc_scsi.c
        Compiling Utilities/JPEG/jpeg_utils.c
        Compiling Common/Src/system_stm32h7xx_dualcore_boot_cm4_cm7.c
        Compiling ASM STM32CubeIDE/CM7/Application/User/Startup/startup_stm32h747xihx.s
        Linking CM7/TouchGFX/build/bin/target.elf
        CM7/Middlewares/ST/touchgfx/lib/core/cortex_m7/gcc\libtouchgfx-float-abi-hard.a(LCD24bpp.o): In function `touchgfx::LCD24bpp::DecompressorRGB_QOI::blitCopyARGB8888(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char)':
        (.text._ZN8touchgfx8LCD24bpp19DecompressorRGB_QOI16blitCopyARGB8888EPKhRKNS_4RectES6_h+0x328): undefined reference to `touchgfx::paint::flushLine(unsigned long*, int)'
        (.text._ZN8touchgfx8LCD24bpp19DecompressorRGB_QOI16blitCopyARGB8888EPKhRKNS_4RectES6_h+0x4e2): undefined reference to `touchgfx::paint::flushLine(unsigned long*, int)'
        CM7/Middlewares/ST/touchgfx/lib/core/cortex_m7/gcc\libtouchgfx-float-abi-hard.a(LCD24bpp.o): In function `touchgfx::LCD24bpp::DecompressorRGB_QOI::blitCopyRGB888(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char)':
        (.text._ZN8touchgfx8LCD24bpp19DecompressorRGB_QOI14blitCopyRGB888EPKhRKNS_4RectES6_h+0x46a): undefined reference to `touchgfx::paint::flushLine(unsigned long*, int)'
        (.text._ZN8touchgfx8LCD24bpp19DecompressorRGB_QOI14blitCopyRGB888EPKhRKNS_4RectES6_h+0x4ea): undefined reference to `touchgfx::paint::flushLine(unsigned long*, int)'
        collect2.exe: error: ld returned 1 exit status
        make[3]: *** [CM7/TouchGFX/build/bin/target.elf] Error 1
        gcc/makefile_cm7:442: recipe for target 'CM7/TouchGFX/build/bin/target.elf' failed
        make[3]: Leaving directory 'c:/TouchGFXProjects/SEDS_MainStation_Display/SEDS_MainStation_Display'
        gcc/makefile_cm7:438: recipe for target 'generate_assets' failed
        make[2]: Leaving directory 'c:/TouchGFXProjects/SEDS_MainStation_Display/SEDS_MainStation_Display'
        make[2]: *** [generate_assets] Error 2
        Makefile_cm7:51: recipe for target 'all' failed
        make[1]: *** [all] Error 2
        make[1]: Leaving directory 'C:/TouchGFXProjects/SEDS_MainStation_Display/SEDS_MainStation_Display/gcc'
        make: *** [flash] Error 2
        ../../gcc/Makefile:10: recipe for target 'flash' failed
        Failed
    Failed

 

 
In STM32CubeIDE I get an error when building the project saying the .elf file is missing.
I looked for the file, which should be in the debug folder and it's missing.
I then tried starting a new project and the file was still missing.
I created a new workspace and a new project but had the same result.

Anyone knows what I should do?
Thank you
 

1 ACCEPTED SOLUTION

Accepted Solutions
GaetanGodart
ST Employee

Hello @IvanOrot ,

 

I have started a new project using a STM32H747 from TouchGFX Designer like you.

I have tried to compile from TouchGFX Designer and from STM32CubeIDE and in both cases I had similar error message as the ones you shared (flushline and blitcopy).
We found a solution, simply open the STM32CubeMX file (.ioc) and regenerate the code (make sure to have the right toolchain selected).
As per the "error when building the project saying the .elf file is missing", I am not sure what you mean. If you tried to flash (run) the program, it is normal that the .elf file is missing if the compilation (build) did not complete.

 

If this comment solves your problem, I invite you to select it as "best answer".

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)

View solution in original post

3 REPLIES 3
GaetanGodart
ST Employee

Hello @IvanOrot ,

 

I have started a new project using a STM32H747 from TouchGFX Designer like you.

I have tried to compile from TouchGFX Designer and from STM32CubeIDE and in both cases I had similar error message as the ones you shared (flushline and blitcopy).
We found a solution, simply open the STM32CubeMX file (.ioc) and regenerate the code (make sure to have the right toolchain selected).
As per the "error when building the project saying the .elf file is missing", I am not sure what you mean. If you tried to flash (run) the program, it is normal that the .elf file is missing if the compilation (build) did not complete.

 

If this comment solves your problem, I invite you to select it as "best answer".

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)
IvanOrot
Associate II

Thanks! That worked. I guess I heard or read somewhere to not regenerate the code from the .ioc so I never tried to do it. After generating the code from the .ioc everything worked smoothly and my application is up and running on the display.

I am glad you solved your problem. 😊

You can regenerate code from STM32CubeMX, there is no issue with that.

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)