Home >
Using Visual Studio Code for Embedded Development
Marc Goodner- Watch Now - Duration: 27:19
Every silicon vendor seems to have their own IDE. They often have desirable diagnostic capabilities but are lacking in terms of a modern editing experience and are tightly coupled with specialized compilers.
What if you would prefer to use Visual Studio Code instead? How can you get your embedded compilers working in that environment? Will you have the diagnostic capabilities you need? If you get things working there will that extend to your CI system? This talk will help you answer those questions:
- Getting your compiler working
- Deploying and debugging your firmware
- Using embedded diagnostic capabilities like RTOS and peripheral views
- Importing IAR and STM32 projects
- Using GitHub Actions and CodeQL for embedded projects
C++ IntelliSense, the engine in VS Code is the same one in Visual Studio. The debug experience is better in a lot of ways for core stepping and the like, but the ST tools are going to have more capabilities around tracing today. The other advantage is VS Code is not just for C++ and embedded. If you also use Python or other languages the extensions in VS Code are great, so you can stick to a single developer environment. The extension ecosystem is fantastic as well for VS Code, lots of tools for related tasks like markdown, csv, etc.
The one drawback I see is the lack of support for the macOS. ST supports macOS, Microsoft supports macOS (VSCode), and Linux. Is the issue vcpkg? Is Microsoft going to support embedded developers on macOS? I would love to try this with the RaspberryPI PICO as well as the TI product line.
Thanks.
macOS is supported, apologies for not highlighting that. I have some notes on using the Pico here: https://github.com/robotdad/piconotes
I'd love to see a start from scratch demo of bringing up a simple MCU, meaning no project import, or some something with an existing MCU. There are huge amounts of MCUs out there and to make VS code practical, we need to be able to use them. For example, start by installing the embedded tools, creating a project, defining the MCU, getting the svd file, etc. Theres a little too much magic going on here that makes it a barrier to entry. Either that or you need imports from all the other IDEs such as Keil, Simplicity Studio, etc.
Thanks for the feedback, I see where you are coming from on this. In the new year I'll work on some content that starts from initial tool setup before moving into VS Code. One resource I can point you at now is this repository that is based on an MCUEclipse article that walks through the initial setup as you propose for an NXP target using Eclipse. The repo below is also configured for VS Code, VS, and should work with CLion (or Eclipse).
https://github.com/robotdad/LPC55S69_CMake_Template
Thanks
Thanks
Major advantages respect ST tools?