cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H747-DISCO with TouchGFX and ADC

JAbra
Associate II

Hi. I'm using a STM32H747-DISCO to sample a signal and would like to display the result on the TFT-display.

I have written a program code that do the ADC-sample in CubeIDE and I'm only using the M7 core, the M4 Core is put in sleep mode.

I started TouchGFX and ran a simple example and it worked.

Now to the problem.

The ADC code is written in C using a CubeIDE-project.

TouchGFX export C++ code without a CubeIDE-project. This use RTOS and it's hard to understand which core it's using or if it's using both cores.

How can I export the TouchGFX code so I can debug it in CubeIDE and implement the ADC and GPIO functions?

12 REPLIES 12
HP
Senior III

If you're using the TouchGFX designer 4.13.0, and Application Template (AT) starting with 3 (eg. 3.0.0) then you should have a CubeIDE project generated alongside the TouchGFX project.

I'm not sure if the AT have been updated to V.3 for that chip yet but that should come at some point if not already.

If not, then you have to create a cubeIDE project first and from that integrate the TouchGFX design into that.

JAbra
Associate II

For some reason, there is no CubeIDE-project or CubeMX-project generated by TouchGFX when using the STM32H747I DISCO template. It is generated when selecting other board templates though.

When creating a cubeIDE project, the option to integrate TouchGFX is not available for this board for some reason.

My theory is that it's not available because the microprocessor has two cores (Cortex®-M7 and Cortex®-M4) but I only need one of the cores for this project.

tushar_tp
Associate III

Hello Guys,

Check answer below it is expected in Q4 2020.

https://community.st.com/s/feed/0D53W000004HLfu

We should push the ST to release it sooner. I believe from my experience with H7 parts that ST is not serious about proactively supporting these devices. They release H7 part but without any proper SDK support.

Martin KJELDSEN
Chief III

Yes, H747 dual core does not supported TouchGFX through Additional Software until Q4 2020 according to cubemx team. So, you can't export a CubeIDE project. Push all you like, i doubt they can move it up before then although it would be nice =)

I think you could easily get some inspiration from the other Application templates CubeIDE projects and just create it yourself until then. I'll help you. You could create a non-TouchGFX project with correct clock settings etc, e.g. using the Board Selector in CubeMX, using your own ADC settings as well, and then merge it with TouchGFX.

/Martin

JAbra
Associate II

I solved it by using TouchGFX and adding my other C code as a different RTOS task. This was done by rewriting the Make file generated by TouchGFX and works well except the disadvantage that I'm not able to debug, which is a bit annoying.

Hello.

I'm trying exactly this. I try to merge a TouchGFX-generated app with a CubeIDE/MX generated one. But instead of merging my code to the TGFX-app, I try to merge it the other way around to avoid the problems mentioned by JAbra (lack of debugging etc.).

What have I done:

  • started by generating an app for the STM32H747IX-DISCO-board using the MIPI/DSI-interface for the display (a must in the target-system).
  • generated an app in CubeIDE/MX and merged abovce one together by 'educated guessing'
  • had to eliminate/exclude from build some parts (simulator)
  • changing the Linker-script-file
  • rewrote the OSWrappers_cmsis.cpp due to the fact that I plan to use CMSIS 2
  • used the SystemClock_Config-routine from the TouchGFX-generated BoardConfiguration.cpp.
  • The TouchGFX-application runs as a thread in the CubeIDE/MX-generated application using a simple C-api-wrapper for the class

So far I'm able to compile the merged apps using the provided libtouchgfx-float.abi.hard for gcc. It doesn't crash anymore at startup, the QSPI-flash and external RAM are attached and accessible. The application is waiting forever on the vsync_queue which should be triggered in HAL_DSI_TearingEffectCallback. It seems that I'm missing something. It would be nice if there is a high-level-description how the TouchGFX-app is workiung and with which interrupts/resources the transfer of the framebuffer to the display is implemented. Are there such doczmentations anywhere?

OBorz.1
Associate II

Hello HBCH,

could you please explain that in more detail.

Unfortunately, I cannot follow the steps.

I have a STM32H747I Discovery and try to create movements on the display using an analog joystick.

I can't get the link between TouchGFX and CubeIDE.

I would be very grateful for any help.

Thanks in advance.

Hello.

As you may know, the TGFX-generator is not supporting the dual-core-processors such as 747 or 757 directly at the moment (seems to be planned for Q4 2020). There is a kind of support in TouchGFX-designer. You can generate a TGFX-app within the designer for the 747-DISCO-board, compile it, download to the board und run it. But with that environment you can't debug it.

Goal of my approach is to have a CubeIDE-project (with CubeMX, Debugger etc) which is running the TGFX-environment as well as my own application.

Regards

You can actually take the elf file that was produced by the arm-gcc (same version as CubeIDEs) in our TouchGFX environment and debug that with the gdb-server in CubeIDE.

/Martin