cancel
Showing results for 
Search instead for 
Did you mean: 

Keil and touchGFX broken

allard
Senior

I'm new to touchGFX and I'm using Keil (v5.xx). I cant compile the touchGFX example for the 746G-Discovery due to missing files and I'm having the same kind of problems when I generate a project using the designer.

When I try to compile the example (STM32Cube_FW_F7_V1.16.0\Projects\STM32746G-Discovery\Demonstrations\TouchGFX\MDK-ARM) I get the following errors:

../Core/Src/main.cpp(20): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Core/Src/main.cpp: 0 warnings, 1 error
compiling Gauge.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/custom_controls_screen/Gauge.cpp: 0 warnings, 1 error
compiling EasingEquationGraph.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/easing_equation_screen/EasingEquationGraph.cpp: 0 warnings, 1 error
compiling CircularProgress.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/custom_controls_screen/CircularProgress.cpp: 0 warnings, 1 error
compiling AbstractGraph.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/AbstractGraph.cpp: 0 warnings, 1 error
compiling ThreeWayProgressBar.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/custom_controls_screen/ThreeWayProgressBar.cpp: 0 warnings, 1 error
compiling CustomControlsView.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/custom_controls_screen/CustomControlsView.cpp: 0 warnings, 1 error
compiling CustomControlsPresenter.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/custom_controls_screen/CustomControlsPresenter.cpp: 0 warnings, 1 error
compiling EasingEquationPresenter.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/easing_equation_screen/EasingEquationPresenter.cpp: 0 warnings, 1 error
compiling EasingEquationView.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/easing_equation_screen/EasingEquationView.cpp: 0 warnings, 1 error
compiling FrontendApplication.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/common/FrontendApplication.cpp: 0 warnings, 1 error
compiling Graph.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/Graph.cpp: 0 warnings, 1 error
compiling GraphBelow.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/GraphBelow.cpp: 0 warnings, 1 error
compiling GraphDots.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/GraphDots.cpp: 0 warnings, 1 error
compiling GraphLine.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/GraphLine.cpp: 0 warnings, 1 error
compiling GraphPresenter.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/GraphPresenter.cpp: 0 warnings, 1 error
compiling PieChart.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/PieChart.cpp: 0 warnings, 1 error
compiling GraphView.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/gui/src/graph_screen/GraphView.cpp: 0 warnings, 1 error
compiling BoardConfiguration.cpp...
../../../../../Middlewares/ST/TouchGFX/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Scanline.hpp(19): error:  #5: cannot open source input file "touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp": No such file or directory
  #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
../Gui/target/BoardConfiguration.cpp: 0 warnings, 1 error

This is with the most recent STMCubeF7 pack and without any modifications, it should work out of the box..

Any idea's?

1 ACCEPTED SOLUTION

Accepted Solutions
Alexandre RENOUX
Principal

Hello,

It works on my side. Do you have TouchGFX on your computer ?

If not please install it either via CubeMX or on st.com

https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-touchgfx.html

Otherwise,

  1. Use TouchGFX Designer
  2. Select the Application Template STM32F746G-Discovery
  3. Generate code
  4. Open the .ioc file in CubeMX
  5. Change IDE to MDK-ARM
  6. Generate code with CubeMX
  7. Generate code with Designer
  8. Open your project in Keil
  9. Build your project : you should not have errors

/Alexandre

View solution in original post

3 REPLIES 3
Alexandre RENOUX
Principal

Hello,

It works on my side. Do you have TouchGFX on your computer ?

If not please install it either via CubeMX or on st.com

https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-touchgfx.html

Otherwise,

  1. Use TouchGFX Designer
  2. Select the Application Template STM32F746G-Discovery
  3. Generate code
  4. Open the .ioc file in CubeMX
  5. Change IDE to MDK-ARM
  6. Generate code with CubeMX
  7. Generate code with Designer
  8. Open your project in Keil
  9. Build your project : you should not have errors

/Alexandre

allard
Senior

Aha, I was not aware I had to open the project in cube and then re-open en re-generate code, I thought the generate button in designer was all I need.

It is all you need when you use the default IDE which is STM32CubeIDE.

The IDE selection is handled in one place: the CubeMX project.

The TouchGFX Designer retrieves the selected IDE information by parsing the CubeMX project (.ioc file) at code generation step.

So if you want to switch to IAR or Keil you have to set it in the CubeMX project dedicated section, it will be stored in the .ioc file and thus the Designer will be notified on the next code generation.

Best regards,

Nicolas