Some variants of the GNAT run-time in Java Generate QR Code in Java Some variants of the GNAT run-time

9.2 Some variants of the GNAT run-time generate, create none none for none projects Microsoft Office Development. Microsoft Office 2000/2003/2007/2010 ORK+ implements none none only the elements required to support the Ravenscar pro le on a monoprocessor system. The Ravenscar pro le greatly reduces the set of available Ada constructs (see Section 8.6 for a detailed description).

The bene ts are twofold. First, it allows for deterministic concurrency. Second, it allows for an e cient implementation.

The GNULL of ORK+ has only 2,000 SLOC7 fully written in Ada, plus some assembly code for low-level code such as context switch procedures. This reduced kernel is amenable to the thorough code analysis and inspection required to ensure quality of the code. The small size also makes it easier to make the necessary timing measurements of capacity required to perform the scheduling analyses discussed in 7.

This small size is a result of limiting the kernel to a small set of operations. Tasks are created only at elaboration time; they cannot terminate. Furthermore, there is no rendezvous allowed.

All communications are performed through protected objects, and they all follow the simple-to-implement Priority Ceiling Protocol (PCP) that we discussed in 7. In addition, ORK+ provides drivers to support serial communications and the SpaceWire spacecraft communication network (ESTEC, 2003) derived from the Firewire protocol. Let s look at a small example for the ORK+ run-time.

The rst le, named gnat.adc, con gures the compiler to enforce all compile-time checks required by the Ravenscar pro le. This le contains the single line:.

pragma P r o f i l e ( R a v e n s c a r ) ;. Our program cont none for none ains a single task that periodically outputs the string ping! . To comply with the Ravenscar No Task Hierarchy restriction, all tasks must be de ned in a separate package they cannot be nested within the main subprogram. Here is the speci cation and body of the package that contains our periodic task.

. package T a s k 1 i s task Task 1 i s pragma P r i o r i t y ( 1 0 ) ; end T a s k 1 ; end T a s k 1 ; with Ada . R e a l T i m e ; use type Ada . R e a l T i m e .

Time ; with System . IO ; package body T a s k 1 i s t a s k body T a s k 1 i s S t a r t T i m e : Ada . R e a l T i m e .

Time := Ada . R e a l T i m e . C l o c k ;.

SLOC: source lines of code, i.e. only code statements, no blank lines or comments are counted. Tools for building and verifying real-time applications begin loop Syste none none m . IO . P u t L i n e ( p i n g ! ) ; S t a r t T i m e := S t a r t T i m e + Ada .

R e a l T i m e . M i l l i s e c o n d s ( 5 0 0 ) ; delay u n t i l Start Time ; end loop ; end T a s k 1 ; end T a s k 1 ;. Here is our main subprogram:. with T a s k 1 ; none for none with Ada . R e a l T i m e ; procedure Simple ORK i s begin Suspend t h e e n v i r o n m e n t t a s k f o r e v e r d e l a y u n t i l Ada . R e a l T i m e .

T i m e L a s t ; end Simple ORK ;. The main subprog ram Simple ORK delays itself forever. The task de ned in our package provides all of the functionality of this program. GNAT Pro High IntegrityTM is a commercially supported run-time for GNAT, derived from the original ORK+ and supported by AdaCore.

It is being used by the Ocean & Land Colour Instrument (OLCI) project. This project is currently being developed by Thales Alenia Space and GMV, under contract of the European Space Agency, for the Sentinel-3 mission. Sentinel 3 is a scienti c observation mission that will routinely monitor ocean and land surfaces.

Within the OLCI project, the Instrument Control Module (ICM) software is a critical component responsible for interfacing with the Satellite Management Unit the central satellite control computer. The ICM also controls the rest of the instrument units. The Ada run-time for this critical software must be quali ed to space standard ECCS-E-40B level B on the target processor.

In the context of space systems, quali cation requires the testing of every possible execution path in the system. Such exhaustive path testing of a run-time system is only possible in small run-times like ORK+ and GNAT Pro High IntegrityTM ..

9.2.3 MaRTE OS, none none a minimum POSIX run-time MaRTE OS (Rivas and Harbour, 2001) is a Hard Real-Time Operating System for embedded applications that follows the Minimal Real-Time POSIX.

Copyright © . All rights reserved.