cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX 4.18 does not get compiled in STM32CubeIDE

ARost.9
Associate III

0693W00000FDpnoQAD.pngI have used last released TouchGFX 4.18 to add one .avi video from TouchGFX sample videos to my project but this project does not get compiled in STM32CubeIDE no way and it gives me an error that is listed below:

c:\st\stm32cubeide_1.7.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: ./VideoWidget.o: in function `touchgfx::VideoWidget::~VideoWidget()': C:/TouchGFXProjects/MyApplication_5/Middlewares/ST/touchgfx/framework/source/touchgfx/widgets/VideoWidget.cpp:32: undefined reference to `touchgfx::VideoController::getInstance()'
c:\st\stm32cubeide_1.7.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: ./VideoWidget.o: in function `touchgfx::VideoWidget::handleTickEvent()':
C:/TouchGFXProjects/MyApplication_5/Middlewares/ST/touchgfx/framework/source/touchgfx/widgets/VideoWidget.cpp:68: undefined reference to `touchgfx::VideoController::getInstance()'
c:\st\stm32cubeide_1.7.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: ./VideoWidget.o: in function `touchgfx::VideoWidget::draw(touchgfx::Rect const&) const':
C:/TouchGFXProjects/MyApplication_5/Middlewares/ST/touchgfx/framework/source/touchgfx/widgets/VideoWidget.cpp:104: undefined reference to `touchgfx::VideoController::getInstance()'
c:\st\stm32cubeide_1.7.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: ./VideoWidget.o: in function `touchgfx::VideoWidget::VideoWidget()':
C:/TouchGFXProjects/MyApplication_5/Middlewares/ST/touchgfx/framework/source/touchgfx/widgets/VideoWidget.cpp:26: undefined reference to `touchgfx::VideoController::getInstance()'
c:\st\stm32cubeide_1.7.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: ./VideoWidget.o: in function `touchgfx::VideoWidget::play()':
C:/TouchGFXProjects/MyApplication_5/Middlewares/ST/touchgfx/framework/source/touchgfx/widgets/VideoWidget.cpp:38: undefined reference to `touchgfx::VideoController::getInstance()'
c:\st\stm32cubeide_1.7.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: ./VideoWidget.o:C:/TouchGFXProjects/MyApplication_5/Middlewares/ST/touchgfx/framework/source/touchgfx/widgets/VideoWidget.cpp:63: more undefined references to `touchgfx::VideoController::getInstance()' follow
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:89: STM32F746G_DISCO.elf] Error 1

and the function getInstance() witch error is because of that, is defined(declared) in the file " VideoController.hpp" under project root "Middlewares\ST\touchgfx\framework\include\touchgfx\hal" .

I have done nothing else than creating a TouchGFX project and then add it to STM32CubeIDE workspace.

Please help me. I did every thing to project but still does not work.

4 REPLIES 4
Romain DIELEMAN
ST Employee

Hi,

Is your project a custom project or are you using a TouchGFX Board Setup for one of the ST development boards available in TouchGFX ?

Have you set up Video Decoding in STM32CubeMX in TouchGFX Generator ? This step is necessary to work with the video widget.

/Romain

ARost.9
Associate III

Thanks you very much. I did the way you mentioned and the error is resolved. But now after compile and program the board i have just a noisy LCD with no specific picture on it. I think this version of touchGFX has a lot of bugs.

Hi,

This is a bit unfair 😅. There could be many origins to those bugs, like your hardware setup. Could you provide more information on your setup and how you configured it ? Could you share how you have set the video ? Are you working on a custom project or on one of the TBS available in TouchGFX Designer ? Have you followed the relevant articles in the documentation to work with the video widget ? Could you debug and see the content of the framebuffers ?

/Romain

ARost.9
Associate III

@Romain DIELEMAN​ 

Thanks for your reply. The way i did is i created a project in TouchGFX4.18 and add just one video widget and choose one of the templates named "Simple video 1 small..." and i did these to the STM32F746 discovery board that i want to test the project on it. This is all i had done till now. Before your last reply to my question i can't even neither compile the project in STM32CubeIDE( i imported the project in the STM32CubeIDE workspace) nor in TouchGFX itself. Also it is not possible to directly upload the code from TouchGFX into discovery board and it gives many strange errors. After i did the solution you mentioned i could compile the code on STM32CubeIDE correctly but still it is not possible in TouchGFX4.18. Then when i upload the code on the STM32F746 disco board i have just a noisy LCD with no specific picture.

One thing that was strange for me is that when i open the MX_LIBJPEG_Init(); function there is no code in it and just definition of function is exist in libjpeg.c file:

/* LIBJPEG init function */
void MX_LIBJPEG_Init(void)
{
/***************************************/
   /**
  */
 
  /* USER CODE BEGIN 3 */
  /* USER CODE END 3 */
 
}