Al intentar crear un nuevo proyecto en TouchGFX, a veces se produce el siguiente error:
DoubleBufferedVideoController<1, 1024, 600, 1024*3U, Bitmap::RGB888> videoController;
^~~~~~~~~~~~~~~
En el archivo incluido de CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:26:0:
CM7/TouchGFX/target/generated/DoubleBufferedVideoController.hpp:49:7: nota: debido a que las siguientes funciones virtuales son puras dentro de ‘DoubleBufferedVideoController<1, 1024, 600, 3072, (touchgfx::Bitmap::BitmapFormat)1>‘:
clase DoubleBufferedVideoController : public touchgfx::VideoController
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
En el archivo incluido de CM7/TouchGFX/target/generated/MJPEGDecoder.hpp:22:0,
de CM7/TouchGFX/target/generated/HardwareMJPEGDecoder.hpp:21,
de CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:25:
CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/VideoController.hpp:219:18: nota: virtual void touchgfx::VideoController::setVideoFrameRateCompensation(bool)
virtual void setVideoFrameRateCompensation(bool allow) = 0;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc/makefile_cm7:503: falló la receta para el objetivo ‘CM7/TouchGFX/build/Riverdi_70STM32H7/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.o
make[3]: *** [CM7/TouchGFX/build/Riverdi_70STM32H7/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL .o] Error 1
make[3]: Saliendo del directorio ‘c:/Users/cliff/Dropbox/microTOC/MicroTOCDisplayDesign/MyApplication27’
gcc/makefile_cm7:438: falló la receta para el objetivo ‘generate_assets
make[2]: *** [generate_assets] Error 2
make[2]: Saliendo del directorio ‘c:/Users/cliff/Dropbox/microTOC/MicroTOCDisplayDesign/MyApplication27’
Makefile_cm7:51: falló la receta para el objetivo “todos”.
make[1]: *** [all] Error 2
make[1]: Abandonando el directorio ‘C:/Users/cliff/Dropbox/microTOC/MicroTOCDisplayDesign/MyApplication27/gcc’.
../../gcc/Makefile:10: falla la receta para el objetivo ‘flash
make: *** [flash] Error 2
Fallido
Fallido
A continuación encontrarás una breve solución para solucionar el problema anterior.
Figura 1. Error de DoubleBufferedVideoController
El primer paso es abrir el archivo .ioc con STM32CubeIDE.
Packs de middleware y software -> TouchGFX -> Generador TouchGFX
Figura 2. CubeIDE setting
El segundo paso es establecer el renderizado vectorial en Software (el hardware dará el mismo problema) y la decodificación de vídeo en hardware.