cancel
Showing results for 
Search instead for 
Did you mean: 

Error generating code using TouchGFX and Riverdi RVT70HSSFWCA0 display board

gslm
Associate

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?

1 ACCEPTED SOLUTION

Accepted Solutions

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. 

Mohammad MORADI
ST Software Developer | TouchGFX

View solution in original post

6 REPLIES 6

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. 

Mohammad MORADI
ST Software Developer | TouchGFX

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

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

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

Mohammad MORADI
ST Software Developer | TouchGFX

I have a similar (or the same?) problem. All I've done is create a project and added a single background image - no other widgets of any kind. I've already tried the above fix, and the code seemed to generate successfully. However it fails when I attempt to compile.

This is failing with: 

cannot declare variable 'videoController' to be of abstract type 'DedicatedBufferController<1, 480, 288, 960, touchgfx::Bitmap::RGB565>'

make: *** [Application/User/TouchGFX/target/generated/subdir.mk:46: Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o] Error 1

make: *** [makefile:93: all] Error 2

make[1]: *** [makefile:100: Riverdi_70STM32H7_CM7.elf] Error 1

undefined reference to `videoTaskFunc'

 

I also notice that if I attempt to reopen the project in TouchGFX after attempting the above mentioned fix, the screen size and aspect ratio is altered.

I wasn't able to get a complete log from CubeIDE, but I managed to grab one from TouchGFX. (Attached.)

Thanks for your help,

Jason

Hello @jkimble ,

Riverdi is working on this matter, so the solution will be available online soon. 
Please, if you have further questions, create a new thread (post) about it.

Thank you so much

Mohammad MORADI
ST Software Developer | TouchGFX

Just to let everyone know, this issue was resolved with the new version of TouchGFX - v4.23.2.

Installed the new version, and it programmed without any issues.

 

Thanks!