Real-Time Linux w zastosowaniach przemysłowych

Linux jest coraz częściej wykorzystywany w systemach wymagających przetwarzania danych i odpowiedzi w czasie rzeczywistym. Podczas kursu, omawiane są wszystkie aspekty dostosowania tego systemu do zastosowań w charakterze sterownika procesu przemysłowego.
Omawiany jest Linux jako RTOS: rozwiązania otwartoźródłowe: RT-PREEMPT, Xenomai, RTAI oraz komercyjne, polegające na użyciu koprocesora (PRU lub Cortex-M).

Czas trwania
4 dni (32 godziny)

Cel szkolenia

Program Szkolenia

Dzień 1. Linux w systemach wbudowanych – budowa systemu, wprowadzenie do zagadnień Real-Time w Linuksie.

Wprowadzenie do Linuksa Embedded – "w pigułce" (kompilacja, cross-kompilacja dla systemów wbudowanych, struktura kodu jądra i narzędzi, praca z systemem kontroli wersji GIT, moduły jądra, licencje). cross-toolchain – budowa, planowanie i dobór narzędzi deweloperskich, typowe rozwiązania, problemy i błędy (toolchain zbudowany samodzielnie vs. Gotowy)

Po tej części:

Uczestnicy będą w stanie samodzielnie zaplanować dobór odpowiednich narzędzi (toolchain-a) dla danych urządzeń i zadań. Poznają budowę systemu Embedded Linux i sposób jego uruchamiania. Samodzielnie zbudują system bazowy. Przedstawione zostaną źródła opóźnień w obsłudze wejścia-wyjścia i metody ich pomiarów. Na przykładowym sterowniku realizującym wejście-wyjście na liniach GPIO – przedstawiona zostanie budowa sterownika (magistrala platform, rejestracja urządzeni, rejestracja sterownika, frameworki udostępniane przez jądro, rejestracja przerwania, opis urządzeń – Device-Tree).

Ćwiczenia:

Ta seria ćwiczeń polega na sukcesywnej kompilacji poszczególnych elementów systemu i uruchamianiu ich na urządzeniu w celu zrozumienia z czego składa się i jak działa system.

Dzień 2. How to make Linux Real-Time?

Po tej części:

Uczestnicy będą potrafili korzystać a API dostępnego w niezmodyfikowanym jądrze Linux (do tworzenia aplikacji Soft-Real-Time) a także posługiwać się patchami PREEMPT-RT.

Ćwiczenia:

Polegają na sukcesywnym budowaniu aplikacji realizującej sterowanie procesem przemysłowym (sterowanie laserem). Aplikacja składa się z GUI zbudowanego przy pomocy biblioteki QT, oraz napisanej w C części realizującej sterowanie w czasie rzeczywistym. Komunikacja odbywa się przez mechanizmy systemowe oraz sieć (GUI działa na PC).
Część realizująca GUI, szkielet aplikacji są przygotowane wcześniej – uczestnicy implementują kluczowe funkcje.

Dzień 3. Utilizing Co-kernel approach

Prezentacja rozwiązań, w których procesy Real-Time działają pod kontrolą mikrojądra, równolegle z nimi uruchamiany jest Linux (jako jeden z wątków mikrojądra).

Po tej części:

Uczestnicy będą w stanie korzystać z Xenomai.

Ćwiczenia:

Część Real-Time aplikacji przygotowanej poprzedniego dnia zostanie zaimplementowana jako wątek Xenomai.

Dzień 4. Real-Time communication.

Ćwiczenia:

Ćwiczenia polegają na uruchamianiu, modyfikacji i testowaniu programów i skryptów realizujących poszczególne use-case-y.