Przegląd systemów operacyjnych WYBÓRdla systemów KONSTRUKTORA wbudowanych Przegląd systemów operacyjnych dla systemów wbudowanych

Użytkownicy rozpieszczani kolorowymi wyświetlaczami oraz wych wyposażonych w jednostkę za-

interfejsami dotykowymi telefonów komórkowych stawiają przed rządzania pamięcią MMU oraz dużą, ze- NUMERU TEMAT konstruktorami urządzeń elektronicznych coraz większe wymagania. wnętrzną pamięć operacyjną, zazwyczaj Niegdyś popularne monochromatyczne wyświetlacze znakowe większą niż 4 MB. • Minisystemy operacyjne, przeznaczone odchodzą do lamusa nawet w urządzeniach amatorskich. dla mikrokontrolerów jednoukładowych, Równocześnie czasy prostych interfejsów komunikacyjnych, takich pracujące w pojedynczej przestrzeni ad- jak np. RS232, którego oprogramowanie można było zmieścić resowej i wymagające niewielkiej pamię- w kilkudziesięciu liniach kodu, również odeszły w zapomnienie. ci operacyjnej rzędu pojedynczych kB. Współczesne interfejsy takie jak USB, Ethernet, CAN, Wi-Fi, Systemy z pierwszej grupy, są najczęściej Bluetooth, wymagają skomplikowanych rozwiązań programowych, rozwiązaniami zaawansowanymi, zapewnia- zarówno do obsługi samych rejestrów sprzętowych kontrolera jącymi sterowniki dla wielu układów peryfe- ryjnych, wbudowaną obsługę zaawansowa- interfejsu, jak i dodatkowych warstw abstrakcji. Wszystko to nych protokołów sieciowych, wyświetlaczy powoduje, że przygotowanie we własnym zakresie odpowiedniego graficznych, klawiatur itp. Wspierają one oprogramowania od podstaw dla nieco bardziej zaawansowanych również separację oraz wirtualizację zaso- projektów, za pomocą samego kompilatora, jest zadaniem żmudnym, bów pomiędzy poszczególnymi aplikacjami, podatnym na błędy, a co za tym idzie kosztownym. Rozwiązaniem dzięki czemu nawet w przypadku awarii EMBEDDED OS jest zastosowanie systemu operacyjnego. jednej z aplikacji, pozostała część systemu oraz aplikacja nadal pracują prawidłowo. Typowym przedstawicielem systemu wyma- Tworzenie całego oprogramowania od wydajną jednostkę centralną oraz zasoby gającego mikroprocesora z MMU jest Linux, podstaw ma czasem sens (choć nie zawsze) pamięci. Umożliwiają przy tym uruchamia- którego architekturę programową przedsta- jedynie w dużych firmach dla produkcji nie systemów operacyjnych bez zauważalnej wiono poglądowo na rysunku 1. wielkoseryjnej, gdzie pracochłonny koszt utraty wydajności. Często wykorzystanie Linux składa się z monolitycznego jądra przygotowania wyspecjalizowanego opro- systemów operacyjnych nie wymaga pono- odpowiedzialnego za wirtualizację zasobów, gramowania umożliwia zastosowanie prost- szenia dodatkowych kosztów, ponieważ wie- szeregowanie zadań, komunikację między- szych, a zatem tańszych podzespołów. Dla- le z nich jest dostępnych na wolnych licencji procesową, obsługę protokołów sieciowych. tego w urządzeniach elektronicznych coraz umożliwiającej pobranie i modyfikowanie Jądro zapewnia także jednolity interfejs chętniej stosowane są systemy operacyjne, źródła, przy czym gro z nich to projekty doj- dostępu do urządzeń dodając dodatkową które doskonale upraszczają proces przygo- rzałe, mające certyfikaty lub umożliwiające warstwę abstrakcji uniezależniającą aplika- towania oprogramowania pozwalając sku- wykupienie wsparcia komercyjnego. Istnieją cję od sprzętu, na którym pracuje. Bezpo- pić się na funkcjonalności, dodając kolejną również komercyjne systemy o zamkniętym średni dostęp do sprzętu ma jedynie jądro warstwę abstrakcji pomiędzy programem kodzie źródłowym, których użycie wymaga systemu operacyjnego. Wszystkie aplikacje a sprzętem. Podobnie jak kilkanaście lat poniesienia dodatkowych kosztów zakupu korzystające ze sprzętu muszą odwoływać temu w oprogramowaniu wbudowanym ode- samej licencji. W zależności od sposobu li- się do niego za pośrednictwem jądra. Jądro szliśmy od pisania kodu aplikacji w assem- cencjonowania, może to być opłata jednora- pracuje w trybie uprzywilejowanym, mając blerze (z wyjątkiem nielicznych wstawek) na zowa lub też opłata od każdej sztuki działa- dostęp do całej przestrzeni adresowej oraz rzecz języka C, który nazywany jest „przeno- jącego urządzenia. urządzeń peryferyjnych. Aplikacje działają śnym assemblerem”, tak dzisiaj obserwuje- w przestrzeni użytkownika i mają ograni- my proces odchodzenia od bezpośredniego Architektura czony dostęp do zasobów systemowych pra- programowania rejestrów mikrokontrolera Pod pojęciem systemu operacyjnego cując w wydzielonych, niezależnych prze- na rzecz systemów operacyjnych oraz biblio- dla urządzeń wbudowanych kryje się cała strzeniach adresowych. Dostęp do wywołań tek dodatkowych. Nie bez znaczenia jednym gama systemów, od tych najprostszych, które systemowych jądra odbywa się za pomocą z dodatkowych powodów coraz większej po- możemy uruchomić na mikrokontrolerach biblioteki libc, która zapewnia dodatkową pularności takich rozwiązań jest rewolucja, 8-bitowych, po rozbudowane, znane z kom- funkcjonalność oraz tworzy warstwę abs- która dokonała się w przeciągu ostatnich kil- puterów PC. Ze względu na rodzaj obsługi- trakcji pomiędzy interfejsem jądra a aplika- ku, lat polegająca na odchodzeniu od mikro- wanych układów systemy możemy podzielić cją użytkownika. kontrolerów 8-bitowych w stronę rozwiązań na dwie kategorie: Pomimo niezaprzeczalnych, zalet peł- 32-bitowych (głównie ARM). Współczesne • Systemy operacyjne przeznaczone dla noprawne systemy operacyjne narzucają mikrokontrolery mają wielokrotnie bardziej mikroprocesorów minimum 32-bito- stosunkowo duże wymagania odnośnie do

