when generating code from Simulink using the STM32 MAT Target, the project build in SW4STM32 will not succeed, because CubeMX doesn't include the <modelName>/Src directory into the eclipse project's code search paths. This has to be done manually each time the code generation is re-run. The <modelName>/Inc directory is included correctly. I am not sure if this is a bug in CubeMX or in the STM32 MAT Target, but it is definitively annoying and I would appreciate to see it fixed soon.
Another bug appearing to me in this context is the inclusion of the C math library. In Eclipse project settings, the C math library can be included by activating a checkbox in C/C++ Build > Settings > MCU GCC Linker > Libraries. This is set by default in the CubeMx generated projects. But results in linker failure. Unchecking the checkbox and adding the library "m" to the Libraries list in the same configuration page helps.
The difference in the linker call seems to be the order of inclusion:
with checkbox Use C math library (-lm) checked:
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -specs=nosys.specs -specs=nano.specs -T"../STM32F405RGTx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -lm -o "Application.elf" @"objects.list"
=> Linker fails to build binary
without checkbox checked, but m included in libraries list:
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -specs=nosys.specs -specs=nano.specs -T"../STM32F405RGTx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -o "Application.elf" @"objects.list" -lm
=> Linker succeeds to build binary
I hope that my descriptions are clear enough. If not, feel free to ask for more information. Or maybe there is a simple solution for this? Some configuration option I missed so far?
Btw: How many of you are actually using the STM32 MAT Target library for Code Generation in Simulink? I can't find much references on the web. Most private users seem to use the Waijung Blockset? Are there any good professional solutions besides the STM32 MAT Target library?