2024-06-10 08:07 AM
Hi,
I am trying to load a demo in TouchGFX into my display and I've followed all the steps to the tutorial but when I program and run target, I run into the following issue:
Program and Run Target
Generate
Done
Generate Assets
make -f simulator/gcc/Makefile assets -j8
Reading ./application.config
Reading ./target.config
Done
Post Generate
touchgfx update_project --project-file=simulator/msvs/Application.vcxproj
Done
Post Generate Target
touchgfx update_project
.cproject file: ../STM32CubeIDE/.cproject
Writing STM32CubeIDE project file: ../STM32CubeIDE/.project
Writing STM32CubeIDE project file: ../STM32CubeIDE/.cproject
Done
Compile
make -f ../gcc/Makefile -j8
Reading TouchGFX/application.config
Reading TouchGFX/target.config
Linking TouchGFX/build/bin/target.elf
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedRGB565_16BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.8]':
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_16BPPEPKhRKNS_4RectES5_h.part.8+0x214): undefined reference to `touchgfx::paint::rgb565::lineFromRGB565(unsigned short*, unsigned short const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_16BPPEPKhRKNS_4RectES5_h.part.8+0x3c6): undefined reference to `touchgfx::paint::rgb565::lineFromRGB565(unsigned short*, unsigned short const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_16BPPEPKhRKNS_4RectES5_h.part.8+0x8ac): undefined reference to `touchgfx::paint::rgb565::lineFromRGB565(unsigned short*, unsigned short const*, unsigned int, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedARGB8888_16BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.9]':
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_16BPPEPKhRKNS_4RectES5_h.part.9+0x202): undefined reference to `touchgfx::paint::rgb565::lineFromARGB8888(unsigned short*, unsigned long const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_16BPPEPKhRKNS_4RectES5_h.part.9+0x354): undefined reference to `touchgfx::paint::rgb565::lineFromARGB8888(unsigned short*, unsigned long const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_16BPPEPKhRKNS_4RectES5_h.part.9+0x40e): undefined reference to `touchgfx::paint::rgb565::lineFromARGB8888(unsigned short*, unsigned long const*, unsigned int, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedRGB565_32BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.12]':
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_32BPPEPKhRKNS_4RectES5_h.part.12+0x252): undefined reference to `touchgfx::paint::argb8888::lineFromRGB565(unsigned char*, unsigned short const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_32BPPEPKhRKNS_4RectES5_h.part.12+0x326): undefined reference to `touchgfx::paint::argb8888::lineFromRGB565(unsigned char*, unsigned short const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_32BPPEPKhRKNS_4RectES5_h.part.12+0x498): undefined reference to `touchgfx::paint::argb8888::lineFromRGB565(unsigned char*, unsigned short const*, short, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedRGB888_32BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.13]':
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB888_32BPPEPKhRKNS_4RectES5_h.part.13+0x1a8): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB888_32BPPEPKhRKNS_4RectES5_h.part.13+0x2d0): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB888_32BPPEPKhRKNS_4RectES5_h.part.13+0x51e): undefined reference to `touchgfx::paint::argb8888::lineFromColor(unsigned long*, short, unsigned long, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedARGB8888_32BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.14]':
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_32BPPEPKhRKNS_4RectES5_h.part.14+0x1dc): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_32BPPEPKhRKNS_4RectES5_h.part.14+0x3f8): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_32BPPEPKhRKNS_4RectES5_h.part.14+0x678): undefined reference to `touchgfx::paint::argb8888::lineFromColor(unsigned long*, short, unsigned long, unsigned char)'
collect2.exe: error: ld returned 1 exit status
gcc/Makefile:330: recipe for target 'TouchGFX/build/bin/target.elf' failed
make[2]: *** [TouchGFX/build/bin/target.elf] Error 1
gcc/Makefile:326: recipe for target 'generate_assets' failed
make[1]: *** [generate_assets] Error 2
make: *** [all] Error 2
../gcc/Makefile:51: recipe for target 'all' failed
Failed
Failed
Any help would greatly be appreciated.
Thank you.
Solved! Go to Solution.
2024-06-10 08:48 AM
I switched over to v4.23.2 and the problem went away.
2024-06-10 08:18 AM
"undefined references" mean that you have omitted to include the definitions of those functions - either as source code, or as a pre-built binary library.
2024-06-10 08:24 AM - edited 2024-06-10 08:25 AM
Thank you for your reply. I didn't change anything during install or the code. Any suggestion on how to fix?
2024-06-10 08:48 AM
I switched over to v4.23.2 and the problem went away.
2024-08-22 02:13 AM
Using v4.24.0 Vector Rendering should be specified. It solved this error in my case.
Then using STM32CubeMX, or editing *.ioc file in STM32CubeIDE :
Pinout & Configuration > Middleware and Software > X-CUBE-TOUCHGFX > TouchGFX generator > Additional Features > Vector Rendering.