2023-10-16 08:12 PM
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?
Solved! Go to Solution.
2023-10-17 01:22 PM
@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","fProjectName":"STM32H747I-DISCO_CM7","fPerformBuild":true,"fDownload":true,"fLoadSymbols":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"/>
2023-10-17 02:44 AM
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.
Hope it helps.
2023-10-17 01:22 PM
@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","fProjectName":"STM32H747I-DISCO_CM7","fPerformBuild":true,"fDownload":true,"fLoadSymbols":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"/>
2023-10-18 07:16 AM
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.