2024-08-07 06:13 PM
Hi,
I am new to STM32.
What are the pros and cons of using VS Code STM32 Extension vs just using CubeIDE?
Is one more reliable than the other?
Are they the same (equally good) if used just to write and compile code? What about debugging?
Any general pointers are appreciated.
Thank you
Solved! Go to Solution.
2024-08-09 09:05 AM
@Ricko I have used both, recently converting two projects from STM32CubeIDE to VS Code with the STM32 extension. I am also a long-time Eclipse (well over a decade) and VS Code (5+ years) user for application development.
STM32CubeIDE is a more mature tool and has a more integrated feel for STM32 development. VSCode is a better code editor than Eclipse and has better C/C++ support. But the STM32 extension still has some rough edges and is not well documented.
I spend a lot of time learning how do do things in the STM32 extension. The extension feels incomplete. For example, in Eclipse one can just click on an IOC file and it is opened in STM32CubeMX. Not so in VS Code. The IOC file is opened in a text editor. One has to start STM32CubeMX, then open the IOC file from within STM32CubeMX. I have had the debugger hang more frequently in VS Code. The workflow seems a bit clunky to me. Some changes seem to require that I re-open the project in VS Code for VS Code or ST's extension to pick up on them.
The CMake build system used by the STM32 VS Code extension makes build automation much easier. This is a key draw for me. The debugging experience is generally better in VS Code. The debugger view is better laid out and presents more information.
I am willing to put up with the rough edges to use VS Code. I would not recommend the STM32 VS Code extension for training or for new developers. STM32CubeIDE is a better choice here. The workflow from creating the project to programming and debugging on a dev board takes fewer steps and has a more integrated feel. But for seasoned developers with a lot of VS Code experience, I recommend using VS Code with the STM32 extension.
2024-08-09 09:05 AM
@Ricko I have used both, recently converting two projects from STM32CubeIDE to VS Code with the STM32 extension. I am also a long-time Eclipse (well over a decade) and VS Code (5+ years) user for application development.
STM32CubeIDE is a more mature tool and has a more integrated feel for STM32 development. VSCode is a better code editor than Eclipse and has better C/C++ support. But the STM32 extension still has some rough edges and is not well documented.
I spend a lot of time learning how do do things in the STM32 extension. The extension feels incomplete. For example, in Eclipse one can just click on an IOC file and it is opened in STM32CubeMX. Not so in VS Code. The IOC file is opened in a text editor. One has to start STM32CubeMX, then open the IOC file from within STM32CubeMX. I have had the debugger hang more frequently in VS Code. The workflow seems a bit clunky to me. Some changes seem to require that I re-open the project in VS Code for VS Code or ST's extension to pick up on them.
The CMake build system used by the STM32 VS Code extension makes build automation much easier. This is a key draw for me. The debugging experience is generally better in VS Code. The debugger view is better laid out and presents more information.
I am willing to put up with the rough edges to use VS Code. I would not recommend the STM32 VS Code extension for training or for new developers. STM32CubeIDE is a better choice here. The workflow from creating the project to programming and debugging on a dev board takes fewer steps and has a more integrated feel. But for seasoned developers with a lot of VS Code experience, I recommend using VS Code with the STM32 extension.
2024-08-09 09:42 AM
> Are they the same (equally good) if used just to write and compile code?
They both use the gcc toolchain under the hood, don't expect much difference here.
I like VS code for the very readable, text-only configuration files which are easy to maintain and keep in a git repository. In contrast, STM32CubeIDE is much more mouse clicking and searching for features.
> What about debugging?
The basics work on both.
I like the ability to change MMIO registers on-the-fly. You can blink a LED or re-config a timer very easily to try out and understand the chapters from the reference manual.
All in all, STM32CubeIDE has the most complete feature set implemented, is mature but feels quite monolithic and aging to me. In contrast, VS code extension feels fresh but still incomplete and partially inmature (broken startup files generated even in latest version 2.1.0)
hth
KnarfB
2024-08-09 10:18 AM
@KnarfB wrote:I like VS code for the very readable, text-only configuration files which are easy to maintain and keep in a git repository.
That's in stark contrast to Eclipse's (ie, CubeIDE's) config files, then - which are not at all readable, and not at all easy to maintain in a VCS.
Eclipse has a nasty habit of randomly (apparently) reordering the stuff in its config files - making it hard to maintain in a VCS.
2024-08-09 04:17 PM
Thank you @Andrew Neil, @KnarfB and @Rob.Riggs, very helpful feedback.