[WARSZTATY!] Czerwcowe „Designing with Freescale 2013”: mikroprocesory i.MX, Vybrid i Linux w praktyce

 

Podczas zbliżających się warsztatów „Designing with Freescale 2013” (Warszawa, 26.06.2013) firma Freescale przygotowała dla konstruktorów i programistów zainteresowanych praktycznymi aspektami stosowania systemu operacyjnego Linux oraz mikroprocesorów z serii i.MX5 osobne seminarium z cechami warsztatu hands-on. Sesja będzie prowadzona w języku polskim przez jednego z czołowych promotorów Linuksa w Polsce – Marcina Bisa, autora popularnej książki „Linux w systemach embedded„.
W dalszej części artykułu przedstawiamy – w nieco publicystycznej formie – tematykę, której będą poświęcone linuksowe warsztaty podczas tegorocznych „Designing with Freescale„.

 

 

Marcin Bis od 2007 roku zajmuje się zastosowaniami Linuksa w systemach embedded, przede wszystkim w rozwiązaniach przemysłowych działających w czasie rzeczywistym (real time applications). Konsekwentnie zdobywa doświadczenie praktyczne, uczestnicząc w projektach z dziedziny automatyki przemysłowej, domowej, multimediów, urządzeń sieciowych i wielu innych, zarówno w Polsce i za granicą. Swoją wiedzą i doświadczeniami dzieli się na konferencjach, prowadzi także szkolenia pod marką bis-linux.com. Zajmuje się zagadnieniami związanymi z projektowaniem urządzeń, portowaniem i uruchamianiem Linuksa, sterownikami urządzeń a także doborem komponentów OpenSource i wreszcie aplikacjami i skryptami składającymi się na gotowy system.

Jest ponadto autorem pierwszej w języku polskim książki o zastosowaniach Linuksa w systemach embedded, która ukazała się nakładem Wydawnictwa BTC w roku 2011 („Linux w systemach embedded„).

 

Co się dzieje w ciągu 70µs?
Samochód jadący z prędkością 120 km/h, przejeżdża w każdej sekundzie 33,33 m. W ciągu 70 µs przejedzie więc trochę ponad 2,3 cm. Jeżeli ma silnik Diesla, w czasie jednej minuty jego wał korbowy wykonuje około 2700 obrotów. W 70 µs wykona więc 0,00315 obrotu, co przekłada się na kąt obrotu o wartości ponad 1,13 stopnia. 70 µs jest to również maksymalny gwarantowany czas odpowiedzi systemu Linux dostosowanego do pracy w czasie rzeczywistym, zmierzony podczas testów na procesorze i.MX53 firmy Freescale.

Czy 70µs to dużo, czy mało?
Systemu z takim gwarantowanym czasem reakcji raczej trudno będzie użyć do sterowania łożyskiem olejowym turbiny obracającej się z prędkościami rzędu kilkudziesięciu tysięcy obrotów na minutę. Istnieje jednak szereg zastosowań, przy których tego typu opóźnienia będą wystarczające. Wiele procesów przemysłowych kontroluje obiekty o znacznie większej bezwładności, na przykład zawory w układach pneumatycznych i hydraulicznych, silniki i suwnice o dużej masie, czy procesy chemiczne zachodzące w kontrolowanym środowisku.
Jeżeli zamiast silnika samochodu, rozważymy drukarkę 3D (na przykład jeden z prostych projektów Open Hardware), okaże się, że głowica drukująca, która przesuwa się z prędkością 1 m/s, pomiędzy wykryciem przez czujnik granicy obszaru roboczego a wykonaniem rozkazu zatrzymania silnika krokowego, pokona drogę 0,07 mm. Oczywiście lepsze rezultaty można osiągnąć stosując do sterowania głowicą drukarki program działający bezpośrednio na mikrokontrolerze a nie w systemie Linux.

