Mission-Critical On-Board Software Using the Ada 95 Ravenscar Profile∗

This paper describes how GNAT Pro for ERC32 and the Ravenscar profile are suitable for designing and implementing complex on-board software using high-level tasking facilities. The static and simple tasking model defined by the Ravenscar profile allows for a streamlined implementation of the run-time system directly on top of bare machines. The reduced size and complexity of the run time, together with its configurability, makes it suitable for mission-critical space applications in which certification or reduced footprint is needed. Software reliability and predictability is also increased by excluding non-deterministic and non analysable tasking features. Product validation has been achieved by means of a comprehensive test suite intended to check compliance with the Ravenscar profile and Ada standards, and correct behaviour of specialised features and supplemental tools. Code coverage analysis is also part of the validation campaign, with the goal of achieving 100% statement coverage.

[1]  Juan Zamorano,et al.  Exception support for the ravenscar profile , 2001, ALET.

[2]  Juan Zamorano,et al.  GNAT/ORK: AN OPEN CROSS-DEVELOPMENT ENVIRONMENT FOR EMBEDDED RAVENSCAR–ADA SOFTWARE , 2002 .

[3]  José F. Ruiz,et al.  Implementing Ada.Real_Time.Clock and Absolute Delays in Real-Time Kernels , 2001, Ada-Europe.

[4]  Juan Antonio de la Puente,et al.  Precise response time analysis for Ravenscar kernels , 2002 .

[5]  Tullio Vardanega,et al.  A Case Study in the Reuse of On-board Embedded Real-Time Software , 1999, Ada-Europe.

[6]  Alan Burns,et al.  Guide for the use of the Ada Ravenscar Profile in high integrity systems , 2004, ALET.

[7]  T. Vardanega,et al.  A software process for the construction of predictable on‐board embedded real‐time systems , 1999, Softw. Pract. Exp..

[8]  Theodore P. Baker,et al.  A Linux kernel module implementation of restricted Ada tasking , 1999 .

[9]  David B. Whalley,et al.  Fast context switches: compiler and architectural support for preemptive scheduling , 1995, Microprocess. Microsystems.

[10]  Alan Burns The Ravenscar Profile , 1999, ALET.

[11]  Frank Mueller,et al.  Implementing Ada 9X features using POSIX Threads: design issues , 1993, TRI-Ada '93.

[12]  Robert Dewar,et al.  Exposing Uninitialized Variables: Strengthening and Extending Run-Time Checks in Ada , 2002, Ada-Europe.

[13]  Tullio Vardanega Development of on-board embedded real-time systems: an engineering approach , 1998 .

[14]  Juan Antonio de la Puente,et al.  The design and implementation of the open Ravenscar kernel , 2001 .

[15]  John G. P. Barnes,et al.  High Integrity Software - The SPARK Approach to Safety and Security , 2003 .