cancel
Showing results for 
Search instead for 
Did you mean: 

32F429IDISCOVERY-DISCO1 problem with compilation

Artur_B
Associate II

Hi

I am trying to use TouchGFX with my 32F429IDISCOVERY, DISCO1 according to the video https://www.youtube.com/watch?v=VOs2LYO7wSA) and the description https://touchgfx.zendesk.com/hc/en-us/articles/360021620431-Configuring-STM32F429I-DISCO

I use STM32CubeIDE Version: 1.0.2 and TouchGFX 4.12.2

Unfortunately It does not work still I have the following errors.

make -j4 all

arm-none-eabi-g++ -o "First_Project.elf" @"objects.list" -l:libtouchgfx-float-abi-hard.a -mcpu=cortex-m4 -T"F:\Workspace_STM32CubeIDE\First_Project\STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="First_Project.map" -Wl,--gc-sections -static -L"F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group

Src/BoardConfiguration.o: In function `FrontendApplication::handleTickEvent()':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../TouchGFX/gui/include/gui/common/FrontendApplication.hpp:18: undefined reference to `Model::tick()'

Src/BoardConfiguration.o: In function `FrontendHeapBase::gotoStartScreen(FrontendApplication&)':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:75: undefined reference to `FrontendApplicationBase::gotoScreen1ScreenNoTransition()'

Src/BoardConfiguration.o: In function `FrontendHeap::FrontendHeap()':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../TouchGFX/gui/include/gui/common/FrontendHeap.hpp:68: undefined reference to `FrontendApplication::FrontendApplication(Model&, FrontendHeap&)'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../TouchGFX/gui/include/gui/common/FrontendHeap.hpp:68: undefined reference to `Model::Model()'

Src/BoardConfiguration.o:(.data._ZL12fontProvider+0x0): undefined reference to `vtable for ApplicationFontProvider'

Src/BoardConfiguration.o: In function `touchgfx::HAL& touchgfx::touchgfx_generic_init<STM32F4HAL>(touchgfx::DMA_Interface&, touchgfx::LCD&, touchgfx::TouchController&, short, short, unsigned short*, unsigned long, unsigned long)':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Middlewares/ST/TouchGFX/touchgfx/framework/include/common/TouchGFXInit.hpp:89: undefined reference to `BitmapDatabase::getInstance()'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Middlewares/ST/TouchGFX/touchgfx/framework/include/common/TouchGFXInit.hpp:89: undefined reference to `BitmapDatabase::getInstanceSize()'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Middlewares/ST/TouchGFX/touchgfx/framework/include/common/TouchGFXInit.hpp:96: undefined reference to `touchgfx::Texts::setLanguage(unsigned short)'

Src/BoardConfiguration.o: In function `ApplicationFontProvider::~ApplicationFontProvider()':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../TouchGFX/generated/fonts/include/fonts/ApplicationFontProvider.hpp:24: undefined reference to `vtable for ApplicationFontProvider'

Src/STM32F4HAL.o: In function `HAL_LTDC_LineEventCallback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/STM32F4HAL.cpp:94: undefined reference to `touchgfx::OSWrappers::signalVSync()'

Src/STM32F4HAL.o:(.rodata._ZTV10STM32F4HAL+0x48): undefined reference to `touchgfx::HAL::blitCopy(unsigned short const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned char, bool, unsigned short, touchgfx::Bitmap::BitmapFormat, touchgfx::Bitmap::BitmapFormat)'

Src/STM32F4HAL.o:(.rodata._ZTV10STM32F4HAL+0x58): undefined reference to `touchgfx::HAL::blitFill(touchgfx::colortype, unsigned short, unsigned short, unsigned short, unsigned short, unsigned char, unsigned short, touchgfx::Bitmap::BitmapFormat)'

Src/STM32F4HAL.o:(.rodata._ZTV10STM32F4HAL+0x8c): undefined reference to `touchgfx::HAL::configurePartialFrameBuffer(unsigned short, unsigned short, unsigned short, unsigned short)'

Src/STM32F4HAL.o:(.rodata._ZTV10STM32F4HAL+0x9c): undefined reference to `touchgfx::HAL::drawDrawableInDynamicBitmap(touchgfx::Drawable&, unsigned short)'

Src/STM32F4HAL.o:(.rodata._ZTV10STM32F4HAL+0xa0): undefined reference to `touchgfx::HAL::drawDrawableInDynamicBitmap(touchgfx::Drawable&, unsigned short, touchgfx::Rect const&)'

Src/main.o: In function `main':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/main.cpp:144: undefined reference to `osThreadCreate'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/main.cpp:151: undefined reference to `osKernelStart'

Src/main.o: In function `StartDefaultTask(void const*)':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/main.cpp:471: undefined reference to `osDelay'

Src/usb_host.o: In function `MX_USB_HOST_Init':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usb_host.c:76: undefined reference to `USBH_Init'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usb_host.c:80: undefined reference to `USBH_RegisterClass'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usb_host.c:84: undefined reference to `USBH_Start'

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usb_host.c:91: undefined reference to `CDC_Class'

Src/usbh_conf.o: In function `HAL_HCD_SOF_Callback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usbh_conf.c:137: undefined reference to `USBH_LL_IncTimer'

