2021-10-24 10:24 AM
I unzip the project STM32H7BWorkshop2020_labs12 i open the touchGFX project with new version 4.17. I apply the advice suggested to convert project from vers 4.13 to 4.17 e regenerate the code.
then i open STmCUBE IDE but when i built the project it generates this error:
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(LCD.o): in function `touchgfx::LCD::drawString(touchgfx::Rect, touchgfx::Rect const&, touchgfx::LCD::StringVisuals const&, unsigned short const*, ...)':
(.text._ZN8touchgfx3LCD10drawStringENS_4RectERKS1_RKNS0_13StringVisualsEPKtz+0x0): multiple definition of `touchgfx::LCD::drawString(touchgfx::Rect, touchgfx::Rect const&, touchgfx::LCD::StringVisuals const&, unsigned short const*, ...)'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:51: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o): in function `touchgfx::Font::getStringWidth(unsigned short const*, ...) const':
(.text._ZNK8touchgfx4Font14getStringWidthEPKtz+0x0): multiple definition of `touchgfx::Font::getStringWidth(unsigned short const*, ...) const'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:14: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o): in function `touchgfx::Font::getStringWidth(unsigned char, unsigned short const*, ...) const':
(.text._ZNK8touchgfx4Font14getStringWidthEhPKtz+0x0): multiple definition of `touchgfx::Font::getStringWidth(unsigned char, unsigned short const*, ...) const'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:23: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o):(.rodata._ZTVN8touchgfx4FontE+0x0): multiple definition of `vtable for touchgfx::Font'; ./Application/User/generated/Texts.o:(.rodata._ZTVN8touchgfx4FontE+0x0): first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(TextProvider.o): in function `touchgfx::TextProvider::initializeInternal()':
(.text._ZN8touchgfx12TextProvider18initializeInternalEv+0x0): multiple definition of `touchgfx::TextProvider::initializeInternal()'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:46: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(TextProvider.o): in function `touchgfx::TextProvider::getNextLigature(unsigned char)':
(.text._ZN8touchgfx12TextProvider15getNextLigatureEh+0x0): multiple definition of `touchgfx::TextProvider::getNextLigature(unsigned char)'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:32: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/TouchGFXHAL.o:(.rodata._ZTV11TouchGFXHAL+0x4c): undefined reference to `touchgfx::HAL::blitCopyWord(unsigned short const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/TouchGFXHAL.o:(.rodata._ZTV11TouchGFXHAL+0x50): undefined reference to `touchgfx::HAL::blitFillWord(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o:(.rodata._ZTV19FrontendApplication[_ZTV19FrontendApplication]+0x30): undefined reference to `touchgfx::Application::requestRedraw()'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o:(.rodata._ZTV23FrontendApplicationBase[_ZTV23FrontendApplicationBase]+0x30): undefined reference to `touchgfx::Application::requestRedraw()'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o:(.rodata._ZTVN8touchgfx14MVPApplicationE[_ZTVN8touchgfx14MVPApplicationE]+0x30): undefined reference to `touchgfx::Application::requestRedraw()'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o:(.rodata._ZTV20TouchGFXGeneratedHAL+0x4c): undefined reference to `touchgfx::HAL::blitCopyWord(unsigned short const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o:(.rodata._ZTV20TouchGFXGeneratedHAL+0x50): undefined reference to `touchgfx::HAL::blitFillWord(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/generated/Screen1ViewBase.o: in function `Screen1ViewBase::Screen1ViewBase()':
C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/gui_generated/src/screen1_screen/Screen1ViewBase.cpp:25: undefined reference to `touchgfx::AnimatedImage::startAnimation(bool, bool, bool)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/generated/Screen1ViewBase.o: in function `touchgfx::TextButtonStyle<touchgfx::ImageButtonStyle<touchgfx::ClickButtonTrigger> >::setText(touchgfx::TypedText)':
C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/STM32CubeIDE/Debug/../../Middlewares/ST/touchgfx/framework/include/touchgfx/containers/buttons/TextButtonStyle.hpp:59: undefined reference to `touchgfx::TextArea::setTypedText(touchgfx::TypedText const&)'
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:92: STM32H7B3I_DISCO.elf] Error 1
Why?
Also when unzipped folder STM32H7BWorkshop2020_labs123 i see the some error about temperatureBar.setXY. It seem that not generate something.. and compiler print out an undefine reference in both the projects..
thanks
Enal
2021-10-27 12:39 AM
The version 4.13 can be downloaded from the ST website.
But to be fair I don't recommend using it. There were changes to some important fonctions since 4.13 which would require some manual change to that project, it would be better to follow the workshop using TouchGFX 4.17 directly (or 4.18 which was released last week) and use the TouchGFX Board Setup (new name for Aplication Template) for the STM32H7B3-dk.
/Romain
2021-10-27 01:14 PM
Thanks for your advices Roman.
Like write above there are some problems with touch GFX Designer 4.17. (see the errors)
I will try with v 4.18. and i will update you.
thanks
Enal
2021-10-28 12:38 AM
From your screenshots I understood that it was a project you downloaded and then upgraded, is it not the case ? If yes I meant that you shouldn't bother downloading that project or importing generated files to it. Just start with the TBS for the STM32H7B3dk available in Designer and follow the workshop.
/Romain
2022-01-03 01:06 AM
Yes Romain,
Rebuild the project from zero, using touchGFX 4.18.0, like you adviced me, the project work correctly.
I had solved a couples of months ago.
thanks
happy new year!
Enal