GNAT/ORK: AN OPEN CROSS-DEVELOPMENT ENVIRONMENT FOR EMBEDDED RAVENSCAR–ADA SOFTWARE

Abstract Ada tasking is a powerful abstraction mechanism for developing concurrent embedded systems. However, many implementations of concurrent tasking have been seen as potentially unsafe for critical systems because of their high degree of indeterminism. The Ravenscar profile is a subset of Ada 95 tasking with purpose of providing a basis for the implementation of certifiable critical systems. ORK is an open-source real-time kernel which provides full conformance with the Ravenscar profile on embedded computers. The kernel has a reduced size and complexity, and has been carefully designed to allow the building of reliable software for embedded applications. This kernel is integrated in a cross-compilation system based on GNAT 3.13, supporting the subset of Ada 95 tasking which is allowed by the Ravenscar profile in an efficient and compact way. It is closely integrated with other tools, including a tasking-aware version of GDB.

[1]  Barry A. Spinney,et al.  An Ada Runtime System Implementation of the Ravenscar Profile for High Speed Application-Layer Data Switch , 1999, Ada-Europe.

[2]  Michael Barabanov,et al.  A Linux-based Real-Time Operating System , 1997 .

[3]  José F. Ruiz,et al.  Implementing a New Low-Level Tasking Support for the GNAT Runtime System , 1999, Ada-Europe.

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

[5]  B. A. Wichmann,et al.  Guidance for the use of the Ada programming language in high integrity systems , 1998, ALET.

[6]  B. A. Wichmann High Integrity Ada , 1997, SAFECOMP.

[7]  José F. Ruiz,et al.  An Open Ravenscar Real-Time Kernel for GNAT , 2000, Ada-Europe.

[8]  Dong-Ik Oh,et al.  The GNARL Implementation of POSIX/Ada Signal Services , 1996, Ada-Europe.

[9]  Alan Burns,et al.  Hrt-Hood: A Structured Design Method for Hard Real-Time ADA Systems , 1995 .

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

[11]  Alan Burns,et al.  Putting fixed priority scheduling theory into engineering practice for safety critical applications , 1996, Proceedings Real-Time Technology and Applications.

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

[13]  S. Tucker Taft,et al.  Consolidated Ada Reference Manual Language and Standard Libraries , 2002, Lecture Notes in Computer Science.

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

[15]  Dong-Ik Oh,et al.  Low-level Ada tasking support for GNAT-performance and portability improvements , 1997, ALET.

[16]  A. Welz Ada in Safety Critical Applications , 1991, Ada-Europe.