ARTe (Arduino Real-Time extension) is an extension to the Arduino framework that supports multitasking and real-time preemptive scheduling. Thanks to ARTe, the user can easily specify and run multiple concurrent loops at differents rates, in addition to the single execution cycle provided by the standard Arduino framework.
ARTe has been developed to support concurrent real-time periodic activities, while maintaining the simplicity of the programming paradigm typical of the Arduino framework.
The ARTE architecture.
As illustrated in the figure, the user application exploits the ARTE framework to execute on the Arduino hardware platforms. At the moment, the new ARTE implementation for Arduino IDE 1.9 beta supports the Arduino DUE platform, but we are working hard to provide the support for other common architectures as soon as possible. In addition to the single loop present in the standard Arduino approach, the user can easily specify the number of concurrent loops to be executed at specific rates. Concurrency and real-time scheduling is provided by the ERIKA Enterprise
open-source real-time kernel. Loops can use the standard Arduino libraries, which have been enhanced to guarantee mutual exclusion in the access of shared data structures. The impact of ARTe in terms of footprint and runtime overhead has been evaluated by extensive tests and resulted in being negligible.