About Ocarina

Ocarina is a stand-alone AADL model processor, written in Ada. It is distributed under the GPLv3 plus runtime exception.

It supports the following features:

  • Parser: support both AADL1.0 and AADLv2 syntaxes;

  • Code generation: targeting C real-time operating systems: RT-POSIX, Xenomai, RTEMS; and Ada using GNAT for native and Ravenscar targets;

  • Model checking: mapping of AADL models onto Petri Nets, timed (TINA) or colored (CPN-AMI);

  • Schedulability analysis: mapping of AADL models onto Cheddar or MAST models

  • Model Analysis: using the REAL language, one can analyze an AADL model for particular patterns or compute metrics.

Ocarina is an independent tool, it can either be used

  • Stand-alone: from the command line

  • OSATE2 Integration: Ocarina can also be integrated to OSATE2 using a dedicated plug-in, see the following page for more details.

  • Library: Ocarina can be integrated in third-party tool, like Cheddar.

Ocarina runs on Linux, Windows, Mac OS X. Thanks to Ada portability, it can be ported to any platform supported by GNAT for native development.


Usage of Ocarina

Ocarina is used in the following projects:

  • TASTE toolchain: Ocarina is used as a library in the buildsupport tool, supporting model transformation, and as a stand-alone tool for code generation targeting various RTOSes;

  • Cheddar scheduling tool: an old version of Ocarina is used in Cheddar to support the import of AADL1.0 models. Ocarina also proposes a gateway to Cheddar.

  • AADL Inspector from Ellidiss ships Ocarina, and integrates its parser to check the legality of AADL models.

In addition, Ocarina is used as teaching tool:


Documentation

Ocarina documentation is bundled with the tarball. For your convenience, we provide:


Installation

Install Ocarina from binary archives

Ocarina is released through GitHub release mechanism, see Ocarina releases for provided releases.

Install Ocarina from source distribution, automated

Ocarina requires a valid GNAT Ada compiler installed. We recommend either latest GNAT GPL or a GCC from the FSF.

To compile and test Ocarina, you can either

  • use the build-ocarina.sh script, see ocarina-build for details of operation.

  • test one of the Dockerfiles provided as part of ocarina-docker. Note that these Dockerfiles list all dependencies to install Ocarina on Debian, Fedora and CentOS, using either the default GCC/GNAT compiler, or GNAT GPL.

Install Ocarina from source distribution, manual

You may also perform a manual installation.

To compile and install Ocarina, just type:

./configure [options]
make
make install
  • type
./configure --help

to get the list of possible options.

  • To change the installation directory, use the flag
--prefix=<path> 
  • To compile the documentation, use the flag
--enable-doc 

Note this requires a valid LaTeX + TeXinfo installation.

  • If you modify source files, build Ocarina after a checkout or make distclean, or the directory hierarchy of the source files, you should re-generate autoconf and automake files (configure, Makefile.in…); to do this, from the main directory, run:
./support/reconfig

For more details, please refer to Ocarina’s documentation.


History of the Ocarina project

Here is a brief summary of the timeline of Ocarina:

  • Ocarina was initiated in 2004 by Telecom ParisTech as part of the ASSERT to support code generation from AADL1.0 models. The first users were the European Space Agency, MBDA and Astrium, targeting an Ada Ravenscar runtime.

  • At the completion of the ASSERT project, Ocarina effort was pursued as part of the Flex-eWare project. Ocarina has been extended to support model evaluation using REAL, and code generation targeting C/RT-POSIX OS between 2007 and 2009.

  • Starting 2008, Jérôme Hugues is in charge of the maintenance and the evolution of Ocarina as part of the TASTE toolchain, an offspring of ASSERT. TASTE completes ASSERT by adding new features and support for new operating systems. The TASTE toolchain relies on Ocarina for the generation of mission-critical space on-board software.

  • Since mid-2009, Telecom ParisTech is no longer involved in Ocarina, and is developing another AADL toolchain, based on Eclipse, codenamed RAMSES.

  • The development of Ocarina has been opened through TASTE in 2010, and subsequently deployed on github in 2013.


About Ocarina’s license

Ocarina is distributed under the GPLv3 plus runtime exception.

The GPLv3 plus runtime exception guarantees that Ocarina, but also the code it generates can be distributed under customer-specific terms and conditions. Specifically, the license ensures that you can generate proprietary, classified, or otherwise restricted executables.