wiki:Developer/Projects/Open/ARINC653API

Version 3 (modified by Gedare, on Feb 13, 2012 at 4:49:16 AM) (diff)

ARINC653API

Background

I am VERY fond of the idea of a free hypervisor that provides the real-time features required by ARINC 653. --Dr. Joel? 23:18, 25 January 2010 (UTC).

AIR

The implementation of ARINC 653 interface in RTEMS was studied as part of a ESA project named AIR. This study was developed to "study of how the Real-Time Executive for Multiprocessor Systems (RTEMS) can be adapted to fullfill the requirements defined in the ARINC 653 standard". The project provided a proof of concept of the ARINC 653 implementation. The project page can be found here. The final report can be found here. "This document: (i) describes the main issues regarding the AIR architecture specification; (ii) addresses how space and time partitioning could be provided in an abstract processor infrastructure, as well as those requirements can be mapped into both SPARC ERC32/LEON and Intel IA-32 (80x86) architectures; (iii) describes how to achieve the mapping of the ARINC 653 service interface in RTEMS; (iv) identifies the most relevant module dependencies of RTEMS with regard to AIR implementations;(v) identifies a preliminary set of modifications to be introduced in the RTEMS application production chain for the implementation of AIR-based systems (exemplified through a proof of concept prototype)." Quoted from http://hdl.handle.net/10455/2982 . -- cdcs

ARINC653 API support

The goal is to provide a minimal ARINC653 layer that support only intra-partition services. As inter-partitions would be managed by an underlying hypervisor, they must be integrated as a second step for ARINC653 services integration. The idea here would be to provide an API that support the first part of ARINC653 services so that ARINC653 application can compile with RTEMS and intra-partition services would work. This implies to add a new API support in RTEMS. The project would enable the following services to be interfaces with the regular RTEMS API: tasks, intra-partition (blackboard/event/semaphore/buffer) and time service. For inter-partition services (queueing/sampling ports), we expect to provide the definition of the function but leave it blank so that an ARINC653 partition would compile but the behaviour would have to be implemented in the future.