State-of-the-art validation of real-time properties of embedded software is performed by extensive testing involving hardware in the loop. Simulation is mainly used for testing functional properties of applications represented as software or as higher level executable models.
The costs of hardware in the loop testing, plus the increased complexity of distributed embedded applications make the case for shifting the main load of real-time testing towards software in the loop setups.
Clearly, to simulate the real-time behavior of an embedded application, one needs to simulate also the functionality and timing of the execution platform (hardware and operating system), sensors, actuators, and the physical plant under control. An important challenge in this case is finding the right level of abstraction, which determines the modeling effort, the properties that can be tested as well as the efficiency of the simulation.
In our work, the Validator tool suite is employed for simulation-based verification of timing-related properties of control software. It is a software in-the-loop simulator, where the application code is executed on a host computer and the passage of time is simulated according to execution and communication times related to a given execution platform.
This timing information can be obtained by static techniques involving program analysis or by methods based on measurements. The Validator also simulates functional behavior of operating system services and hardware components at a level of abstraction that enables capturing significant timing aspects without executing detailed hardware models. The tool achieves co simulation with Simulink models based on time synchronization protocols.
It is based on a discrete event simulator which executes the application software on a host platform and simulates the passage of time according to execution times of application code and communication times pertaining to a given embedded target.
The Validator also simulates functional behavior of operating system services and hardware components at a level of abstraction that enables capturing significant timing aspects without executing detailed hardware models. We present use cases where the Validator is employed for evaluating integration of new control functions in existing systems, model refinement, and regression testing of automotive control software.
To read this external content, download the complete paper from the author archives online.