2024-08-06 12:18 PM
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:
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
Solved! Go to Solution.
2024-08-07 06:52 AM - edited 2024-08-07 07:43 AM
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,
2024-08-07 06:52 AM - edited 2024-08-07 07:43 AM
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,
2024-08-07 10:42 AM
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.
2024-08-08 01:02 AM
I am glad you solved your problem.
You can regenerate code from STM32CubeMX, there is no issue with that.
Regards,