Sharing Standalone NXP SDK Projects in VS Code

The NXP SDK is git based which is great. If I create a project with VS code, it references the SDK cloned locally.

Standard NXP SDK Project in VS Code

A standalone project structure is needed if you want to easily share a project with your team. It’s also necessary for sharing inside a classroom environment. This article shows how to use an NXP SDK project in standalone mode.

Continue reading →

Optimizing Embedded Development with VS Code and DevContainer

Embedded System have a lifetime of 10 or 15 years. During that time the software and tools has to be maintained. This can be very challenging. Who knows if that compiler or tool used is still available in 10 years from now? Additionally installing and configuring the tool chain and environment for a new team member is difficult. Even worse: using a different host operating system for the cross development can produce different results or introduce issues.

VS Code running with DevContainer
VS Code running with DevContainer

One solution for all these problems is to use Docker images and containers. I can pack all the necessary tools and software into a virtual environment and container. But developing inside a container comes with many challenges. In this article I’ll show how Visual Studio Code or VS Code makes working with containers very easy. In this article I show how easy it is to use modern development tools and methodologies for embedded development.

Continue reading →

Building a DIY Split-Flap Clock

I’m making progress on my larger split-flap project (see Update on the Split-Flap Project for 2025). So far I have 32 operational for the larger 64 flap installation. In parallel, I worked on a smaller 4 flaps unit used as a clock.

Split-Flap Clock
Split-Flap Clock
Continue reading →

Start New VS Code Instances with Unique Environments

If working with different tool chains, SDKs, and vendors, then one must use different environments.

With VS Code, this can end up in counter-intuitive situation. When I start a new Visual Studio Code instance, it will open a new window. But if there is already an instance running, it actually will re-using that environment. This can cause lots of subtle problems, including failed builds.

VS Code re-using instance environment

So how to start a new Visual Studio Code Window, with a new instance?

Continue reading →

On-Target Testing with LinkServer Runner and VS Code

The release 24.9.75 of LinkServer software and tools includes interesting feature: the ability to use the debug probe for automated on-target testing. It includes a ‘runner’ which can program, launch and run the application on the target through a debug probe. While the target is running, it uses semihosting or UART for communication. This makes it a perfect tool for automated testing, especially in a CI/CD environment. One such environment is running automated tests with CMake and CTest in VS Code.

Automated on-target testing with VS Code and LinkServer
Continue reading →

Tutorial: GNU Coverage with C++ for Embedded Applications

In an earlier article I explained how to generate GNU coverage information, for an embedded application written in C.

In this article, I show the steps and configuration needed to use GNU gcov targeting an embedded application with C++.

GNU gcov Coverage with C++ Application
Continue reading →

Low-Power Optimization Techniques for ARM Cortex-M Microcontrollers

Europe is currently facing an ‘Energy Crisis,’ and ‘Sustainability’ is a popular topic among companies. However, embedded engineers go beyond talking—they take action and make tangible changes in the world. With the increasing use of electronic devices, minimizing their energy and power consumption is crucial. Optimizing systems for deep low power or deep low energy is a challenging task. Nonetheless, as I will demonstrate in this article, it is possible to reduce energy consumption by a factor of 100 or more. This article provides a brief overview of the foundational concepts and then applies them step-by-step to an ARM Cortex microcontroller.

Measuring on-board LPC804 with MCU-Link Pro
Continue reading →

Building Eclipse Projects with custom external Shell Scripts

Eclipse includes many ways to build a project. One of it is the built-in builder which makes it super easy. And for more complex building needs I can use an external make (see Tutorial: Makefile Projects with Eclipse) or cmake or combination of multiple ways (see Building a Triumvirate: From Eclipse CDT to CMake, CMD and Visual Studio Code).

There is yet another use case how to easily tweak the build process in Eclipse: using a script file in the project to be used as the ‘compiler’:

External Build Script

That way I can do all kind of custom steps (analysis, re-formatting, static checkers, …) for each file compiled.

Continue reading →