ELEKTRONIKA PRAKTYCZNA 7/2013 57 WYBÓR KONSTRUKTORA

wzajem oraz do wszystkich zasobów sprzęto- wych. Kod systemu oraz aplikacje linkowane są statycznie do pojedynczego obrazu, który jest następnie wgrywany do pamięci Flash urządzenia. Główną częścią systemu opera- cyjnego jest jądro, które jest bardzo proste i składa się z modułu szeregowania zadań (schedulera) oraz modułu komunikacji mię- dzyprocesowej (IPC). Moduł szeregowania zadań jest odpowiedzialny za przydzielanie czasu procesora poszczególnym aplikacjom, natomiast moduł IPC jest odpowiedzialny za komunikację pomiędzy procesami oraz ją- drem. Aplikacje mają dostęp do wszystkich zasobów, zatem nie jest konieczne odwoły-

TEMAT NUMERU TEMAT wanie się do sprzętu za pośrednictwem ją- dra. W tej architekturze można odwoływać się bezpośrednio do sprzętu za pomocą wpisów do rejestrów sprzętu, tak jak w przy- padku klasycznych aplikacji pozbawionych systemu. Bardzo często minisystemy mają do- datkowe moduły udostępniające warstwę abstrakcji sprzętu HAL czy integrujące np. stos TCP lub USB, niestanowiące w ścisłym sensie jądra systemu, ale dostarczane razem z nim. Dodatkowa warstwa nie jest wymaga- na, ale pozwala na uniezależnienie aplikacji od specyfiki danego rozwiązania sprzętowe- go. Często również minisystemy wyposażane Rysunek 1. Poglądowa architektura systemu Linux embedded są w dodatkowe stosy protokołów np. TCP/ IP, USB, Bluetooth itp., zapewniając odpo- EMBEDDED OS samej jednostki centralnej oraz wymagają nia. Przede wszystkim nie jest wymagana wiednie API. Zazwyczaj istnieje możliwość dodatkowych zasobów, takich jak stosunko- jednostka centralna wyposażona w MMU, wyłączenia poszczególnych modułów na wo duża pamięć operacyjna czy dodatkowa a apetyt na pamięć jest znacznie mniejszy. etapie kompilowania i pozostawienie mini- pamięć stała, w której będą przechowywane Do jego uruchomienia wystarczy nawet 8-bi- malnego zestawu składającego się jedynie pliki oraz aplikacje. Niestety, współczesne towy mikrokontroler wyposażony w pamięci z jądra. Rozpatrując minisystem z punktu mikrokontrolery jednoukładowe nie mają RAM i Flash o wielkości kilkunastu KB. widzenia pełnoprawnego systemu możemy zasobów umożliwiających uruchomienie Podstawową architekturę takiego mi- powiedzieć, że jego jądro stanowi analogię pełnoprawnego systemu. W takich wypad- nisystemu pokazano na rysunku 2. Brak do biblioteki obsługi wątków np. Linuksowe- kach znajdują zastosowanie „minisystemy wymagań odnośnie do MMU, powoduje, że go pthread, a poszczególne aplikacje należy operacyjne” o znacznie uproszczonej budo- wszystkie aplikacje oraz sam system działają rozpatrywać bardziej w kategoriach wątków, wie, oparte o koncepcję mikrojądra. Systemy we wspólnej przestrzeni adresowej. Aplika- niż procesów z uwagi na pracę we wspólnej te mają zdecydowanie mniejsze wymaga- cje oraz jądro mają pełny dostęp do siebie na- przestrzeni adresowej.

