Skip to main content
Associate III
October 17, 2023
Solved

TouchGFX-Designer-generated projects have the same name in CubeIDE

  • October 17, 2023
  • 2 replies
  • 2193 views

I have created several projects in TouchGFX Designer v4.22.1 - each with a unique 'Application Name'. I'm using the STM32H747i-DISCO boards (dual-core MCU). When I import any of these into CubeIDE v1.13.2, they always show up with this type of structure in CubeIDE:

STM32H747I-DISCO  (in STM32CubeIDE)

  > Application

  > Drivers

  > STM32H747I-DISCO_CM4  (in CM4)

  > STM32H747I-DISCO_CM7  (in CM7)

     STM32H747I-DISCO.ioc

The problem is that CubeIDE will only allow ONE of these projects to be in its 'workspace' at any given time. The projects that were first created in CubeIDE don't have this issue.

 

Is there a way in TouchGFX to make it such that its projects import into CubeIDE with a unique name for each?

Best answer by BobWalance

@Osman SOYKURT , thank you for your help on this. It took a LOT of effort, but I was able to change the Application name in seven files so that it imported into CubeIDE uniquely and properly. It also took some work in the CM4 and CM7 Run/Debug Configurations (as you hinted at), but this was relatively easy.

I hope that you and your team are able to update TouchGFX code someday.

Here are all of the changes that I found were necessary in order to build CM4 and CM7, and also to be able to download the code into the board. The .ioc and .launch filenames were changed, and all of the highlighted entries in all of the files were changed, too.

STM32747I-DISCO.ioc
ProjectManager.ProjectFileName=STM32H747I-DISCO.ioc

ProjectManager.ProjectName=STM32H747I-DISCO

STM32CubeIDE\.project
<name>STM32H747I-DISCO</name>.

<name>STM32H747I-DISCO.ioc</name>

<locationURI>PARENT-1-PROJECT_LOC/STM32H747I-DISCO.ioc</locationURI>

STM32CubeIDE\CM4\.project
<name>STM32H747I-DISCO_CM4</name>

STM32CubeIDE\CM4\.cproject
<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM4}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1420436034"

<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM4}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1977744108"

<project id="STM32H747I-DISCO_CM4.null.1074626412" name="STM32H747I-DISCO_CM4"/>

STM32CubeIDE\CM7\.project
<name>STM32H747I-DISCO_CM7</name>

STM32CubeIDE\CM7\.cproject
<listOptionValue builtIn="false" value="C:/git/stm32h747i-disco/STM32H747I-DISCO/CM7/Middlewares/ST/touchgfx/lib/core/cortex_m7/gcc"/>

<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM7}/Debug"

<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM7}/Release"

<project id="STM32H747I-DISCO_CM7.null.189274870" name="STM32H747I-DISCO_CM7"/>

STM32CubeIDE\CM7\STM32H747I-DISCO_CM7 Debug.launch
DISCO_CM7.elf&quot;,&quot;fProjectName&quot;:&quot;STM32H747I-DISCO_CM7&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>

<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug\STM32H747I-DISCO_CM7.elf"/>

<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32H747I-DISCO_CM7"/>

<listEntry value="/STM32H747I-DISCO_CM7"/>

 

 

 

2 replies

Osman SOYKURT
Technical Moderator
October 17, 2023

Hello @BobWalance ,

Thank you for your message. I'll discuss this issue with my colleagues.

As a workaround, if you open the .project file in an editor, you should be able to replace the name of your project.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>YOUR_PROJECT_NAME</name>
	<comment/>
	<projects>
	</projects>
...
...


You might also need to set the external loader in the Run/Debug Settings, to be able to run your project on target.

OsmanSOYKURT_0-1697535635946.png

Hope it helps.

Osman SOYKURTST Software Developer | TouchGFX
BobWalanceAuthorBest answer
Associate III
October 17, 2023

@Osman SOYKURT , thank you for your help on this. It took a LOT of effort, but I was able to change the Application name in seven files so that it imported into CubeIDE uniquely and properly. It also took some work in the CM4 and CM7 Run/Debug Configurations (as you hinted at), but this was relatively easy.

I hope that you and your team are able to update TouchGFX code someday.

Here are all of the changes that I found were necessary in order to build CM4 and CM7, and also to be able to download the code into the board. The .ioc and .launch filenames were changed, and all of the highlighted entries in all of the files were changed, too.

STM32747I-DISCO.ioc
ProjectManager.ProjectFileName=STM32H747I-DISCO.ioc

ProjectManager.ProjectName=STM32H747I-DISCO

STM32CubeIDE\.project
<name>STM32H747I-DISCO</name>.

<name>STM32H747I-DISCO.ioc</name>

<locationURI>PARENT-1-PROJECT_LOC/STM32H747I-DISCO.ioc</locationURI>

STM32CubeIDE\CM4\.project
<name>STM32H747I-DISCO_CM4</name>

STM32CubeIDE\CM4\.cproject
<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM4}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1420436034"

<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM4}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1977744108"

<project id="STM32H747I-DISCO_CM4.null.1074626412" name="STM32H747I-DISCO_CM4"/>

STM32CubeIDE\CM7\.project
<name>STM32H747I-DISCO_CM7</name>

STM32CubeIDE\CM7\.cproject
<listOptionValue builtIn="false" value="C:/git/stm32h747i-disco/STM32H747I-DISCO/CM7/Middlewares/ST/touchgfx/lib/core/cortex_m7/gcc"/>

<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM7}/Debug"

<builder buildPath="${workspace_loc:/STM32H747I-DISCO_CM7}/Release"

<project id="STM32H747I-DISCO_CM7.null.189274870" name="STM32H747I-DISCO_CM7"/>

STM32CubeIDE\CM7\STM32H747I-DISCO_CM7 Debug.launch
DISCO_CM7.elf&quot;,&quot;fProjectName&quot;:&quot;STM32H747I-DISCO_CM7&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>

<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug\STM32H747I-DISCO_CM7.elf"/>

<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32H747I-DISCO_CM7"/>

<listEntry value="/STM32H747I-DISCO_CM7"/>

 

 

 

Osman SOYKURT
Technical Moderator
October 18, 2023

Hello @BobWalance ,

Thank you for your investigation, it will help us to treat this issue.
I'll invite you to select your answer as "Solution" so people on community could easily find and reproduce your workaround until we release a patch for it.
Thanks.

Osman SOYKURTST Software Developer | TouchGFX
Associate
May 2, 2025

Also, if the project name created by TouchGFX designer is changed in STM32CubeIDE the project cannot be rebuild in the designer.

Furthermore, the designer crashes when Texture Mapper widget is opened.