STM32 Nucleo and Discovery boards. I have used STM32 Nucleo and Discovery boards for some of my projects, and I also have a and F7 Disco, so I went through an evaluation process similar to yours. Simplest free/cheap IDE for STM32F7 discovery board
Table of Contents
Here are some pieces of advice, take them as personal, experience based, opinions:
0- If these are your first steps in ARM/STM32 programming, you have chosen a (IMO) very good product, but a steep learning curve: the F7 Disco is a very complex board, with lots of sophisticated peripherals (both on chip and on board), and limited access to I/O pins (just the Arduino connectors). Arduino is a different world.
1- Take your time to learn the platform. The amount of information available is daunting: the Reference manual for the processor is 1655 pages. You must know it by heart, including the errata (half joking, but read the MCU datasheet, and I was bitten by one of the errata).
2- STM32F7 does away with the classical STD Peripheral libraries, so it’s either hand written code for register access or HAL. I’d go for HAL for anything more complex than a blinky.
3- Use STM32CubeMX to generate clock and peripheral initialization code. Doing it by hand is possible (and definitely a good learning exercise to be done at least once or twice), but tedious and error prone: life is too short. The generated code can be easily included in a project of your favorite IDE.
Now, to the environments:
0- I use both Windows and Linux, but the better IDEs are, for whatever reasons, Windows only. My STM32 coding is 99% under Windows.
Free:
0- Go Commando. Use you preferred editor, gcc, makefiles, openocd. You’ll show how tough you are, and pull a lot of hair (the rest will grow white…). Advisable only if you have lot of time, patience and some experience, but you’ll learn a lot…maybe too much.
1- The free version of professional packages for ARM are, in general code size limited (32kB). With a complex board as the F7 Disco, it’s easy to hit this limit when you start using on-board peripherals. I don’t dislike Keil (and it’s unlimited, free for STM32F0 cores!)
2- The greatest part of free IDE are Eclipse based. Eclipse is a powerful piece of SW, but I find it very complex and often not so intuitive (I’m also professionally exposed to it).
3- System Workbench is Eclipse based, with all the advantages and disadvantages, but it was the first (AFAIK) to explicitly support the F7 (no surprise, coming from ST itself). It’s also well integrated with CubeMX. For free, I find it a reasonable choice. I did not have any great problem with flashing.
4- CooCOX CoIde is a (very) pared down Eclipse IDE. Easy to use with F0-F4, some glitches and frequent crashes (at least for me). Unfortunately, no F7 support roadmap and glacial updates (at least lately). It can be coaxed to compile for F7 (just use F4, same instruction set) but no flash or debug support (IIRC), so I would not advise to use it (at the moment).
5- Em::blocks (now EmBitz) is lean and liked by many. It has almost complete F7 support (still a bit buggy, check the forum). I’m not so keen on its look and feel, but it might be viable and it’s worth a try.
6- EmIde: last version is more than one year old, so no F7 support.
7- Coming from Arduino, you might want to consider mbed, similar in many ways, different in others. Not for me, but YMMV. F7 Disco is supported.
Commercial:
0- Most IDE have a time trial or code size limited version. Try them!
1- Professional IDEs are really out of reach for a hobby. Definitely worth it for work, mostly due to real support. If you’re just “having fun” consider what you might get with the same amount of money (>2000€) in terms of test and measurement instruments…
2- Crossworks: 150$ for a non-commercial license, if you intend to ever sell your code/product it’s a steep 1500$ for a commercial one! No explicit F7 Disco board support package, but F7 is supported (though not 746). Worth trying, but the fixed editor keybindings (I have got Emacs finger-bindings) and lack of editor automation are a sad omission.
3- Visual Studio+Visualgdb. 74€+taxes for the embedded version. Full F7 Disco support, regular updates to GCC and other tools (openocd), 30-day trial. The product works very well, gives you either “do it for me” or detailed control on the build process and includes all libraries and board support packages (not only ST), very good debug support. This is very much a question of taste: Visual Studio Community Edition 2015 is free (and not crippled in any significant way) and it’s a very complete, stable and well supported IDE. It comes from Microsoft, though, and this can turn away someone.
What do I use?
For some time, I have been using System Workbench (it works!) and trying all of the above environments. I recently bit the bullet and bought Visualgdb. I do not regret the money spent.
Links:
Keil: https://www.keil.com/arm/demo/eval/arm.htm, http://www2.keil.com/stmicroelectronics-stm32/mdk
CoIde: http://coocox.org/
Em::blocks: http://www.emblocks.org/web/
Crossworks: http://www.rowley.co.uk/arm/index.htm
Visualgdb: http://visualgdb.com/
mbed: https://www.mbed.org/
Some additional considerations:
source: http://www.eevblog.com