Introduction
The Embedded Software Test Development Kit (see www.es-tdk.org) eases the implementation of tests for
embedded software. It focuses on C-code and can be used like a unit test framework, but also supports
advanced test scenarios for embedded systems including timing analysis and Hardware-in-the-Loop (HiL)
tests. The ES TDK comes with a new test programming language called ETSpec providing a consistent view
on heterogeneous test environments.
The tested software is executed on the real device. Test execution is controlled and the behavior is
observed using the debug and trace interfaces of the processor hardware. In principle any microcontroller
is supported (especially multicore controllers). Aggregation of data obtained from different targets and
other sources (communication networks, analog signals, simulated environment) is also supported. The ES
TDK is independent of the operating system used on the target and does not require target-side software
support.
The idea of this project was developed in the research project "MoTTeM" at the FZI Forschungszentrum
Informatik (www.mottem.fzi.de) funded by the BMWi (German Federal Ministry for Economic Affairs).
Main Folders
- workspace_main
- The main development workspace for the ES TDK.
- workspace_libs
- The development workspace for drivers / JNI adapters of access hardware.
- workspace_ptspec
- The workspace to for debugging/testing of the ES TDK.
- Contains several examples.
Primary Requirements
- Java Development Kit (JDK) 1.8
- Eclipse Neon.1 (4.6.1) with the following plugins
- preferred approach is installing "Eclipse for DSL developers" and then
adding the remaining plugins (Eclipse SDK, Graphiti SDK, C/C++ SDK)
Eclipse Plugin |
Version |
EMF Framework SDK |
2.12.0 |
Xtext SDK |
2.10.0 |
Eclipse SDK |
4.6.1 |
Graphiti SDK |
0.13.1 |
C/C++ Development Tools SDK |
9.1.0 |
Configure build environment
-
Set JAVA_HOME
environment variable to point to your JDK installation
- e.g. C:\Program Files\Java\jdk1.8.0_101
-
Start Eclipse and select "workspace_main" as workspace.
- Do not use another folder, i.e. do not try to copy the projects into another folder.
- You may want to create a shortcut for Eclipse that always opens the specific workspace.
This is possible using the "-data" argument for eclipse, e.g.
C:\eclipse\eclipse.exe -data "C:\es-tdk-repository\workspace_main"
-
Ensure that installed JREs and default JRE are set correctly (version 1.8)
- Main Menu -> Window -> Preferences -> Java -> Installed JREs
-
Ensure that JDK Compliance is set correctly (version 1.8)
- Main Menu -> Window -> Preferences -> Java -> Compiler
-
Import projects
- Right-click in Project/Package Explorer -> Import -> General -> Existing projects into Workspace
-> "Next" -> "Browse..." -> "OK" -> (all projects should be selected) -> "Finish"
- After loading you will find a large number of errors in the code, this is expected. We have to
trigger code generation first (see next step).
Build and run the ES TDK
-
Generate code for fzi.mottem.model
- Right-click "fzi.mottem.model/Generate Model Code.launch" -> Run As -> Generate Model Code.
- A shortcut can be found under "External Tools" in the Eclipse toolbar after the first run.
-
Generate code for fzi.mottem.ptspec.dsl
- Right-click "fzi.mottem.ptspec.dsl/Generate PTSpec.launch" -> Run As -> Generate PTSpec.
- A shortcut can be found under "Run Configurations" in the Eclipse toolbar after the first run.
-
DONE! Try out the plugin:
- Right-click "fzi.mottem.runtime/ES TDK.launch" -> Run As -> ES TDK.
Example Applications
The source code for two example applications (target code) is included in this project.
To build and run these examples specific hardware and software is required.
- The "raupe" example targets two STM32F4 micro controllers communicating over CAN. They are
assembled on a crawler vehicle. One STM32F4 controls the speed, the other measures the distance
to an obstacle ahead of the vehicle using an IR sensor.
- The "ecumotor" example targets an MPC5643L micro controller with two processor cores. One core
contains a realtime critical control algorithm for a brushless DC motor (reading hall sensors,
commutation), the other core is responsible for CAN communication.
Even if the hardware is not available the source code of these example applications can be used to
get an idea of the ES TDK.
Requirements to build example applications
- For "raupe" example
- Cygwin with specific packages (there is a minimal package available on the erika website)
- GNUARM GCC
- RT-Druid Eclipse Plugin
- ERIKA RTOS build environment (RT-Druid) must be configured correctly (see online documentation)
- For "ecumotor" example
- Cygwin with "make" und "binutils"
- PowerPC GCC
- Set environment variable
MOTTEM_PPC_GCC
to your PowerPC GCC installation using cygwin path style:
e.g. /cygdrive/c/gcc/ppc/bin
- For building native API adapters (based on JNI)
Requirements to run example applications
- iSYSTEM WinIDEA 2012
- Vector Informatik CANoe
- Keysight API
- IOLibrary Suite
- IVI Shared Components
- AGInfiniiVision IVI + Matlab Driver
- GNUARM Eclipse Plugin and STLink tools (for Flashing/Debugging on ST Discovery Board)