Xenomai General
Main
Documentation
- the basics of the Linux operating system architecture; schedular, memory protection, interrupts, system calls, kernel drivers, etc.. : LinuxBasics.pdf
- the basics of the Xenomai realtime operating system architecture; realtime schedular, Linux kernel system calls versus Real-time kernel system calls, etc.. : RealtimeLinuxBasics.pdf
- introduction at xenomai website : http://xenomai.org/start-here/
-
movie presentation: Xenomai 3 An Overview of the Real-Time Framework for Linux by Jan Kiszka
-
slides presentation: Xenomai 3 An Overview of the Real-Time Framework for Linux by Jan Kiszka
- the most important technical documents are :
- other documentation about xenomai : http://xenomai.org/start-here/#Other_readings
- book: Building Embedded Linux Systems, 2nd Edition, by Gilad Ben-Yossef, Jon Masters, Karim Yaghmour, Philippe Gerum, August 2008
chapter 13 The Xenomai Real-Time System https://www.oreilly.com/library/view/building-embedded-linux/9780596529680/
- thesis: Real-Time Linux Testbench on Raspberry Pi 3 using Xenomai by
GUSTAV JOHANSSON
- the Linux Real Time Manual: http://linuxrealtime.org/
- general manual about realtime programming : Realtime and Embedded Guide
- realtime articles by Christophe Blaess:
in French (original language)
in English (by google translate)
API
- xenomai 3.0.5 API : http://www.cs.ru.nl/lab/xenomai/api3/
This API consist of a basic POSIX API and several non-POSIX realtime APIs. The basic POSIX API implements only a subset of the POSIX standard
and is implement by the libcobalt library. The non-POSIX realtime APIs are implemented on top libcobalt using copperplate interface.
For a graphical illustration of this scheme look at the xenomai documentation at the page start here.
-
In the course we mainly use the non-POSIX realtime Alchemy API
together with the basic POSIX API. The Alchemy API is the successor of the former native API in xenomai 2 we previously used in the cources. In my opinion the Alchemy API is
much more succint and clearer to program then the POSIX API. Below we refer to the specific links for both APIs in the API documentation:
- POSIX API (subset) implemented by libcobalt
Not all methods of the posix API are documented at this url, however because posix is a standard we can also look at the
standard POSIX documentation. We must almost note that linux, and thus
xenomai are mostly POSIX compatible . So minor differences with the
standard can exist in linux. Eg. the ioctl subroutine in POSIX and in
Debian Linux use a different header file, because in Linux ioctl function is implemented by
system call. Note: POSIX only defines an API, and it doesn't care whether an API method is implemented by a system call or not.
- Alchemy API implemented on top libcobalt using copperplate interface
- location header files :
- for linux functions : /usr/include
- for xenomai API functions : /usr/xenomai/include/
Code
GPIO
Rotating LEDs System
Old pages about xenomai 2.4 (now using xenomai 3)