I am constantly looking out for IDE’s to improve my productivity in Software, so I wanted to share with you my recent experiences in the area. This review focus on STM32 development.
- Visual Studio.
Having used Visual Studio since it came around as Visual C++ 1.0 some 20+ years ago it has always been my first choice if available. I have tried to replace it on Windows development several times because it used to be Windows only, but always ended up returning. These days, with Visual Studio being free and moving into Linux, Android, STM32 and Arduino to mention a few it’s not any discussion. I use Visual Studio because it is the best IDE out there.
The source code editor for C and C++ is great with a good editor and navigation. But, I could write source code in Notepad or Vi (actually have done) if it came to that – I can adapt to any editor.
The one thing that may me stick to Visual Studio is that “things work” – no fuzz or jumping around. Their debugger have always been the best talking as a Windows developer, but I have missed Visual Studio on Linux (Raspberry PI) and STM32.
These days this is not an issue – Linux support you get for free and STM32 is supported through the VisualGDB extension. For me this means I can develop Windows, Android, Linux and STM32 from within the same IDE.
The debugger in Visual Studio is important. You press F5 and your app start and you can single step, look at variables and do all the things you expect from a debugger – no fuzz because it works.
- Eclipse.
Eclipse have support for more or less every platform out there and is a good choice. I have recently started using Eclipse with “System Workbench for STM32”. This integrate with STM32CubeMX which makes it a good combination. CubeMX allows you to “wire” your chip and have driver code and setup generated. It is a bit fiddly to get started, but once you get it to work it really makes a difference.
As mentioned an Editor is an Editor. Eclipse is great for Java developers, but I write C/C++. So that is what you get – I have used Eclipse in many variations over the years and it’s great for what it is. I started to test this because friends who do not use Visual Studio talked about this for STM32 and it is decently good.
It can be a bit fiddly to get the ST-Link working at times + the debugger support seems to have room for improvement. I have not tested C++ on this yet, but so far I admit that this would be worth a try.
- CooCox IDE
This is also based on Eclipse and have for some time been my choice for STM32 development. They have a better grasp of embedded development with a good repository where you can pick up modules and a working help system. What I liked with CoIDE was that it was easy to get started and that St-Link always worked.
The reason I move away from this is because development seems to have stalled after version 1.7.8 which don’t support the new drivers from ST. I have tested their new Beta, but can’t get it to work properly.
Others…
Other options do exist. The commercial options have never really been an option + they tend to focus more on enabling bare minimum than being great.
Conclusion
For me it’s not really a choise. I have used Visual Studio for so many years and with Windows, Raspberry PI and STM32 so tightly integrated into the same environment it becomes to attractive. VisualGDB cost ca 80.- USD so this is not completely free, but it is worth it IMO.
I have not tried STM32CubeMX together with Visual Studio, but it should be straight forward – that said I only use CubeMX for testing. In real projects I set up my own HAL and organize code properly not outside the controll of any IDE – in fact I often maintain several IDE’s because different developers have different preferences.