Po co nam więc Linux?
Wiele projektów, nie tylko urządzeń przemysłowych, aby odnieść sukces, wymaga krótkiego czasu projektowania (time-to-market). Klienci są przyzwyczajeni do wszechobecnych urządzeń mobilnych o dużych możliwościach. Dlatego wymagają dużych ekranów i bogatych graficznie multimedialnych aplikacji, do których są przyzwyczajeni. Z drugiej strony, aby nadążyć za zmianami i potrzebami rynku, konieczne są ciągłe zmiany w gotowym produkcie (np. wprowadzenia obsługi IPv6, IPsec i innych protokołów sieciowych, implementacja kryptografii, czy wykonywanie jednorazowych urządzeń na potrzeby konkretnego wdrożenia).
Współczesne mikrokontrolery integrują coraz więcej funkcji. Ciągle spadają ceny komponentów potrzebnych do zbudowania urządzenia, w którym działa uniwersalny system operacyjny, jakim jest Linux. Zestaw: SoC, pamięć RAM i pamięć stała (NAND, eMMC lub karta SD) jest coraz tańszy, a jego możliwości rosną.
Zastosowanie rozwiązań opartych na Linuksie, otwiera drogę do bardzo bogatej kolekcji oprogramowania OpenSource. Od responsywnych animowanych GUI (QT, GTK), przez renderowanie plików HTML i grafiki (WebKit), zaawansowane usługi sieciowe (bardzo wiele projektów implementujących różne protokoły) po obsługę multimediów i komunikację bezprzewodową. Te same programy znajdziemy również na komputerach PC. Pozwalają one zbudować prototyp aplikacji i przetestować możliwe rozwiązania jeszcze przed rozpoczęciem kosztownych prac nad sprzętem, czy nawet zakupem zestawu deweloperskiego. Z drugiej strony, ilość dostępnych narzędzi (np. dystrybucja Debian zawiera ponad 30000 pakietów), dokumentacja i istotne informacje są często porozrzucane w Internecie i trudne do znalezienia. Może to powodować problemy na wszystkich etapach projektu, a nawet prowadzić do porażki.
Android (oparty na Linuksie) dostarcza spójnego, dobrze zdefiniowanego SDK. Jednak w świecie OpenSource, inżynierowie i programiści nie są skazani na jedno jedynie słuszne rozwiązanie. Wolność oprogramowania polega na możliwości jego wyboru zgodnie z wymaganiami.

Co można z tym zrobić?
Zarówno starsze procesory aplikacyjne firmy Freescale (wspomniany wcześniej i.MX53, i.MX28), jak i nowsze platformy: i.MX6 oraz Vybrid znakomicie sprawdzają się w zastosowaniach wymagających z jednej strony szybkiego rozwoju, prototypowania (agile) z drugiej strony szerokiej gamy obsługiwanych funkcji (na przykład protokołów sieciowych).
Na linuksowej sesji „Designing with Freescale” zaprezentuję Linuksa i inne projekty Open Source, nie tylko od strony prostego uruchamiania platformy, LTIB-a i narzędzi demonstracyjnych, ale przede wszystkim od strony praktycznej – wykorzystania w projektach związanych z przetwarzaniem w czasie rzeczywistym (z gwarantowanym czasem reakcji). Na kilku praktycznych przykładach urządzeń przemysłowych (ważenie komponentów, sterowanie Laserem), przedstawię dobre praktyki projektowania aplikacji Linuksowych sterujących procesem. Zaprezentuję również od strony praktycznej zastosowanie Linuksa w systemach wymagających przetwarzania w czasie rzeczywistym. Pokażę wyniki pomiarów maksymalnych opóźnień i zachowania systemów budowanych w oparciu o jądro Linux, PREEMPT-RT, Xenomai i FIQ, pod różnymi rodzajami obciążeń.
Na przykładzie nowej platformy sprzętowej firmy Freescale – Vybrid, a także mikrokontrolerów Cortex-M, omówię jak w systemie Linux osiągnąć znacznie lepsze czasy reakcji niż wspomniane na początku 70 µs.
To nie wszystko. Zaprezentuję także budowę projektu przy pomocy dostępnych narzędzi OpenSource: U-BOOT, Linux, Buildroot, QT (i wiele innych). Od zera, do kompletnego, działającego systemu opartego o POSIX API. Omówię problemy i ich rozwiązania, oraz podzielę się praktyczną wiedzą zdobytą w wielu projektach, w których brałem udział.

W imieniu firmy Freescale oraz autora warsztatów – zapraszamy!

 

O autorze