General
What is the ExecutionPlatform?
The ExecutionPlatform is an automated test system for microcontroller code that is designed and manufactured by embeff. It is a physical test device to which your microcontroller is connected as a plug-in board. Your tests use the ExecutionPlatform to gain access to all pins.
How does the ExecutionPlatform work?
The core of the ExecutionPlatform is an FPGA that is electrically connected through the DUT PCB to all microcontroller pins. You configure at runtime what these signals are (simple digital I/O for GPIO, peripheral interfaces such as SPI or CAN). Your tests can either actively drive the pins or monitor the behavior of the DUT.
What exactly can I test with the ExecutionPlatform?
You can write unit, integration, and system tests and either test parts of your code or the entire firmware.
What is the ExecutionPlatform used for?
Our typical customers are embedded teams that produce high-quality embedded systems used in safety-related areas. These projects usually last for multiple years. They use the ExecutionPlatform to run automated tests against their code on each commit.
What is the main difference compared to other solutions?
The main difference between our ExecutionPlatform and other (HiL) test systems is that we strictly focus on testing at the pin level. Formally speaking, the ExecutionPlatform is a Processor-in-the-Loop (PiL) test system.
What is the advantage of testing against the microcontroller pins?
There are two major advantages. You can start testing as soon as the microcontroller is decided upon. By testing the microcontroller in this isolated way, you always know whether a problem is caused by the firmware/microcontroller or by the surrounding hardware. The second advantage is that introducing faults is much easier at the pin level. Our Endpoints are designed so that testing corner cases in the driver/HAL is as simple as calling a fault injection keyword.
Can I use the ExecutionPlatform from GitLab, Jenkins, or other CI systems?
Yes. The ExecutionPlatform is fully automated and a network-only device. This makes it perfectly suited for CI tasks.
Is the ExecutionPlatform a Hardware-in-the-Loop test system?
No. It is a Processor-in-the-Loop test system. However, through its environment simulation, it can handle most of the tests that are typically performed on a HiL system at a fraction of the cost.
What are Endpoints?
Endpoints are the interface between tests and peripherals. Each endpoint supports a specific peripheral (GPIO, CAN, …) and provides all the means to monitor pins or cause specific behavior (for example, setting/reading a GPIO pin or sending/receiving a CAN frame). Endpoints are configured at runtime and use one or more microcontroller pins. Endpoints eliminate the need to check or stimulate pins manually using an oscilloscope and signal generator.
What Endpoints are supported?
See our technical documentation to get an up-to-date list of supported peripherals and their functionalities.
What is the Code Interface?
Functions on the microcontroller are called at runtime via the Code Interface. You register the functions you want to call in the firmware. These functions can then be conveniently called from the test sequence. For that purpose, you link a small (C-based) runtime that we provide to your code.
What is the scenario for a typical hardware/software integration test?
HW/SW integration tests check the interaction between hardware-dependent code (driver/HAL) and the physical pin level of the microcontroller. With the ExecutionPlatform and the configured Endpoints, you start processes on the pins. This can be, for example, setting a GPIO pin or sending a CAN frame. Tests then use the Code Interface to execute HAL/driver functions on the microcontroller and check whether the pin action was handled correctly in the firmware.
DUT
What exactly is a DUT in the ExecutionPlatform context?
The Device Under Test is a small PCB that has your microcontroller on it. This DUT is inserted into the generic ExecutionPlatform and electrically connects the microcontroller pins to the test system.
How is my microcontroller flashed/programmed?
A SEGGER Flasher programmer is part of the ExecutionPlatform hardware. The typical first step in each test sequence is to use this flasher to program the desired firmware.
What is part of the DUT?
The DUT consists of your specific chip and its basic circuitry, such as an oscillator. The PCB mostly routes all relevant microcontroller pins to the test system.
How do I get a DUT for my project?
You either create one yourself based on our free templates, or you task us with creating one based on information from your project. Typically, customers task us with creating the first DUT.
Which microcontrollers are supported?
For automatic programming, the customer’s chip must be supported by SEGGER Flasher Compact. See https://www.segger.com/supported-devices/flasher/. Unsupported chips can be added on request.
Does the ExecutionPlatform support only microcontrollers?
No, it is technically not limited to microcontrollers. FPGAs, SOMs, or even ASICs can be placed on the DUT. Contact us with your specific request.
What are the electronic limitations?
The ExecutionPlatform supports up to 144 digital pins and voltage levels of 1.8 V to 3.3 V. Analog input/output signal levels must be between 0 V and 5.0 V. You can use up to 24 DUT analog inputs (test system outputs) and up to 8 DUT analog outputs (test system inputs).
Can I change the DUT by myself?
Yes. You power down the ExecutionPlatform, open its case, and change the PCB. Everything reconfigures automatically.
Do you sell ready-to-use DUT PCBs?
We highly recommend that you order or create a DUT that is 100% aligned with your project. We have sample DUTs for a range of different microcontroller families. However, to use the ExecutionPlatform in an efficient and safe way, it is important that the DUT consists of the specific microcontroller (down to the full order code) and that the surrounding circuitry (such as the oscillator frequency) also matches your project.
Pricing
What is your pricing model?
Our prices are public. You face one-time costs for the test device itself and monthly costs for a license package. If you task us with creating the DUT PCB, these are also one-time costs.
Are the license costs related to the number of users?
No. Each license package is valid for a single ExecutionPlatform device. There is no limit to the number of users who can work with the device. This includes automated use cases such as Continuous Integration jobs.
What happens if a license expires on my ExecutionPlatform?
When a license expires, the test device switches to passive mode. You can still flash firmware and monitor signals through the Analyzer Endpoint, but you cannot actively change signals or assert them automatically through connected Endpoints. You can continue using the device at any time by renewing the license package—we do not charge any penalty for missed months.
Is technical support included in the package?
Yes. Since we are evolving the product continuously, we take support very seriously. You can expect a qualified response within 24 hours.
