Embedded Software Development in Visual Studio - C++ Team Blog
by Marc Goodner [Program Manager, C++]
December 6th, 2021
We are happy to announce that we have added new embedded development capabilities to Visual Studio 2022 Preview. Used in conjunction with the new vcpkg artifact capabilities you can quickly bootstrap an embedded development machine and get started.
...
[a picture with peripheral registers to the left of the source code]
...
[OOTB for MXCHIP AZ3166, NXP RT1060, STMicroelectronics STM32L4]
...
...
Today we’ll demonstrate using vcpkg from a PowerShell prompt to activate our embedded development environment. In a future release this will be integrated into Visual Studio for a more seamless experience.
...
So, in three commands we have cloned our embedded project, installed vcpkg, acquired and activated the necessary tools for building the project.
Using Visual Studio for embedded development
...
Today vcpkg is not integrated in Visual Studio. So, at present we need to launch Visual Studio from the environment we activated at the command line so those tools are available for its use as well.
...
[CMake project, cross-toolchain from vcpkg, cross-debugger from vcpkg]
Code Navigation and IntelliSense
...
Build, Deploy, and Debug on hardware
...
[debugger client, debugger server]
...
The information for describing peripheral registers is provided by the MCU manufacturer in an SVD file that we point to with svdPath.
...
...
[threads view]
There are other views for additional ThreadX objects like block and byte pools, events, mutexes, queues, and timers. We also have RTOS object views for FreeRTOS though the available objects there differ based on what it supports.
...
...
If you are on Linux or Mac and looking for similar capabilities, yes, we will be bringing embedded development capabilities to VS Code soon as well. We have provided VS Code getting started guides for Azure RTOS the same boards as VS (...)
https://github.com/azure-rtos/getting-started/tree/master/Microchip
though today the capabilities are limited to acquisition with vcpkg, edit, build, deploy, and debug. Similar embedded specific views will be coming in a future extension.