STM32 toolchain selection - LieBtrau/electronics-design-data GitHub Wiki
- STM32CubeMX: Initialisation Code generator
- Generates projects for IAR, Keil, SW4STM32 IDE's.
- It's quite advanced. You can set up the clock tree, but in order to do that, you must know the internals of the MCU very well. It lets you also choose peripherals, but at the start of the project what peripherals and on what pins to use them, that's often not yet very clear.
- If you already own a board like a Nucleo or a Discovery board, you'll be better off with mbed or SW4STM32 to generate the initialization code for your project.
- STM32Cube HAL: Middleware, will be downloaded when generating a project with STM32CubeMX. SW4STM32 will also download that for you when you create a new project.
- STM32Snippets (included in the STM32Cube HAL, with project files for Keil, IAR and SW4STM32).
Name | GCC based | Linux | Free |
---|---|---|---|
PlatformIO | yes | yes | yes |
AC6 SW4STM32 | yes | yes | yes |
Atollic TrueStudio | yes | not yet | limited version |
Coocox | yes | no | yes |
IAR EWARM | no | ||
Keil MDK-ARM-STM32 | no | for F0/L0 | |
STM-Studio-STM32 | no |
Other
mbed is still the easiest way to a solution, but it's an online tool which doesn't offer debug functionality. The mbed-project could be downloaded and then debugged using QtCreator. AC6 SW4STM32, which is Eclipse-based, is a good second option. Easy to set up. The configuration for Nucleo and Discovery boards is already present in the IDE.