Wybór platformy sprzętowej. Mikrokontroler jednoukładowy czy mikroprocesor z MMU? Do niedawna wybór pomiędzy mikro- kontrolerem, a mikroprocesorem z MMU dla średniozaawansowanych projektów był oczywisty. Podstawowym wyborem był mikrokontroler jednoukładowy z uwagi na korzystną cenę lub o wiele prostszy projekt płytki drukowanej. Jedynie w wypadku naj- bardziej zaawansowanych projektów mogli- śmy sobie pozwolić na użycie mikroproceso- ra oraz pełnego systemu operacyjnego. Dziś porównując cenę oraz możliwości współcze- snych układów wybór już nie jest taki oczy- wisty. Układ umożliwiający uruchomienie kompletnego systemu operacyjnego możemy nabyć w cenie detalicznej około 20 złotych. Uzupełniając go o pamięć DRAM oraz nie- Rysunek 2. Uproszczona architektura minisystemu operacyjnego wielką pamięć Flash, łącznie za około 10

58 ELEKTRONIKA PRAKTYCZNA 7/2013 Przegląd systemów operacyjnych dla systemów wbudowanych złotych, otrzymujemy kom- pletny system komputerowy, który będzie tańszy niż np. mikrokontroler jednoukła- dowy STM32F4 mający przy tym znacznie mniejsze moż- liwości. Zastosowanie peł- Licencja noprawnego systemu opera- cyjnego niesie ze sobą szereg zalet od strony programowej, GPL3/Commercial GPL/Commercial Support GPL Proprietary BSD GPL Modified GPLv2 Lab. and Evidence Srl ReTiS others Funkenstein Software Consulting Proprietary Commercial, free for College and Universities GPL nieosiągalnych w wypadku użycia bibliotek dostarcza- nych przez producenta mini- systemu. Najistotniejszą kwe- stią jest dostęp do ogromnej bazy bibliotek oraz progra- mów, które często dostępne Producent są w postaci gotowych roz- wiązań i kodów źródłowych. ? BoFF Freescale Adam Dunklers and Community Community and Develever s.r.l. community GPL linking exception Sleepycat licence (OpenSource) Mentor Graphics Micrium Community Wiele popularnych syste- mów udostępnia sterowniki TCPIP urządzeń, takich jak pamięci + + + + + + + + - + + + USB, moduły Wi-Fi, Ether- net, Bluetooth oraz komplet- USB

ne stosy protokołów niedo- + - + + + + +(beta) - - + + + stępne dla małych systemów. -

Dokonując wyboru musimy tem Filesys zastanowić się czy kosztem + - + + + + + - + + + + większego skomplikowania projektu sprzętowego nie uzyskamy znaczącego obni- HAL

żenia kosztów przygotowania + + - (częściowo) + + + + - + + + + oprogramowania, które dla

projektów nisko- i średniona- C++ + - + + - + - - + + ? + kładowych stanowi znaczący koszt. Dzięki zastosowaniu dużej bazy oprogramowania możemy skupić się na two- Priorytety

