En essayant de créer un nouveau projet dans TouchGFX, vous obtenez parfois l’erreur suivante :
DoubleBufferedVideoController<1, 1024, 600, 1024*3U, Bitmap::RGB888> videoController ;
^~~~~~~~~~~~~~~
Dans le fichier inclus dans CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:26:0 :
CM7/TouchGFX/target/generated/DoubleBufferedVideoController.hpp:49:7 : note : because following virtual functions are pure within ‘DoubleBufferedVideoController<1, 1024, 600, 3072, (touchgfx::Bitmap::BitmapFormat)1>‘ :
class DoubleBufferedVideoController : public touchgfx::VideoController
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dans le fichier inclus dans CM7/TouchGFX/target/generated/MJPEGDecoder.hpp:22:0,
de CM7/TouchGFX/target/generated/HardwareMJPEGDecoder.hpp:21,
à partir de CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:25 :
CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/VideoController.hpp:219:18 : note : virtual void touchgfx::VideoController::setVideoFrameRateCompensation(bool)
virtual void setVideoFrameRateCompensation(bool allow) = 0 ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc/makefile_cm7:503 : échec de la recette pour la cible ‘CM7/TouchGFX/build/Riverdi_70STM32H7/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.o’.
make[3] : *** [CM7/TouchGFX/build/Riverdi_70STM32H7/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL .o] Erreur 1
make[3] : quitte le répertoire ‘c:/Users/cliff/Dropbox/microTOC/MicroTOCDisplayDesign/MyApplication27’
gcc/makefile_cm7:438 : la recette pour la cible ‘generate_assets’ a échoué
make[2] : *** [generate_assets] Erreur 2
make[2] : quitte le répertoire ‘c:/Users/cliff/Dropbox/microTOC/MicroTOCDisplayDesign/MyApplication27’
Makefile_cm7:51 : échec de la recette pour la cible ‘all’.
make[1] : *** [all] Erreur 2
make[1] : quitte le répertoire ‘C:/Users/cliff/Dropbox/microTOC/MicroTOCDisplayDesign/MyApplication27/gcc’
../../gcc/Makefile:10 : échec de la recette pour la cible ‘flash’.
make : *** [flash] Erreur 2
Échec
Échec
Vous trouverez ci-dessous une solution succincte pour résoudre ce problème.
Figure 1. Erreur DoubleBufferedVideoController
La première étape consiste à ouvrir le fichier .ioc avec STM32CubeIDE.
Middleware et Software Packs -> TouchGFX -> TouchGFX generator
Figure 2. CubeIDE setting
La deuxième étape consiste à régler le rendu vectoriel sur Software (le hardware donnera le même problème) et le décodage vidéo sur hardware.