May 4, 2021 at 08:46 #30454
I have a ST Nucleo F439 board with some added hardware. I’m trying to generate complete fresh new project for it using the STM32CubeMX Project Wizard. I’m following these intructions, https://visualgdb.com/tutorials/arm/stm32/cube/advanced Only thing i’m doing different is in the CubeMX i select the Nucleo F439 board. At first glance everything looks it’s working. But cannot correctly open the project/solution. It is missing files.
Diving into this I noticed all the “Core/Src/*.c” files are missing, it should have e.g. “main.c” and several “stm*.c” files, althoug the “Core/Inc/*.h” files are all there. I also noticed midway the process these files are actual generated, but deleted again at the end of the process.
What am i doing wrong?
I tried with Embedded Project Wizard. This actual works.
VisualGDB (V5.5 trial also tried with beta of 5.6)
STM32CubeMX v 6.2.1May 4, 2021 at 08:48 #30457
It could be a bug in the STM32CubeMX tool. Please try running it manually, creating a new project, and generating a .gpdsc file for it. Does the generated file reference all the relevant sources? Are they physically present?May 4, 2021 at 09:02 #30460
The gpdsc file look ok. The STM32CubeMX tool is generating the c files, both manually also when visualGDB is regenerating and starts the STM32CubeMX tool. But after STM32CubeMX tools closes, VisualGDB deletes these files.May 4, 2021 at 09:05 #30466
Strange. VisualGDB does not delete any of the source files as a part of the importing process. Most likely, something else is going on.
Please share the complete steps we could follow on our side to reproduce the problem, including the screenshots of all relevant settings, and we will recheck what could be causing it.May 4, 2021 at 10:01 #30469
Steps below to reproduce.
• Start VS2019
• Create New Project
• Double click on STM32CubeMX Project Wizard
• Giving the project a name and location.
• Place solution and project in the same directory = checked
• Press Create
• Toolchain = “ARM in c:\SysGCC\arm-eabi” (already selected)
• Select “STM32F439ZITx”
• STM32CubeMX tool is launched
• Click on the “STM32F439ZITx” in the crumb bar
• Select “Board Selector” tab
• Double click on “NUCLEO-F439ZI” board
• Initialize all peripherals with there default mode ? = Yes
• Ctrl-S to save the IOC File (overwrite the old file)
• Close the SMT32CubeMX Project (don’t generate code, didn’t change any other settings)
• Regenerating is started. Automatically starts the STM32CubeMX again.
• All files are generated including the “main.c”
• STM32CubeMX closes again automatically
• Getting the “New STM32CubeMX Project” dialog again, now on tab “Debug Method”.
• The “main.c” file is gone.May 4, 2021 at 10:05 #30470
Actually the whole “core/src” folder is gone.
I tried to generate the project from within the STM32CubeMX tool, commit in git. And afterwards restore these files. But still having some errors when compiling. I Suspect i’m missing some changes in the files or settings.
Also note i’m new to VisualGDB and STM32CubeMX. So it could be very well a rookie mistake i’m doing.May 4, 2021 at 12:55 #30471
I think I found the problem, it’s indeed the STM32CubeMX.
Project Manager > Code Generator > Generated files > Delete previously generated files when not re-generated = OFF (this is Enabled by default at my system)
Don’t know why this is enabled by default. Seems silly to me.May 4, 2021 at 15:07 #30472
Thanks for pointing this out. We have reproduced the problem.
Turns out, when you select a different board in the STM32CubeMX, it re-creates the .ioc file from a different template, overriding the default source directory:C++1ProjectManager.MainLocation=Core/Src
Later on, VisualGDB asks STM32CubeMX to first generate a Makefile-based project, and then a GPDSC-based project:C++12345project toolchain "Makefile"project generateproject toolchain "Other Toolchains (GPDSC)"project generateexit
Apparently, if the source directory is overridden, STM32CubeMX will delete the Src folder during the second project generation.
You can work around it by commenting out the ProjectManager.MainLocation line in the .ioc file and regenerating the project once again via the context menu on STM32CubeMX Files the in Solution Explorer.
We will also add a warning about this to the next VisualGDB release.
You must be logged in to reply to this topic.