cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeMX 5.4.0 creates bad Makefile and generated project compile fails.

I've used earlier versions of CubeMX without this kind of problem. I've generated a project for STM32H745 which delivers a project package (makefile project) without error messages. When I try to compile the project (with no source modification other than the problem in Makefile which I describe below), many device symbols can't be found. An example would be the SPI device handle, yet stm32h7xx_hal_conf has the correct header files uncommented.

One thing I noticed right away is that the Makefile has 2 copies of the source code list which causes an early failure. When the extra copy is removed, the process goes farther, but dies with undefined symbols that ought to be defined by the header files.

EDIT ADD: I should have said that this is a dual core device and the project is also supposed to support both cores - I see subdirectories for CM4 and CM7 which makes sense. I've looked at the error messages and (naively) added #include statements to the files mentioned in the error messages. This caused much more of the source files to compile, but at the end there is an error message about multiply defined symbols and of course, no bin or hex file is created. So I can see something is either misconfigured or missing from the generated project. I will continue to poke around, but it is just that, poking around.

EDIT ADD: Among the multiply defined symbols is the main() function. This makes some sense because there are two main functions, one for CM4 and one for CM7. Something seems to be missing that tells the compiler and linker that the two main functions live in different places in the same Flash. However, this project has been modified to have two #include statements added which satisfied some undefined symbol errors, so this compile may not be at all valid. Bottom line is that the unmodified generated source code should compile as is and it does not.

Any help would be greatly appreciated - I really don't know where to start to get things to compile correctly for two cores.

1 REPLY 1
Houssem CHAABANI
Senior II

Dear @Scott Gravenhorst​ ,

Could you please share your .ioc and it's recommended to use the last available version of STM32CubeMX.

Best regards,

Houssem