rzeniu aplikacji zamiast ko- +/RR +/FIXED + + - (Cooperative scheduler) + + + (multicore) + + + + lejny raz „wynajdować koło” i uruchamiać czy pisać np. RAM/ kod obsługi interfejsu USB. FLASH 2K/2-6K 4K/6K 2K/4K 2K/12K 1K/6K 512k/512k kilka KB 1-4KB few KB 2k/2k few kB/20kB 4M/4M Również bardzo istot- ną kwestią jest dostępność MMU oraz odrębnej pamięci wirtualnej, oddzielającej od siebie poszczególne procesy oraz jądro. Rozwiązanie to ułatwia tworzenie zaawan- sowanego oprogramowania oraz podnosi poziom bezpie- czeństwa gotowego rozwią- zania. Nietrudno wyobrazić Platforma sobie, jakim koszmarem jest szukanie błędów w rozbu- dowanym oprogramowaniu, gdy nie mamy do dyspozycji mechanizmów ochrony pa- mięci, gdzie błąd popełniony I386 ARM7 ARM9 Cortex-M0, M3, M4 PPC e200z AVR8 MSP430 STM8 Coldfire H8S ARM Cortex-M3,M4 AVR AVR32 HCS12 HC8S MSP430 PIC x86 8052 Coldfire V850 ARM7/ Cortex M3,M4 ColdFire PowerPC ARC ARM xSCALE MSP430 AVR STM32 PIC32 6502 ARM, CalmRISC, FR-V, H8, IA32, MC68000 II, MIPS, PowerPC NIOS SPARC, SuperH x86 Cortex-M3, ARM7TDMI, AVR, ARM7, ARM9, Cortex-M, PIC24, PIC32, PPC, ST10, NiosII, S12XS, R2xx ARM, MSP430 AVR, ARM MIPS PPC NiosII MicroBlaze SuperH AT91SAM7 Cortex-M3 Cortex-M4F ARM7TDMI AVR NIOS, Blackfin ARM7TDMI MC68000 ColdFire H8 i960 V850 MIPS MicroBlaze w jednym fragmencie może ujawnić się w zupełnie in- nym. Z tych właśnie powo- dów należy rozważyć czy nie Nazwa wygodniej i rozsądniej będzie użyć bardziej zaawansowa- 1. Najbardziej popularne systemy operacyjne Tabela ChibiOS FreeRTOS ISIX MQX ECOS BeRTOS Erika Enterprise FunkOS NucleusRTOS MicroC/OS-II UCLinux

ELEKTRONIKA PRAKTYCZNA 7/2013 59 WYBÓR KONSTRUKTORA

nego sprzętu i pełnoprawnego systemu, za- z kodami źródłowymi, natomiast licencje jednoukładowych. Jednocześnie jest to je- miast tracić czas na uruchamianie aplikacji komercyjne, wymagające uiszczania dodat- den z najstarszych projektów open source dla mikrokontrolera. kowych opłat, stanowią nieliczne wyjątki. i pewnie jest znany większości czytelników. Należy również zastanowić się nad tym czy Projekt jest dostępny dla 31 typów mikro- Przegląd popularnych mini zawsze będziemy potrzebowali wszystkich kontrolerów, zawiera wiele gotowych przy- systemów operacyjnych dodatkowych bibliotek dostarczanych z sys- kładów oraz obszerną dokumentację. Ob- Na rynku istnieje wiele różnych sys- temem. Często lepszym wyborem będzie sługiwanych jest również wiele rodzajów temów operacyjnych przeznaczonych dla wykorzystanie jedynie jądra systemu oraz kompilatorów (w tym GCC). Istnieje moż- mikrokontrolerów, przy czym w przeciwień- użycie oddzielnych bibliotek dostarczanych liwość wykupienia wsparcia technicznego, stwie do systemów wymagających MMU, przez producenta mikrokontrolera. Podobnie a ponadto możliwość nabycia komercyjnej istnieje duża różnorodność. Aby nie zagu- jest ze stosem TCPIP, gdzie np. popularny odmiany systemu o nazwie SafeRTOS prze- bić się w tym gąszczu opiszemy najbardziej stos LWIP daje się bardzo łatwo przenieść znaczonej dla aplikacji krytycznych pod popularne systemy, które możemy brać pod na dowolny system operacyjny i platformę względem bezpieczeństwa. Wersja komer- uwagę chcąc zastosować je we własnych pro- niewielkim nakładem pracy. Dzięki moduło- cyjna ma certyfikaty zgodności z norma- jektach. Duża część z nich jest dostępna na wemu podejściu uzyskujemy dużo większą mi IEC61508, EN32304, FDA510k. Projekt

