Skip to main content
gslm
Associate
December 27, 2023
Solved

Error generating code using TouchGFX and Riverdi RVT70HSSFWCA0 display board

  • December 27, 2023
  • 1 reply
  • 4289 views

Hello, I am attempting to follow the tutorial listed here in order to generate a simple screen with some widgets for a Riverdi RVT70HSSFWCA0 display board. The board is correctly powered and i can access it with an external ST-LINK.

However, when attempting to generate code with TouchGFX Designer (4.23.0) i am getting the following error in class DoubleBufferedVideoController during project compilation:

 

C:/TouchGFXProjects/riverdi7-0001/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:36:70: error: cannot declare variable '{anonymous}::videoController' to be of abstract type 'DoubleBufferedVideoController<1, 800, 480, 2400, touchgfx::Bitmap::RGB888>'
 36 | DoubleBufferedVideoController<1, 800, 480, 800 * 3U, Bitmap::RGB888> videoController;
 | ^~~~~~~~~~~~~~~
In file included from C:/TouchGFXProjects/riverdi7-0001/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:27:
../../../CM7/TouchGFX/target/generated/DoubleBufferedVideoController.hpp:49:7: note: because the following virtual functions are pure within 'DoubleBufferedVideoController<1, 800, 480, 2400, touchgfx::Bitmap::RGB888>':
 49 | class DoubleBufferedVideoController : public touchgfx::VideoController
 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../CM7/TouchGFX/target/generated/MJPEGDecoder.hpp:22,
 from ../../../CM7/TouchGFX/target/generated/HardwareMJPEGDecoder.hpp:21,
 from C:/TouchGFXProjects/riverdi7-0001/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:26:
../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/VideoController.hpp:219:18: note: 'virtual void touchgfx::VideoController::setVideoFrameRateCompensation(bool)'
 219 | virtual void setVideoFrameRateCompensation(bool allow) = 0;
 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arm-none-eabi-gcc "C:/TouchGFXProjects/riverdi7-0001/CM7/FATFS/Target/fatfs_platform.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H747xx -c -I../../../CM7/Core/Inc -I../../../CM7/FATFS/Target -I../../../CM7/FATFS/App -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../../Utilities/JPEG -I../../../Middlewares/Third_Party/FatFs/src -I../../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../../../Drivers/CMSIS/Include -I../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include -I../../CM7/../../CM7/TouchGFX/generated/fonts/include -I../../CM7/../../CM7/TouchGFX/generated/gui_generated/include -I../../CM7/../../CM7/TouchGFX/generated/images/include -I../../CM7/../../CM7/TouchGFX/generated/texts/include -I../../CM7/../../CM7/TouchGFX/generated/videos/include -I../../CM7/../../CM7/TouchGFX/gui/include -I../../../CM7/USB_HOST/App -I../../../CM7/USB_HOST/Target -I../../../Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I../../../Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Inc -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Application/User/FATFS/Target/fatfs_platform.d" -MT"Application/User/FATFS/Target/fatfs_platform.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Application/User/FATFS/Target/fatfs_platform.o"
make[1]: *** [Application/User/TouchGFX/target/generated/subdir.mk:39: Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [makefile:102: all] Error 2
"make -j8 all" terminated with exit code 2. Build might be incomplete.

17:47:50 Build Failed. 4 errors, 0 warnings. (took 21s.660ms)

 

Which seems to be from this snippet in file TouchGFXGeneratedHAL.cpp:

 

namespace
{
LOCATION_PRAGMA_NOLOAD("Video_RGB_Buffer")
uint32_t videoRGBBuffer[576000] LOCATION_ATTRIBUTE_NOLOAD("Video_RGB_Buffer");
DoubleBufferedVideoController<1, 800, 480, 800 * 3U, Bitmap::RGB888> videoController;
}

 

  • This also happens after importing it to STM32CubeIDE (1.14.0) and attempting to build from the IDE directly.
  • For further context, this also occurs even when attempting to generate am empty project with no images & widgets.
  • I have ensured Visual Studio Redistributable 2015-2022 is already installed.

Any tips on what could be causing this issue?

This topic has been closed for replies.
Best answer by Mohammad MORADI ESFAHANIASL

Hello @gslm ,

Unfortunately, I can see that there is a problem. We will fix this issue as soon as possible, but as a temporary solution for you to start working, open the STM32CubeMX project (Riverdi_70STM32H7.ioc file), go to Middleware and Software Packs -> X-CUBE-TOUCHGFX, under the TouchGFX Generator tab, change the Vector Rendering to Software. Then, press the Generate Code button on top right of the screen. Now, you should be able to compile with no errors. 
CubeMX settingsCubeMX settings

 
Again, sorry for the inconvenience.
I hope this helps you. 

1 reply

ST Employee
December 28, 2023

Hello @gslm ,

Unfortunately, I can see that there is a problem. We will fix this issue as soon as possible, but as a temporary solution for you to start working, open the STM32CubeMX project (Riverdi_70STM32H7.ioc file), go to Middleware and Software Packs -> X-CUBE-TOUCHGFX, under the TouchGFX Generator tab, change the Vector Rendering to Software. Then, press the Generate Code button on top right of the screen. Now, you should be able to compile with no errors. 
CubeMX settingsCubeMX settings

 
Again, sorry for the inconvenience.
I hope this helps you. 

gslm
gslmAuthor
Associate
December 28, 2023

Thanks for the quick reply @Mohammad MORADI ESFAHANIASL!

I downgraded TouchGFX Designer to 4.22 and could only change the Vector Rendering to "Disabled" for this test as oposed to "Software", but nevertheless this did result in a succesful compilation & board flashing. I believe there was a mismatch between the TouchGFX Designer and STM32CubeIDE versions of X-CUBE-TOUCHGFX.

touchgfx.png

ST Employee
January 2, 2024

You are very welcome, glad to hear it works now.

Thank you for the observation, we will definitely consider it.