Src/usbh_conf.o: In function `HAL_HCD_Connect_Callback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usbh_conf.c:147: undefined reference to `USBH_LL_Connect'

Src/usbh_conf.o: In function `HAL_HCD_Disconnect_Callback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usbh_conf.c:157: undefined reference to `USBH_LL_Disconnect'

Src/usbh_conf.o: In function `HAL_HCD_HC_NotifyURBChange_Callback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usbh_conf.c:171: undefined reference to `USBH_LL_NotifyURBChange'

Src/usbh_conf.o: In function `HAL_HCD_PortEnabled_Callback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usbh_conf.c:181: undefined reference to `USBH_LL_PortEnabled'

Src/usbh_conf.o: In function `HAL_HCD_PortDisabled_Callback':

F:/Workspace_STM32CubeIDE/First_Project/Debug/../Src/usbh_conf.c:191: undefined reference to `USBH_LL_PortDisabled'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(HAL.o): In function `touchgfx::HAL::taskEntry()':

(.text._ZN8touchgfx3HAL9taskEntryEv+0x12): undefined reference to `touchgfx::OSWrappers::waitForVSync()'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(HAL.o): In function `touchgfx::HAL::unlockFrameBuffer()':

(.text._ZN8touchgfx3HAL17unlockFrameBufferEv+0x0): undefined reference to `touchgfx::OSWrappers::giveFrameBufferSemaphore()'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(HAL.o): In function `touchgfx::HAL::lockFrameBuffer()':

(.text._ZN8touchgfx3HAL15lockFrameBufferEv+0xa): undefined reference to `touchgfx::OSWrappers::takeFrameBufferSemaphore()'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(HAL.o): In function `touchgfx::HAL::initialize()':

(.text._ZN8touchgfx3HAL10initializeEv+0x4): undefined reference to `touchgfx::OSWrappers::initialize()'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(DMA.o): In function `touchgfx::DMA_Interface::addToQueue(touchgfx::BlitOp const&)':

(.text._ZN8touchgfx13DMA_Interface10addToQueueERKNS_6BlitOpE+0x1c): undefined reference to `touchgfx::OSWrappers::tryTakeFrameBufferSemaphore()'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(DMA.o): In function `touchgfx::DMA_Interface::waitForFrameBufferSemaphore()':

(.text._ZN8touchgfx13DMA_Interface27waitForFrameBufferSemaphoreEv+0x2): undefined reference to `touchgfx::OSWrappers::takeFrameBufferSemaphore()'

(.text._ZN8touchgfx13DMA_Interface27waitForFrameBufferSemaphoreEv+0xa): undefined reference to `touchgfx::OSWrappers::giveFrameBufferSemaphore()'

F:\Workspace_STM32CubeIDE\First_Project\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(DMA.o): In function `touchgfx::DMA_Interface::executeCompleted()':

(.text._ZN8touchgfx13DMA_Interface16executeCompletedEv+0x2e): undefined reference to `touchgfx::OSWrappers::giveFrameBufferSemaphoreFromISR()'

collect2.exe: error: ld returned 1 exit status

make: *** [makefile:60: First_Project.elf] Error 1

"make -j4 all" terminated with exit code 2. Build might be incomplete.

20:20:19 Build Failed. 23 errors, 0 warnings. (took 903ms)

Regards

Arthur

10 REPLIES 10
Martin KJELDSEN
Chief III

Some of those linker issues could stem from the fact that you did not "Generate" Code from within the Designer. Since 4.12.0 users have to generate code manually.

Other errors seem to stem from the fact that you are not compiling the source code for FreeRTOS. Check that the files are present in the project.

/Martin

Artur_B
Associate II

I use "Generate Code" button within the Designer 🙂

Second problem is:

If I try to use touchgfx independent on Cube IDE and Run the project "Run Target" It does not work too. I have the errors too.

"Flash

       make -f ../gcc/Makefile -j8 flash

       Converting images

       /usr/bin/sh: C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe: No such file or directory

       gcc/Makefile:356: recipe for target '_intflash_' failed

       make[1]: *** [_intflash_] Error 127

       make: *** [flash] Error 2

       ../gcc/Makefile:48: recipe for target 'flash' failed

       Failed

   Failed"

Has anyone checked the latest version of touchgfx with the disco?

Maybe there is a problem with it but I think it's rather too poor my experience 🙂

Artur_B
Associate II

Second problem has been already solved :):):)

ALL FreeRTOS file there are (see attached file)0690X00000ArorVQAR.jpg

You need to install ST-Link utility. Our Makefiles use it so that you can "Run target" - And for boards with external Flash the external flashloader .stldr's are also referenced from within here.

/Martin

Can you find OSWrappers.cpp in your project? That's where the missing symbol is coming from.

/Martin

Artur_B
Associate II

Yes. There is0690X00000ArqfRQAR.jpg

Is your project set to compile C++ or just C ? Seems like there are a lot of symbols from cpp files missing.

/Martin

Artur_B
Associate II

Target language was set to C++.

Artur_B
Associate II

Here is a video where is showed how I create the Project.

https://www.youtube.com/watch?v=Xj5y4boiICo&feature=youtu.be