erika educational
overview
news
download
  what's required
  compiling and using
  gcc3 support
demos
wireless interface
Matlab support
people
related links

The E.R.I.K.A. Educational Home Page

IMPORTANT INFORMATION

This web site is a mirror of the pages which formed the ERIKA Educational website. The website is currently idle since a few years, because all the development effort has been devoted to ERIKA Enterprise. Eventually these mirror pages will be removed, and its content integrated in the ERIKA Enterprise website.

What is ERIKA?

The most important requirement of real-time operating systems (RTOS) deployed in a large class of embedded controllers are time predictability and small kernel footprint (especially in RAM). A relevant example of such applications is offered by power train microcontrollers used in the automotive industry. In this context the ability for a car maker to spare even little amounts of money in the hardware costs can result into important competitive advantages on a large lot of pieces. Furthermore, the possibility to easily port an embedded software application across a wide range of architecture is of paramount importance. Under these motivations the team of the ReTiS laboratory has worked for years on an innovative microkernel architecture devised to comply with the multi-faceted requirements of embedded controllers.
The outcome of this effort is a project named ERIKA (acronym of Embedded Real tIme Kernel Architecture).

ERIKA Educational

ERIKA Educational is a a full-fledged and fully functional RTOS distributed under the GNU GPL license. It has been designed to be an effective and attractive Educational platform for real-time programming or embedded systems courses. A first possibility for students and instructors is to use ERIKA educational as a programming environment to develop small control applications. To this purpose, we fully support ERIKA educational on the widespread Lego Mindstorms platform (even though we have not got a specific support agreement with Lego....). Other educational platforms will be supported soon.

Another important possibility is to use the package as a representative example of a real-time operating systems, encompassing state of the art design solutions. Students having basic real-time computing skills are presented with an efficient implementation of priority schedulers, clocks and IPC primitives. The GPL license allows one to study, execute and modify the code at the user's convenience. We elicit new contributions and we are committed to support their integration into ERIKA educational and their distribution under the GPL license (unless otherwise required by the authors).

Don't miss the opportunity: enjoy the lasting pleasure of using ERIKA in your class!

The Architecture

A real-time kernel must provide suitable real-time scheduling algorithms. Typically, these kernels implement a cyclic executive, or a fixed priority deadline monotonic scheduling algorithm with a Non-Preemptive protocol for accessing mutually exclusive shared resources.

Using the appropriate scheduling algorithm, the application can be guaranteed to meet all its time constraints. In addition, real-time kernels for embedded system have very demanding requirements on code size and interrupt handling response time.

These kernels are usually very fast and small: they must fit in a few kbytes of memory, and require the least possible amount of RAM (RAM is more expensive than ROM).

Other types of applications, that have less constraints on the RAM usage, can use a different scheduler that can be built on the multi-stack model. Of course, the HAL implementation, which provides the context switch between tasks, depends on the stack model. In our work, we provided two HAL for the target architecture, one suitable for mono-stack models, the other one for multi-stack models. Depending on the characteristics of the application, the system designer has the possibility to choose what to optimize. The architecture of the ERIKA Kernel consists of two main layers: the Kernel Layer and the Hardware Abstraction Layer.

The Kernel Layer contains a set of modules that implement task management and real-time scheduling policies. At the moment, the available policies are: Fixed priority with preemption threshold and an EDF with preemption threshold kernel layer (the latter only available under ERIKA Enterprise). Both use SRP, that is a protocol that allows to share resources between threads and to share the system stack among all the threads while preserving time predictability.

The Hardware Abstraction Layer contains the Hardware dependent code that manages context switches an interrupt handling.

Copyright Notice

All trademarks, service marks, and copyrights are property of their respective owners. LEGO, Mindstorms, CyberMaster, Scout, Vision Command, Robotics Invention System, and RCX are trademarks of the LEGO Group of companies which does not sponsor, authorize or endorse this site. Read the fair play message from LEGO for more details.