1482 IEEE TRANSACTIONS ON NUCLEAR SCIENCE, VOL. 58, NO. 4, AUGUST 2011 A Survey of Recent MARTe Based Systems André C. Neto, Diogo Alves, Luca Boncagni, Pedro J. Carvalho, Daniel F. Valcárcel, Antonio Barbalace, Gianmaria De Tommasi, Horácio Fernandes, Filippo Sartori, Enzo Vitale, Riccardo Vitelli, Luca Zabeo, and JET EFDA CONTRIBUTORS Abstract—The Multithreaded Application Real-Time executor (MARTe) is a data driven framework environment for the devel- opment and deployment of real-time control algorithms. The main ideas which led to the present version of the framework were to standardize the development of real-time control systems, while providing a set of strictly bounded standard interfaces to the out- side world and also accommodating a collection of facilities which promote the speed and ease of development, commissioning and deployment of such systems. At the core of every MARTe based application, is a set of independent inter-communicating software blocks, named Generic Application Modules (GAM), orchestrated by a real-time scheduler. The platform independence of its core library provides MARTe the necessary robustness and flexibility for conveniently testing applications in different environments including non-real-time operating systems. MARTe is already being used in several machines, each with its own peculiarities regarding hardware interfacing, supervisory control configura- tion, operating system and target control application. This paper presents and compares the most recent results of systems using MARTe: the JET Vertical Stabilization system, which uses the Real Time Application Interface (RTAI) operating system on Intel multi-core processors; the COMPASS plasma control system, driven by Linux RT also on Intel multi-core processors; ISTTOK real-time tomography equilibrium reconstruction which shares the same support configuration of COMPASS; JET error field correction coils based on VME, PowerPC and VxWorks; FTU LH reflected power system running on VME, Intel with RTAI. Index Terms—Multithreaded Application Real-Time executor (MARTe), nuclear fusion control, real-time, tokamak. Manuscript received June 14, 2010; revised November 17, 2010; accepted February 17, 2011. Date of publication April 05, 2011; date of current version August 17, 2011. This work was supported by the European Communities under the Contract of Association between EURATOM/IST and was carried out within the framework of the European Fusion Development Agreement. Portions of this work were presented at the IAEA 22nd Fusion Energy Conference (FEC), Geneva, Oct. 13-18, 2008. A. C. Neto, D. Alves, P. J. Carvalho, D. F. Valcárcel, and H. Fernandes are with Associação EURATOM/IST, Instituto de Plasmas e Fusão Nuclear-Lab- oratório Associado, 1049-001 Lisboa, Portugal (e-mail: andre.neto@ipfn. ist.utl.pt; dalves@ipfn.ist.utl.pt; pedro.carvalho@ipfn.ist.utl.pt; daniel.val- carcel@ipfn.ist.utl.pt; hf@ipfn.ist.utl.pt). L. Boncagni and E. Vitale are with Associazione EURATOM/ENEA, 00040 Frascati, Italy (e-mail: luca.boncagni@enea.it). A. Barbalace is with the Associazione EURATOM/ENEA, Consorzio RFX, 35127 Padova, Italy (e-mail: barbalace@igi.cnr.it). G. DeTommasi is with Associazione EURATOM/ENEA/CREATE, Univer- sità di Napoli Federico II, 80138 Napoli, Italy (e-mail: detommas@unina.it). F. Sartori is with Fusion for Energy, 08019 Barcelona, Spain (e-mail: Filippo. Sartori@f4e.europa.eu). R. Vitelli is with the Dipartimento di Informatica, Sistemi e Pro- duzione, Università di Roma “Tor Vergata,” 00133 Rome, Italy (e-mail: ricardo.vitelli@uniroma2.it). L. Zabeo is with ITER-IO, St. Paul-Lez-Durance 13108, France (e-mail: Luca.Zabeo@iter.org). Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org. Digital Object Identifier 10.1109/TNS.2011.2120622 I. INTRODUCTION M ultithreaded Application Real-Time executor (MARTe) is a C++ multi-platform framework for the development and execution of real-time control systems [1]. Its main goals are to provide a clear boundary between algorithms, hardware interaction and system configuration, leveraging reusability and maintainability. This functional division also enables control systems simulation [2] and phased commissioning, by replacing some of its components by models and synthetic data producers. Being multi-platform it minimizes the constraints with the operational environments, so that the target application can be easily run on a different operating system. A feature which al- lows the development and execution of code in non real-time environments and to proceed to the final deployment on the real-time target, only when the overall functionality of the con- trol system is asserted. MARTe was already ported and tested in the following operating systems: Wind River VxWorks, Linux, Linux/RTAI, Solaris, and MS Windows. MARTe and its components are data driven using a textual language with a specific format and syntax, validated during the configuration phase. The framework does not impose a way on how the configuration data should be produced, but it does pro- vide a mechanism for updating its components configuration, allowing its integration in different experiments and human ma- chine interfaces. This interface is provided by a framework com- ponent which acts as a proxy, so that when a new component configuration is requested, it automatically forwards the config- uration data to the selected framework objects. The core component of a MARTe is the Generic Application Module (GAM). A MARTe application is built by connecting a collection of specialized GAMs, using a memory data bus named Dynamic Data Buffer (DDB). Each GAM can produce and receive data using DDB named channels. These are re- quested by the GAM upon configuration and the framework guarantees that all the required sources are present on the system. Usually each GAM is associated with a functional re- quirement of the control system (e.g., PID or data conversion), enabling the reusage of the component itself, or the replacement of part of the control system, particularly useful for simulation purposes. The interface with the hardware and synchronization is performed using a special module named IOGAM. It provides a standard hardware interface to MARTe, which expects the real hardware interaction to be implemented at the driver level (e.g., configuration and data transferring). MARTe supports two types of synchronization mechanisms, one based on continuous polling of a resource and the other as a response to an external interrupt. The framework can also have asynchronously, event 0018-9499/$26.00 © 2011 IEEE