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:
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.
Automation of Real-Time Kernel Configuration
• 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
• 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
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.
Real-time 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
To our experience more than 95% of applicative source code is usually reused without modifications.
Real-time Architecture Simulation and Debug
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.