TEMAT NUMERU TEMAT zasadach otwartych licencji, więc dostępne swobodę, jeśli chodzi o dobór oprogramo- został w całości napisany w języku C, aby będą do nich kody źródłowe oraz będziemy wania. oprogramowanie zajmowało niewiele miej- mogli ich użyć bez ponoszenia dodatkowych Skupimy się teraz na bardzo krótkim sca oraz było przenośne. Jądro systemu opłat. Jeśli istnieje konieczność wsparcia omówieniu charakterystyki najbardziej popu- zapewnia wielozadaniowość z wywłasz- technicznego, wiele projektów umożliwia larnych systemów oraz ich charakterystyce. czeniem oraz podstawowe mechanizmy wykupienie komercyjnego wsparcia. Dodat- komunikacji międzyprocesowej, takiej jak: kową zaletą przemawiającą za użyciem sys- ChibiOS/RT mutexy, kolejki oraz semafory. Dodatkową temu o otwartej licencji jest ogromna rzesza (http://www.chibios.org) cechą wyróżniającą system jest możliwość użytkowników, co pozwala lepiej je przete- System operacyjny ChibiOS/RT jest pracy w trybie tick-less, czyli bez przerwa- stować lub poszukać wsparcia społeczności, stosunkowo nowym, dostępnym na licen- nia zegarowego systemu. Ten tryb jest prze- jeśli będziemy poszukiwali rozwiązania na- cji GPL. Projekt początkowo powstał jako znaczony do obsługi urządzeń krytycznych potkanego problemu. hobbystyczny, jednak stopniowo zaczął się ze względu na pobór mocy. Istotną cechą Czasem systemy operacyjne tworzone są rozrastać się i obecnie jest rozwijany przez jest również możliwość pracy systemu na przez producenta mikrokontrolera i udostęp- społeczność. Ma przy tym możliwość wy- komputerze PC bezpośrednio na platformie niane za darmo celem stosowania z jego pro- kupienia wsparcia komercyjnego. Cechą Win32 lub POSIX, co umożliwia tworzenie duktami. Użycie takiego systemu powoduje charakterystyczną istotnie wyróżniającą go oprogramowania bezpośrednio na kompute- jednak, że zostaniemy przywiązani na stałe spośród innych systemów jest jego statycz- rze PC doskonale ułatwiając w ten sposób EMBEDDED OS do jednej firmy, co może być ryzykownym na architektura, umożliwiająca tworzenie pracę. posunięciem. wszystkich obiektów systemu statycznie Należy zaznaczyć, że wszystkie opisane w trakcie kompilacji, bez konieczności wy- ISIX minisystemy spełniają kryteria czasu rze- korzystania funkcji alokacji pamięci. Rów- (http://bryndza.boff.pl/index. czywistego, co nie jest regułą w wypadku nież istotną cecha jest elastyczna konfigu- php?dz=rozne&id=isixrtos) dużych systemów. Istotną kwestią jest rów- racja, co umożliwia uzyskanie minimalnej ISIX jest system mojego autorstwa. nież wsparcie dla języka C++, którym może funkcjonalności jądra już przy zajętości Z założenia został zoptymalizowany dla pochwalić się niewiele z nich. W tabeli 1 pamięci Flash rzędu 1,2 kB na platformie platform 32-bitowych, kompilatora GCC, przestawiono listę najbardziej popularnych Cortex-M3. Jądro systemu zapewnia wielo- pełnego wsparcia dla języka C++ oraz dla systemów. zadaniowość z wywłaszczeniem 128 prio- uzyskania minimalnej zajętości zasobów. Większość z umieszczonych w tab. 1 sys- rytetów wątków, karuzelowe przełączanie Obecnie system może działać na architek- temów możemy uruchomić wykorzystując zadań o takich samych priorytetach. Z me- turze Cortex-M3 oraz Cortex-M4 , również jedynie wewnętrzne zasoby pamięciowe mi- chanizmów komunikacji międzyprocesowej w wersji z jednostką zmiennoprzecinkową. krokontrolera jednoukładowego. Jedynymi dostępne są: mutexy, zmienne warunkowe, Jeśli istnieje potrzeba użycia systemu na in- wyjątkami są tutaj rozbudowane systemy, ta- semafory, zdarzenia, kolejki. Poza samym nej architekturze, to w łatwy sposób może kie jak ECOS oraz uCLinux, które wymagają jądrem systemu, w późniejszym czasie do- być on dostosowany dla innych platform. przynajmniej kilku MB pamięci zewnętrznej. dano warstwę abstrakcji sprzętu HAL umoż- Jądro systemu zapewnia wielozadaniowość Oprócz samego mikrojądra zazwyczaj udo- liwiającą tworzenie aplikacji niezależnie od z wywłaszczaniem, możliwość obsługi wielu stępniane są dodatkowe zestawy bibliotek, platformy. Jako komponenty opcjonalne do priorytetów oraz szeregowanie zadań o ta- takich jak: warstwa abstrakcji sprzętu HAL, wyboru są dostępne dwa stosy TCP/IP: po- kim samym priorytecie z użyciem algorytmu stosy TCP/IP czy USB, obsługa systemów pularny uIP oraz bardziej rozbudowanty round-robin. Liczbę elementów komunikacji plików np. FAT itp. Generalnie większość LWIP. Dostępna jest również obsługa syste- międzyprocesowej ograniczono do niezbęd- z tych systemów jest bardzo do siebie po- mu plików FAT z wykorzystaniem biblioteki nego minimum: do dyspozycji mamy sema- dobna, więc dokonując wyboru będziemy FATFS. System zawiera zestaw najbardziej fory, oraz kolejki. musieli kierować się przede wszystkim do- popularnych i potrzebnych bibliotek przy- Biblioteki zawierają również pełne stępnością systemu dla danej platformy oraz danych podczas tworzenia własnych apli- wsparcie dla języka C++, włącznie z ob- obecnością dodatkowych bibliotek dla dane- kacji. sługą wyjątków oraz same funkcje systemu go mikrokontrolera, np. obsługi USB. Przy dostarczające interfejs C++ wraz z obsłu- zastosowaniach komercyjnych istotne jest FreeRTOS gą przestrzeni nazw. Dzięki użyciu tylko również licencjonowanie oraz ewentualnie (http://www.freertos.org/) niezbędnych elementów system zajmuje dostępność odpłatnego wsparcia. Konkuren- System operacyjny FreeRTOS jest jedynie kilka kB pamięci Flash i jest łatwy cja na tym polu jest jednak tak duża, że więk- jednym z najbardziej popularnych syste- w użyciu. Dodatkowo, oprócz samego syste- szość z nich jest dostępna nieodpłatnie wraz mów dostępnych dla mikrokontrolerów mu, jest dostarczana biblioteka libfoundation

60 ELEKTRONIKA PRAKTYCZNA 7/2013 Przegląd systemów operacyjnych dla systemów wbudowanych zawierająca generyczne algorytmy, nieza- system makr dając użytkownikowi wrażenie, DataFlash. Jest wyposażony również w stos leżne od platformy oraz biblioteka libstm32 że ma do czynienia z odrębnym procesem, TCP/IP oraz obsługę dodatkowych protoko- będąca odpowiednikiem STM32 standard a tak naprawdę jest to ukryta maszyna sta- łów, niespotykaną w innych systemach. Są perhipheral library. Formalnie wspomniane nów, oparta o system zdarzeń. Wątek – za- to na przykład PocketBus czy AX25. Z syste- biblioteki są zupełnie niezależne od systemu danie jest pozbawiony stosu lokalnego zmu- mem jest dostarczana także biblioteka umoż- i mogą być używane oddzielnie. Dodatkowo, szając programistę do używania zmiennych liwiająca tworzenie prostych interfejsów dla systemu dostępny jest stos TCP/IP LWIP, globalnych. Należy tutaj podkreślić, że ten graficznych. System jest dostępny na licen- a dla mikrokontrolerów STM32 STOS USB system nie jest systemem czasu rzeczywiste- cji GPL z możliwością linkowania własnych od ST wpierający tryby Host i Device. Zaim- go. Jego cechą charakterystyczną jest wspar- aplikacji bez konieczności publikowania ich plementowano również bibliotekę obsługi cie zarówno dla protokołu IPv4, jak i jego kodu źródłowego. systemu plików FAT32 bazująca na FATFS następcy IPv6. oraz warstwę abstrakcji dla kart SD wspie- Erika Enterprise rająca karty SDHC. System jest dostępny ECOS (http://erika.tuxfamily.org/drupal/) na licencji GPL z możliwością linkowania (http://ecos.sourceware.org/) Erika Enterprise jest kolejnym syste- z własnymi aplikacjami bez konieczności System operacyjny ECOS jest przezna- mem open source, który w 2012 roku otrzy- publikowania kodu źródłowego. czony dla nieco bardziej rozbudowanych mał certyfikat OSEK/VDK. Podobnie jak urządzeń wyposażonych w przynajmniej i w innych systemach, mikrojądro zapew- MQX kilkaset kilobajtów pamięci operacyjnej, na nia wielozadaniowość z wywłaszczaniem (http://www.freescale. których nie jest możliwe uruchomienie peł- obsługę podstawowych mechanizmów com/webapp/sps/site/ nych systemów na przykład Linuksa. Jądro IPC. Ma przy tym budowę modułową. homepage.jsp?code=MQX_ systemu zapewnia mechanizm przełączania W wersji minimalnej funkcjonalny kernel HOME&tid=vanMQX) zadań z wywłaszczaniem oraz zaawanso- „zadowala się” pamięcią Flash rzędu 2 kB. System operacyjny MQX jest przezna- wane mechanizmy komunikacji między- Jego wyróżniającą cechą jest wsparcie dla czony dla mikrokontrolerów produkowa- procesowej. Dodatkowo, istotną cechą jest architektury wielordzeniowej, które za- nych przez firmę Freescale i dostępny jest warstwa kompatybilności ze standardem zwyczaj nie jest spotykane w tej klasie sys- na licencji komercyjnej. Podobnie jak inne POSIX, co umożliwia łatwe przenoszenie temów. Dla systemu, oprócz wsparcia spo- systemy oparte o architekturę mikrojądra, aplikacji przeznaczonych dla systemów: łeczności, jest dostępne odpłatne wsparcie zapewnia algorytm szeregowania oparty Unix, Linux, BSD. System dodatkowo ma komercyjne. o wielozadaniowość z wywłaszczeniem zintegrowany stos TCP/IP pochodzący oraz obsługą priorytetów. Zapewnia też z FreeBSD. Niestety, ten stos nie jest na FunkOS podstawowe mechanizmy komunikacji bieżąco aktualizowany i synchronizowany (http://funkos.sourceforge.net/) międzyprocesowej, takie jak: wątki, sema- z kodem stosu FreeBSD, a ostatnia synchro- System operacyjny FunkOS jest do- fory, kolejki komunikatów. Istotną zaletą nizacja miała miejsce w 2001 roku, przez co stępny dla popularnych platform mikro- dla użytkowników produktów tej firmy jest system ma stare luki bezpieczeństwa oraz kontrolerowych, takich jak ARM, AVR, pełna integracja ze wszystkimi bibliotekami „exploity”, za co jest krytykowany. Obecnie MSP430. Jądro systemu zapewnia obsługę obsługi sprzętu przez co przygotowanie sys- stracił mocno na znaczeniu z uwagi na to, wielozadaniowości z wywłaszczaniem, temu do użycia jest bardzo łatwe. Dostępne że mikroprocesory z MMU oraz pamięci ze- z możliwością obsługi 255 priorytetów za- są również zaawansowane biblioteki, takie wnętrzne bardzo potaniały. Ponadto układ dań oraz podstawowymi mechanizmami jak: stos TCP/IP, obsługa systemu plików z zewnętrzną pamięcią oraz zewnętrznymi komunikacji IPC. Ponadto, jest dostępna FAT oraz obsługa USB w trybach Host jak magistralami traci wszystkie zalety pro- warstwa abstrakcji sprzętu HAL, obsługa i Device. Cechą charakterystyczną jest rów- jektów opartych o mikrokontrolery jedno- systemu plików FAT16/32 oraz biblioteka nież możliwość minimalistycznej konfigu- układowe. Rozwój systemu znacząco zwol- do budowy interfejsów graficznych. Jego racji zapewniającej podstawową funkcjo- nił i ostatnia wersja stabilna 3.0 pochodzi interesującą cechą jest to, że dla języka nalność systemu już przy zajętości pamięci z roku 2009. C++ istnieje zupełnie odrębne jądro na- Flash rzędu 6 kB. pisane w C++. System ma pełne wsparcie BeRTOS dla C++. Dostępny jest na licencji open Contiki (http://www.bertos.org/) source – Sleepycat. (http://www.contiki-os.org) BeRTOS jest kolejnym systemem modu- Contiki jest specjalistycznym systemem larnym, opartym o architekturę mikrojądra Nucleus RTOS przeznaczonym dla aplikacji sieciowych, z obsługą wielozadaniowości z wywłaszcza- (http://www.mentor.com/ którego celem jest możliwość uruchomienia niem oraz podstawowymi mechanizmami embedded-software/nucleus/) obsługi sieci na 8-bitowych urządzeniach IPC, takimi jak: semafory, sygnały, kolejki NucleusRTOS jest systemem o zamknię- o niewielkich zasobach sprzętowych, z na- komunikatów. Został on napisany w języku tej licencji, utworzonym przez oddział syste- ciskiem na optymalizację poboru energii. C i przeniesiony na najbardziej popularne mów wbudowanych firmy Mentor Graphics. Jego głównym przeznaczeniem, są systemy układy rodziny ARM7TDMI, Cortex-M oraz Producent chwali się, że jego system pracuje czujników sieciowych. Umożliwia on uru- AVR. Jego cechą charakterystyczną jest bu- w ponad 3 milionach urządzeń. Jest w peł- chomienie aplikacji sieciowych już przy dowa modularna oraz rozbudowana warstwa ni skalowany, a jego podstawową funkcjo- zajętości pamięci Flash rzędu pojedynczych abstrakcji sprzętu HAL zawierająca ogromną nalność możemy uzyskać już przy zajętości kB, przy poborze energii rzędu miliwatów. bazę sterowników urządzeń niespotykanych 13 kB pamięci Flash. System zawiera szereg System operacyjny Contiki ma odmien- w innych systemach. Dodatkowo, oprócz bibliotek ułatwiających pracę programistom, ną budowę od pozostałych. Szeregowanie warstwy abstrakcji sprzętu do dyspozycji takich jak: obsługa interfejsów I2C, SPI, zadań realizowaną jest w trybie wielozada- mamy bibliotekę obsługi systemu plików USB2.0/USB3.0. Zawiera również zintegro- niowości kooperatywnej, bez wywłaszczania FAT, obsługę autorskiego systemu plików wany stos TCP/IP. Ciekawą funkcjonalnością i jest oparte o koncepcję nazwaną protothre- BattFS, który jest przeznaczony dla małych jest dostarczane przez producenta środowi- ad. Koncepcja ta opiera się o specjalistyczny nośników, takich jak pamięci EEPROM lub sko IDE oparte o Eclipse.

ELEKTRONIKA PRAKTYCZNA 7/2013 61 WYBÓR KONSTRUKTORA

MicroC/OS-II System w większości został napisany w języ- mem, a jedynie samym jądrem. Jako osobne (http://micrium.com/rtos/) ku C, a w pełni funkcjonalny kernel zajmuje projekty rozwijane są biblioteki towarzy- MicroC/OS-II jest systemem komercyj- około 20 kB pamięci Flash. szące np. ucLibc oraz dystrybucja formal- nym stworzonym przez firmę Micrium. Pro- nie stanowiąca system, która nosi nazwę ducent chwali się, że jego system jest wyko- uCLinux ucLinux-dist. System do uruchomienia rzystywany przez NASA do obsługi pojazdu (http://www.uclinux.org/) wymaga dostępnych kilku MB pamięci Curiosity. Oparty na architekturze mikroją- uCLinux jest osobnym forkiem jądra RAM oraz Flash na system plików, a więc dra zapewnia wielozadaniowość z wywłasz- systemu Linux dla mikrokontrolerów nie- nie jest możliwe jego uruchomienie na czaniem, obsługę dowolnej liczby wątków mających jednostki zarządzania pamięcią mikrokontrolerach jednoukładowych bez (limitowaną wielkością dostępnej pamięci) MMU. Jest to w pełni funkcjonalny kernel dołączenia zewnętrznych pamięci. Obec- oraz wsparcie dla mikrokontrolerów posiada- z dodaną emulacją jednostki zarządzania nie stracił mocno na znaczeniu z uwagi na jących jednostkę ochrony pamięci MPU (nie pamięcią MMU. Niemniej jednak, z uwagi powszechną dostępność tanich mikropro- mylić z MMU). System ma biblioteki TCP/IP, na brak pamięci wirtualnej, wszystkie apli- cesorów wyposażonych w jednostkę MMU, obsługę systemu plików FAT oraz SAFE oraz kacje uruchamiane są w ramach wspólnej w związku z czym uruchamianie jądra stos USB dla trybów Host i Device. Dostępne przestrzeni adresowej razem z kernelem, Linuksa na mikrokontrolerach bez MMU

TEMAT NUMERU TEMAT są również biblioteki dla obsługi CAN oraz przez co nie jest zapewniona pełna ochro- straciło rację bytu. Modbus. Tworzenie aplikacji ułatwia zinte- na pamięci, jak w wypadku tradycyjnego Lucjan Bryndza, EP growane środowisko IDE oparte o Eclipse. jądra. uCLinux nie jest kompletnym syste- [email protected]

REKLAMA EMBEDDED OS

62 ELEKTRONIKA PRAKTYCZNA 7/2013