XGC Technology

sales@xgc.com
Fax +44 1483 433312


The Ravenscar Profile


All XGC compilers are designed for hard real-time applications and offer a small run-time footprint and fast response to real-time events. The default profile offers a wide range of real-time features that will be suitable for most applications. For more critical applications, XGC Ada compilers support the Ravenscar profile. This places further restrictions on Ada language features acceptable to the compiler.

The Ravenscar profile prohibits the following:

  • Task types and object declarations other than at the library level. Thus, there is no hierarchy of tasks.

  • Dynamic allocation and unchecked deallocation of protected and task objects.

  • Requeue

  • ATC (asynchronous transfer of control via the asynchronous select statement)

  • Abort statements including Abort_Task in package Ada.Task_Identification

  • Task entries

  • Dynamic priorities

  • Calendar package

  • Relative delays

  • Protected types and object declarations other than at the library level

  • Protected types with more than one entry

  • Protected entries with barriers other than a single boolean variable declared within the same protected type

  • An entry call to a protected entry with a call already queued

  • Asynchronous task control

  • All forms of select statement

  • User-defined task attributes

  • Dynamic interrupt handler attachments

 

References

Ravenscar Paper

The Bare-Target Run-Time System

The XGC run-time system runs on the bare target computer. It is therefore much more efficient and deterministic than others that run on top of an operating system. Even real-time operating systems designed for embedded applications cannot match the performance of an Ada run-time when running Ada tasks and handling interrupts.