Skip to main content
B.Michele
Associate III
May 4, 2023
Solved

STM32Cube development system IDE, Workspace, Cube Repository, Project Explorer, Backup...

  • May 4, 2023
  • 1 reply
  • 10888 views

Hi,

I'm start to Develop a New Project system with eLearning programs. I would like to mainly use a single development tool: STM32 CubeIDE with an .ioc configure and C Firmware Source and Include code...

1) Is it possible to use only the CubeIDE almost exclusively, to create a project, add firmware, debug and program the board to micro STM32 ?? (Eventually use the Cube MX only to retrieve a project from a NUCLEO BOARD ??)

2) Personal Workspace: is it recommended or possible to have a single Workspace, or to have Many, one for each project/board ?? (I would like to keep all my projects and firmware of my electronic Boards separate!)

3) The "Repository" directory is unique ?? and is it outside from my main project ??

this folder not need backup ?? can it be recreated if i lost my PC ??

4) To Save and backup my projects, is it enough to save all the root Project Explorer, or do

I have to keep and save also the entire Workspace??

Thank you very much

Michele

This topic has been closed for replies.
Best answer by Peter BENSCH

Now I understand the background of your question. In principle, the specifications of the STM32CubeIDE are only suggestions, how you handle your projects is ultimately up to you.

CubeIDE therefore suggests having a workspace into which you import your projects, but which remain there after you close it (without deleting it).

If you are now working on a project, it may well consist of several sub-projects, which can all be loaded into CubeIDE at the same time. You can then compile each one separately, for example, or all of them at the same time.

When starting CubeIDE, you can select the workspace to be used, which is based on the version number of CubeIDE by default. Of course, you also have the option of using a separate (CubeIDE) workspace for each project (be it one with one or more subprojects).

The only catch is that the CubeIDE preferences and development artifacts are also stored in the workspace as defined by STM32CubeIDE, so it can happen that CubeIDE behaves differently depending on the workspace selected.

However, you could also set up the file structure within the (CubeIDE) workspace in such a way that you first create your personal (sub-) workspaces as folders there, in which the respective sub-projects (one or more) are then located. This would have the advantage of keeping the above settings in the same (CubeIDE) workspace.

There are even more ways to organise your work. The best thing to do is to familiarise yourself with the philosophy of Eclipse so that you can find your personal structure.

BTW: The project structure you listed is typical for the case:

IOC > Project Manager > Project --> Toolchain/IDE = STM32CubeIDE (Generate Under Root)

...which means .project, *.ioc etc are stored at the root of the project folder, not in the folder CubeIDE. If you create projects for other target compilers (IAR, Keil, etc) with the external tool STM32CubeMX, a named subfolder is created in the project (EWARM, MDK-ARM, etc).

You also have the folder Debug, possibly later also Release, both of which contain the respective files: generated object code, map/list files, ELF, possibly also BIN or HEX files. Everything in Debug and/or Release can be deleted or omitted without any problems during the backup, because it can be restored from the source codes at any time. If necessary, you can still save the source code for quicker access.

Regards

/Peter

1 reply

Peter BENSCH
Technical Moderator
May 4, 2023
  1. Yes, you can definitely work exclusively with STM32CubeIDE.
  2. The workspace is actually only used to save the different projects and the respective settings of the GUI. The projects themselves are typically each in their own folder, which is independent of the others and the workspace and can therefore be easily copied or moved to another workspace or computer.
  3. If by repository you mean where the firmware libraries are stored: yes, it is usually outside your project on any file system accessible from the current computer. This repository can be restored at any time, either via the built-in installation and update routines of STM32CubeIDE/CubeMX, or from Github. A backup would only take up a huge amount of space, but saves time when reinstalling, because downloading usually takes longer.
  4. See under 2. It is sufficient to back up the project directory.

Does it answer your questions?

Regards

/Peter

B.Michele
B.MicheleAuthor
Associate III
May 8, 2023

Hello and thanks for the support,

Yes it is a little bit clear, the systems are very big, I have to evaluate them carefully!:grinning_face_with_sweat:

Ok, now I'm try to do experiments..., the my principal Backup of the Firmware Board is the project directory that in the cubeIDE is about:

.settings

Core

Debug

Drivers

.cproject

.mxproject

STM32H563VITX_FLASH.ld

STM32H563VITX_RAM.ld

File_Name_example.ioc

....

One thing, I would like to insist on clarifying; in my electronic design (i.e. Altium designer) I always create a New Workspace for EACH project (for each electronic board). I can't quite understand if in the STMCubeIDE it is better for me to have a single generic Workspace, or to have a different Workspace for each Firmware/Board... ???? in the my project folder...

Thank you very much

Michele

Peter BENSCH
Peter BENSCHBest answer
Technical Moderator
May 8, 2023

Now I understand the background of your question. In principle, the specifications of the STM32CubeIDE are only suggestions, how you handle your projects is ultimately up to you.

CubeIDE therefore suggests having a workspace into which you import your projects, but which remain there after you close it (without deleting it).

If you are now working on a project, it may well consist of several sub-projects, which can all be loaded into CubeIDE at the same time. You can then compile each one separately, for example, or all of them at the same time.

When starting CubeIDE, you can select the workspace to be used, which is based on the version number of CubeIDE by default. Of course, you also have the option of using a separate (CubeIDE) workspace for each project (be it one with one or more subprojects).

The only catch is that the CubeIDE preferences and development artifacts are also stored in the workspace as defined by STM32CubeIDE, so it can happen that CubeIDE behaves differently depending on the workspace selected.

However, you could also set up the file structure within the (CubeIDE) workspace in such a way that you first create your personal (sub-) workspaces as folders there, in which the respective sub-projects (one or more) are then located. This would have the advantage of keeping the above settings in the same (CubeIDE) workspace.

There are even more ways to organise your work. The best thing to do is to familiarise yourself with the philosophy of Eclipse so that you can find your personal structure.

BTW: The project structure you listed is typical for the case:

IOC > Project Manager > Project --> Toolchain/IDE = STM32CubeIDE (Generate Under Root)

...which means .project, *.ioc etc are stored at the root of the project folder, not in the folder CubeIDE. If you create projects for other target compilers (IAR, Keil, etc) with the external tool STM32CubeMX, a named subfolder is created in the project (EWARM, MDK-ARM, etc).

You also have the folder Debug, possibly later also Release, both of which contain the respective files: generated object code, map/list files, ELF, possibly also BIN or HEX files. Everything in Debug and/or Release can be deleted or omitted without any problems during the backup, because it can be restored from the source codes at any time. If necessary, you can still save the source code for quicker access.

Regards

/Peter