Recent articles

System tests for RedAlert

This article demonstrates how a system test for the RedAlert firmware is implemented on the ExecutionPlatform. The test object is not the RedAlert hardware itself, but only its RP2040 microcontroller. This RP2040 is used …

How to use our RP2040 online demo

You can try the ExecutionPlatform with our demo systems. Each demo consists of a VS Code instance that is connected to an ExecutionPlatform with a RP2040 microcontroller in it. You can view the schematics of the RP2040 …

Develop interactively for RP2040 PIO

The RP2040’s novel Programmable Input/Output (PIO) subsystem allows the execution of tiny ‘PIO-assembly’ programs parallel to the CPU. It has direct access to the chips DMA-controller and GPIO-pins and …

Automatic tests for I2C communication

I²C is a 2-wire protocol where a controller is communicating with one or more targets. Most often the controller is the microcontroller. Targets are sensors, eeproms or other peripheries. This article shows our novel …

Debugging on the ExecutionPlatform

When working with the ExecutionPlatform, you have the possibility to debug different things. Depending on what we are searching for we need to check code that is running on MCU or to look whether test case is working …

Run unit tests on-target microcontroller

With our ExecutionPlatform, you can run unit tests directly on the target microcontroller (MCU). This is called on-target testing. Executing unit tests on the MCU is similar to running firmware. As a first step, the …

How we extend unit tests for pin behavior

What makes unit tests great? They ensure that functions or components work as intended. Unit tests are also very simple to use. This is because you can focus on a single piece of code – and isolate all dependencies …

The SPI Endpoint in practice

This article describes how automatic tests for the SPI communication of a STM32 look in practice. The result are automatic hardware/software integration tests for this microcontroller. SPI is a widely used in embedded …

Open Loop Testing in Detail

Imagine the following scenario: You need to create a highly precise pulse on a microcontroller GPIO pin. The pulse needs to be within 1% of the desired value. This article shows you, how to compare two variations of a …

Open Loop Testing in Practice

Open Loop Tests have the potential to revolutionise firmware development. This article describes a technical approach to implementing such tests. Curious readers can try out the results directly in your browser. …

Open Loop Testing

Testing of embedded firmware is too complicated. An enormous amount of resources are required for a system test that does not detect enough errors. Open loop testing is a new approach to hardware/software integration …

Compiler-dependent behaviour in practice

In my previous article, I described the most important factors for on and off-target execution. We will now take a closer look at one of the most important factors for such differences, namely the compiler. Most C and …

The hidden risks in off-target testing

Embedded firmware is developed on a desktop computer. Code that is not directly dependent on hardware can be compiled with a conventional desktop compiler, and executed on the development computer (off target). In …

Mbed Unit test investigation

For one of our smaller projects, we wanted to try ARM Mbed for the first time. Surprisingly, we found a bug, just by executing the existing unit tests on an actual embedded target. This post describes how we found the …

Trig function performance surprises

In issue number 393 of his popular newsletter The Embedded Muse, Jack Ganssle took a look at the performance of trig functions. Trigonometric functions such as cos are often used in time critical calculations. In …