Skip to main content
Associate III
October 17, 2023
Solved

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

  • October 17, 2023
  • 7 replies
  • 2225 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?

    This topic has been closed for replies.
    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"/>

     

     

     

    7 replies

    Osman SOYKURT
    ST 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.

    ST 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
    ST 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.

    ST Software Developer | TouchGFX
    Associate II
    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.