In the not-so-distant past, anyone wishing to design and develop something new was typically obliged to create every aspect of the system. A classic example is provided by H. Joseph Gerber, who survived the Holocaust and arrived penniless in America with his mother in 1940. Aged 16, with little English, Gerber fought his way through a four-year high school curriculum in just two years and obtained a BSc degree in Aeronautical Engineering in just two more years.
Gerber revolutionized many aspects of American industry in various fields, including engineering, electronics, printing, apparel, and aerospace. When Gerber turned his attention to creating printed circuit boards (PCBs), for example, in addition to having to design and build his own digital plotters and photo-plotters, he also had to define the data format used to store the PCB files. The resulting Gerber format remains the de facto standard used by PCB industry software to this day.
By comparison, today’s inventors can avail themselves of a vast ecosystem and infrastructure, leaving them free to focus their attention on the “secret sauce” that will differentiate their creations from competitive offerings. In many respects, the same story is currently unfolding with respect to the tools used to develop code for embedded applications.
INTEGRATED DEVELOPMENT ENVIRONMENTS
An integrated development environment (IDE) is a software application that acts as a “command-and-control center” for all the tools required by computer programmers for software development. In addition to a source code editor, compiler (or interpreter), and build automation tools, professional IDEs also include analysis (for example, static code analysis) and debugging tools.
Circa the latter part of the 20th century, many processor vendors—including microprocessors and microcontrollers—developed their own proprietary IDEs. These typically shared many of the same disadvantages, most of which derived from the fact that the vendors were focused on selling silicon, so they made these IDEs available for a low cost or for free. As a result, the underlying tools, like compilers, often generated less than optimal results by failing to optimize code to its fullest extent. Furthermore, users found themselves locked into whatever family or families of processors were supported by the IDE.
A more recent IDE concept is epitomized by the open-source Eclipse IDE, which contains a base workspace and an extensible plug-in system for customizing the environment. Eclipse is written mostly in Java and is primarily used for developing Java applications. However, it may also be used to develop applications in other programming languages via plug-ins, where these languages include C, C++, C#, and Python. Although it has grown in popularity since its initial release in 2001, many users feel that the Eclipse IDE has evolved to be “bloated,” “heavy,” and harder to use than one might hope.
— ADVERTISMENT—
—Advertise Here—
VISUAL STUDIO CODE
Created by Microsoft, Visual Studio Code, commonly referred to as VS Code, is a source code editor that also acts as an IDE. It inherently supports features for tasks like debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git.
VS Code is fast, lightweight, easy to use, popular, and considered by many to set the “gold standard” for IDEs. In fact, in a 2022 Developer Survey by Stack Overflow, VS Code was ranked the most popular developer environment tool among 71,010 respondents, with 74.48% reporting using it [1]. Of particular interest to many employers is that today’s college and university graduates are increasingly familiar with VS Code.
As a source-code editor, VS Code can be used with various programming languages, including C, C#, C++, Fortran, Go, Java, JavaScript, Node.js, Python, and Rust. VS Code also supports a wide selection of plug-in extensions that provide access to tools from third-party vendors. These tools include compilers, interpreters, code checkers, debuggers, builders, and tools that allow users to quickly integrate into continuous integration/continuous delivery (CI/CD) pipelines.
At a traditional programming level, VS Code can provide a unified frontend for use with projects that require access to disparate tools “under the hood.” VS Code also satisfies the requirements of projects involving large numbers of developers dispersed around the world.
VS CODE MEETS IAR
As was previously noted, VS Code supports a wide selection of plug-in extensions that provide access to tools from third-party vendors. Easy access to these extensions is provided from Microsoft’s Visual Studio Marketplace, which can be accessed from within VS Code.
Although VS Code is well-respected regarding the tools available for developing applications for markets like mobile, the web, and the cloud, its capabilities in the embedded domain leave something to be desired, especially in the context of debugging, which presents its own unique challenges.
IAR is one of the leading vendors of development tools for embedded systems. When Microsoft had questions about debugging in the embedded domain, they came to IAR for advice. IAR has its own IDE called IAR Embedded Workbench. In addition to its source code editor, IAR Embedded Workbench also features a state-of-the-art C/C++ compiler that offers advanced global and target-specific optimizations and supports a wide range of industry-standard debug and image formats. Related tools include the IAR C-STAT static analyzer, the IAR C-SPY debugger—which includes a comprehensive macro system that facilitates automating the debugging process and simulating peripheral devices—and IAR Build Tools that provide automated application build and test processes.
Now, IAR has made its official VS Code extensions for the IAR C/C++ compiler, IAR C-STAT static analyzer, IAR C-SPY debugger, and IAR Build Tools available in the Visual Studio Marketplace.
WELCOME TO THE FUTURE
Today’s embedded code development involves teams of all sizes, from individuals working in isolation to large multinational teams scattered across the globe. Today’s embedded systems range from small microcontroller-based devices to sophisticated artificial intelligence-powered systems. And today’s embedded code developers refuse to be locked into proprietary tools and development environments.
— ADVERTISMENT—
—Advertise Here—
Developers of the future will demand the ability to use tools that best satisfy their own unique requirements. These tools will be designed to take full advantage of modern workflows, including access to Git, the GitLab DevSecOps platform, and the Jenkins open-source automation server—also, tools that support containerization and cloud-based builds (Figure 1).

Modern workflows span the desktop to DevOps.
Welcome to the future! Because this is available here and now with tools like VS Code that allow users to employ best-in-class extensions such as those provided by IAR.
REFERENCE
[1] 2022 Developer Survey by Stack Overflow: https://survey.stackoverflow.co/2022
RESOURCES
IAR Systems | www.iar.com
PUBLISHED IN CIRCUIT CELLAR MAGAZINE • AUGUST #397 – Get a PDF of the issue
Sponsor this ArticleVito Savino is the data center and wireline segment leader for ABB Power Conversion, where he works with data center and telecommunications customers to provide advanced solutions for their dynamic power challenges.