ASTERIOS® DEVELOPER

ASTERIOS® Developer is an innovative IDE dedicated to the development of real-time applications. It incorporates breakthrough Real-Time Kernel technologies originally developed by the CEA and validated with major customers in the aerospace, automotive, industrial automation and energy markets.

ASTERIOS® Developer enables to describe explicitly all the end-to-end real-time requirements of the application, even if non-periodic, multi-clocked and event-driven. It then configures automatically the real-time mechanisms needed to run the real-time application on the selected hardware platform. The scheduling, the spatial and temporal partitioning, the synchronization of data exchanges are all automatically configured to match the set of end-to-end real-time requirements. Determinism and freedom from interference are both ensured by construction.

ASTERIOS® is also a complete IDE that includes simulation functionalities to debug the temporal behavior of the application. The real-time application can be incrementally architected, enriched, modified or validated, all on a desktop computer with simulation alone.

A simple compilation directive is used to select a supported hardware platform and the number of cores used to run the application. Powerful automated profiling functionalities are then available to finely tune the real-time application for the selected single-core or multi-core hardware platform.

A Software Engineering Solution

ASTERIOS® Developer is a software engineering solution dedicated to real-time development. it includes powerful functionalities addressing real-time architecture modelling and hardware target automatic integration as summarized in the following picture:

P4_ASTERIOS_Developer

ASTERIOS® Developer automates the integration of a real-time application on a hardware platform and helps structure the design flow. It is especially suited to address high reliability and performance for mix-criticality real-time applications in a certification context.

An Innovative IDE

ASTERIOS® Developer is built as a light Integrated Development Environment (IDE) with a modern look and feel.

P5_ASTERIOS_snapshots

Automation of Real-Time Kernel Configuration

P6_rtos_config
The automated calculations performed by ASTERIOS® Developer encompass key Real-Time Kernel related activities:
• Automatic scheduling generation,
• Automatic runtime tables generation,
• Automatic synchronization of communications.

The scheduling and associated runtime tables are statically computed, ensuring the determinism of the application’s behavior. External asynchronous events are supported as long as their highest frequency of occurrence are documented. Communications between tasks are automatically mapped onto calculated temporal synchronization points, ensuring consistency and determinism of the application’s communication flow.

Automation of Real-Time Kernel Usage

P7_microkernel_usage
The ASTERIOS® Developer Real-Time Kernel is designed to take advantage of these automatic calculations:
• Lock free and wait free implementation,
• High-performance and low-latency implementation,
• Automatic spatial and temporal partitioning.

The ASTERIOS® Developer Real-Time Kernel does not use any handshake mechanism (no semaphore, no mutex) nor any priority mechanism. It can sustain any complex preemption scheme generated by the automatic scheduling, can drive tasks well below the millisecond even on low-end hardware platforms, and can mix them seamlessly with slower tasks. The micro-kernel enforces the spatial and temporal partitioning resulting from the automated calculations, and will detect and act upon any application’s code violation of this partitioning.

Automation of Hardware Resources Usage

P8_hardware_usage

The automated calculations achieved by ASTERIOS® Developer include hardware resources management:
• Automatic memory and CPU usage calculation,
• Automatic multicore and peripherals management,
• Automatic profiling on the selected hardware target.

Hardware resources necessary to run the real-time application, both in terms of memory consumption and CPU time usage, are pre-calculated with ASTERIOS® Developer. This ensures a deterministic use of resources and provides indication on available margins. The distribution over a single core or multiple cores, being low-end microcontrollers or high-end processors, are equally addressed by the ASTERIOS® Developer process.

Automated profiling on the selected hardware platform enables to tune the adaptation of the real-time application with final adjustments on the automated calculations.

P9_2016.B_merge_ksobel_kBox

Real-time Architecture Modelling

P10_architecture_modelling

ASTERIOS® Developer provides a formalism to define the real-time architecture of the embedded application. The real-time architecture encompasses both the static description and dynamic behavior of the application: tasks/processes organization, communication flows and timing requirements.

This architectural description is provided in ASTERIOS® Developer through an extension to the C language. Timing requirements encompass periodic, harmonic or non-repetitive constraints, describing deadlines, min/max windows, max jitter, that can be driven by different physical timers or by external asynchronous events.

Legacy Code Reuse

P11_legacy_reuse
Any functional legacy source code provided in C language can be seamlessly reused with ASTERIOS® Developer, as long as it is stripped of synchronization mechanisms and Real-Time Kernel services calls. This includes possible reuse of high-level models such as SCADE or Matlab/Simulink models once translated in C.

To our experience more than 95% of applicative source code is usually reused without modifications.

Real-time Architecture Simulation and Debug

P12_simulation_debug
Simulation and debugging capabilities in ASTERIOS® Developer enable to validate, on the desktop computer without the need for a hardware target, the real-time architecture of the embedded application. It can also be used to simulate and debug the underlying applicative functional C code.

The simulator provides detailed timing information, and debugging activities (breakpoints, step-by-step) can be performed on the real-time architecture with source-code automatic interactions.

P13_2016.B_timing_trace_ksobel_kbox