2023-05-04 08:11 AM
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
Solved! Go to Solution.
2023-05-08 09:36 AM
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
2023-05-04 08:27 AM
Does it answer your questions?
Regards
/Peter
2023-05-08 06:33 AM
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
2023-05-08 09:36 AM
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
2023-05-09 06:23 AM
Thank you very much for your clear explanations.
Now I have to start developing everything calmly;
Let me start as simple as possible, With STM32CubeIDE - IDE based on Eclipse and GCC, freeware compiler (I dont' use others compiler, NO third-party programs...)
May be i use STM32CubeMX and choose the nucleo-h563zi Board project, for the Firmware Startup... and configure the 1° project, then I finish the development with the STM32CubeIDE.
I Use STLINK-V3SET For Debug and program the STM32H563 Micro
May be in future that i Develop on a new project the freeware RTOS (I Think Atollic FreeRTOS)
STM32CubeMX --> New Project -> He Ask to me "TrustZone activated" ??.
Now i don't need "Trust mode" then i choose "Without". If i need it in the future the TrustZone activated I have to redo the whole project ??
Thank you very much
Michele
2023-05-09 07:23 AM
STM32CubeMX does not ask for the use of TrustZone at the beginning of programme creation without reason, because a number of other settings depend on it.
Yes, if you have generated a project without TrustZone and want to add it later, you have to go through the whole process again, which also generates a significantly different project structure with additional folders (NonSecure, Secure, etc).
If necessary, one could save the previous programme, create the new one with TrustZone and then transfer one's own programme parts from the previous one. However, this seems to be quite time-consuming, so it is better to know from the beginning whether TrustZone will be used or not.
Regards
/Peter
2023-05-10 11:55 PM
Hi Peter, I'm sorry, I have one last question:
For Develop, Debug and Program the micro I Have NOW the STLINK-V3SET
In the past I've always used the simple little SWD interface, with few Pin;
SWDIO # SWCLK # NRST # Boot # +3V3 # GND
Now with these "big" micros and complex functions like Ethernet and much more.. it's better to use the more complete JTAG interface Pin; ???
T_JTMS # T_JCLK # T_JTDO # T_JTDI # T_NRST # +3V3 # GND
Should I just use the full JTAG, it is; faster ??, more reliable ?? more complete ??
(I have 100 pins available so I don't have to save resources...)
Thank you very much
Michele
2023-05-12 12:36 AM
Well, you can also debug Ethernet and other bigger applications via SWD interface. The STLINK-V3SET even helps with its significantly higher SWD speed.
Depending on the JTAG debugger used, debugging via JTAG has some additional functions that also make it interesting - but it is not a mandatory requirement.
Regards
/Peter
2023-05-12 07:32 AM
Good!
Oh finally, I have Only One type of Debugger: I Have Only STLINK-V3SET (& Only Cube IDE or MX --> No others third-party....)
Now i must choose whether to integrate in my board a connector for SWD (5 wire) or for JTAG (7 wire)
are they similar in difficulty? if i don't have problems to saving pins, is it better to use the full JTAG??
Thank you very much
Michele
2023-05-15 07:52 AM
If you don't provide a JTAG port, which requires a JTAG debugger to use anyway, then you may well be annoyed later. But as I said, JTAG is not a mandatory requirement, ultimately it's your decision.
If the problem is solved, please mark this thread as answered by selecting Select as best, as also explained here. This will help other users find that answer faster.
Good luck!
/Peter