cancel
Showing results for 
Search instead for 
Did you mean: 

Hello, I download the material available in the example about workshop2020 touchFX in youtube link: https://www.youtube.com/watch?v=rYrRjXyAYvs Compiling with STCubeIDE the projects generates some error.

EMir.1
Associate II

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

Enal0693W00000FDZ8LQAX.png

13 REPLIES 13
MM..1
Chief III

I dont check this concrete, but when you upgrade TGFX creates backup and IDE sometimes mix files. Then good practice is delete backup folder...

Second step is generate code in TGFX designer without error and in IDE use CLEAN and refresh project.

And final step is correct changed or obsolete function that in new version not exist. Here for example animationlogo need other method to start anim.

And if you plan use ioc file additional steps is requiáred for update software package TGFX...

EMir.1
Associate II

0693W00000FDZXGQA5.png@MM.1 thanks for your answer.

I don't understand where is the backup folder that you told me. About TouchGFX Designer i have installed only vers 4.0.17.

Did you told me the specific folder in the project where there are again backup files?

please, tell me the path where i can find these.. (i share the touchGfx folder image)

Yes, laway when i regnegerate file with Touch GX without error then i refresh and clean the environent STCube IDE. (thanks for your advice)

I don't understand your last sentences..

(And if you plan use ioc file additional steps is requiáred for update software package TGFX...)

Do you want that i download with .ioc (CubeMX) vers 4.0.13 of TouchGFX?!

thanks

bye

Enal0693W00000FDZXuQAP.png

MM..1
Chief III

Try in Middlewares\ST\

and versions is 4.17 and 4.13 FYI

And if you plan use ioc file in your project folder, then in this file is coded used version TGFX and generating any change in MX plugin overwrites your external upgrade 4.17 back to 4.13 usw

Jiri VLCEK
ST Employee

Hello Enal,

Could you please try to do following procedure?

  • open .ioc file in CubeMX
  • change version of TouchGFX generator to v4.17
  • regenerate the project in CubeMX
  • open TouchGFX designer and regenerate project there

As mentioned here:

https://support.touchgfx.com/docs/miscellaneous/updating-to-a-new-touchgfx-version/#update-touchgfx-generator

Best Regards,

Jiri

EMir.1
Associate II

Hello Jiri,

I follow your procedure.. but nothing..

The version of the generator is already in v 4.17 ( v 4.13 is not yet available), so i re-generate the original project..

i also remove the folder touchgfx_backup in the folder middleware like suggested by MM.1 but nothing the errors are still present..

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

collect2.exe: error: ld returned 1 exit status

make: *** [makefile:89: STM32H7B3I_DISCO.elf] Error 1

i attach the image with the list they comes from middleware\ST\touchgfx\lib\core\cortex_m7gcc\libtouchgfx-float-abi-hard.a file..

thanks

Enal

0693W00000FDhRBQA1.png

MM..1
Chief III

Linker say you where is problem ... duplicate definition ... seems upgrade from 13 to 17 isnt complete.

For beginer i dont recommend upgrade, simply go back to start unzip workshop import project to IDE and build. Dont open TouchGFX or download and use 13

EMir.1
Associate II

Hi MM.1,

yes, if i open Cube IDE without touch nothing, it compiles correctly. Thanks.

But if i want to modify something in touchGfx about this project i have the hands tied...

So, i can create a new project in touchGFX 4.17 with modification and then copy the folder in that projects workshop.. e regenerate with CubeMX. mh.. it's a little tricky to understand how is structured the folders project and files...

If you want to advice something to follow.. because that video.. and workshopProject now are unusable if you want modify something. (v 4.0.13 is no longer available..) :(

thanks

bye

Enal

MM..1
Chief III
EMir.1
Associate II

Sorry MM1,0693W00000FDprlQAD.png i'm not explain myself well.. the touch GFX 4.13.0 inside CubeMX in not longer available..