Przegląd systemów operacyjnych WYBÓR dla systemów KONSTRUKTORA
|
|
- Piotr Kowalik
- 8 lat temu
- Przeglądów:
Transkrypt
1 Przegląd systemów operacyjnych WYBÓR dla systemów KONSTRUKTORA wbudowanych Przegląd systemów operacyjnych dla systemów wbudowanych Użytkownicy rozpieszczani kolorowymi wyświetlaczami oraz interfejsami dotykowymi telefonów komórkowych stawiają przed konstruktorami urządzeń elektronicznych coraz większe wymagania. Niegdyś popularne monochromatyczne wyświetlacze znakowe odchodzą do lamusa nawet w urządzeniach amatorskich. Równocześnie czasy prostych interfejsów komunikacyjnych, takich jak np. RS232, którego oprogramowanie można było zmieścić w kilkudziesięciu liniach kodu, również odeszły w zapomnienie. Współczesne interfejsy takie jak USB, Ethernet, CAN, Wi-Fi, Bluetooth, wymagają skomplikowanych rozwiązań programowych, zarówno do obsługi samych rejestrów sprzętowych kontrolera interfejsu, jak i dodatkowych warstw abstrakcji. Wszystko to powoduje, że przygotowanie we własnym zakresie odpowiedniego oprogramowania od podstaw dla nieco bardziej zaawansowanych projektów, za pomocą samego kompilatora, jest zadaniem żmudnym, podatnym na błędy, a co za tym idzie kosztownym. Rozwiązaniem jest zastosowanie systemu operacyjnego. Tworzenie całego oprogramowania od podstaw ma czasem sens (choć nie zawsze) jedynie w dużych firmach dla produkcji wielkoseryjnej, gdzie pracochłonny koszt przygotowania wyspecjalizowanego oprogramowania umożliwia zastosowanie prostszych, a zatem tańszych podzespołów. Dlatego w urządzeniach elektronicznych coraz chętniej stosowane są systemy operacyjne, które doskonale upraszczają proces przygotowania oprogramowania pozwalając skupić się na funkcjonalności, dodając kolejną warstwę abstrakcji pomiędzy programem a sprzętem. Podobnie jak kilkanaście lat temu w oprogramowaniu wbudowanym odeszliśmy od pisania kodu aplikacji w assemblerze (z wyjątkiem nielicznych wstawek) na rzecz języka C, który nazywany jest przenośnym assemblerem, tak dzisiaj obserwujemy proces odchodzenia od bezpośredniego programowania rejestrów mikrokontrolera na rzecz systemów operacyjnych oraz bibliotek dodatkowych. Nie bez znaczenia jednym z dodatkowych powodów coraz większej popularności takich rozwiązań jest rewolucja, która dokonała się w przeciągu ostatnich kilku, lat polegająca na odchodzeniu od mikrokontrolerów 8-bitowych w stronę rozwiązań 32-bitowych (głównie ARM). Współczesne mikrokontrolery mają wielokrotnie bardziej wydajną jednostkę centralną oraz zasoby pamięci. Umożliwiają przy tym uruchamianie systemów operacyjnych bez zauważalnej utraty wydajności. Często wykorzystanie systemów operacyjnych nie wymaga ponoszenia dodatkowych kosztów, ponieważ wiele z nich jest dostępnych na wolnych licencji umożliwiającej pobranie i modyfikowanie źródła, przy czym gro z nich to projekty dojrzałe, mające certyfikaty lub umożliwiające wykupienie wsparcia komercyjnego. Istnieją również komercyjne systemy o zamkniętym kodzie źródłowym, których użycie wymaga poniesienia dodatkowych kosztów zakupu samej licencji. W zależności od sposobu licencjonowania, może to być opłata jednorazowa lub też opłata od każdej sztuki działającego urządzenia. Architektura Pod pojęciem systemu operacyjnego dla urządzeń wbudowanych kryje się cała gama systemów, od tych najprostszych, które możemy uruchomić na mikrokontrolerach 8-bitowych, po rozbudowane, znane z komputerów PC. Ze względu na rodzaj obsługiwanych układów systemy możemy podzielić na dwie kategorie: Systemy operacyjne przeznaczone dla mikroprocesorów minimum 32-bito- wych wyposażonych w jednostkę zarządzania pamięcią MMU oraz dużą, zewnętrzną pamięć operacyjną, zazwyczaj większą niż 4 MB. Minisystemy operacyjne, przeznaczone dla mikrokontrolerów jednoukładowych, pracujące w pojedynczej przestrzeni adresowej i wymagające niewielkiej pamięci operacyjnej rzędu pojedynczych kb. Systemy z pierwszej grupy, są najczęściej rozwiązaniami zaawansowanymi, zapewniającymi sterowniki dla wielu układów peryferyjnych, wbudowaną obsługę zaawansowanych protokołów sieciowych, wyświetlaczy graficznych, klawiatur itp. Wspierają one również separację oraz wirtualizację zasobów pomiędzy poszczególnymi aplikacjami, dzięki czemu nawet w przypadku awarii jednej z aplikacji, pozostała część systemu oraz aplikacja nadal pracują prawidłowo. Typowym przedstawicielem systemu wymagającego mikroprocesora z MMU jest Linux, którego architekturę programową przedstawiono poglądowo na rysunku 1. Linux składa się z monolitycznego jądra odpowiedzialnego za wirtualizację zasobów, szeregowanie zadań, komunikację międzyprocesową, obsługę protokołów sieciowych. Jądro zapewnia także jednolity interfejs dostępu do urządzeń dodając dodatkową warstwę abstrakcji uniezależniającą aplikację od sprzętu, na którym pracuje. Bezpośredni dostęp do sprzętu ma jedynie jądro systemu operacyjnego. Wszystkie aplikacje korzystające ze sprzętu muszą odwoływać się do niego za pośrednictwem jądra. Jądro pracuje w trybie uprzywilejowanym, mając dostęp do całej przestrzeni adresowej oraz urządzeń peryferyjnych. Aplikacje działają w przestrzeni użytkownika i mają ograniczony dostęp do zasobów systemowych pracując w wydzielonych, niezależnych przestrzeniach adresowych. Dostęp do wywołań systemowych jądra odbywa się za pomocą biblioteki libc, która zapewnia dodatkową funkcjonalność oraz tworzy warstwę abstrakcji pomiędzy interfejsem jądra a aplikacją użytkownika. Pomimo niezaprzeczalnych, zalet pełnoprawne systemy operacyjne narzucają stosunkowo duże wymagania odnośnie do TEMAT NUMERU EMBEDDED OS 57
2 TEMAT NUMERU EMBEDDED OS WYBÓR KONSTRUKTORA Rysunek 1. Poglądowa architektura systemu Linux embedded nia. Przede wszystkim nie jest wymagana jednostka centralna wyposażona w MMU, a apetyt na pamięć jest znacznie mniejszy. Do jego uruchomienia wystarczy nawet 8-bitowy mikrokontroler wyposażony w pamięci RAM i Flash o wielkości kilkunastu KB. Podstawową architekturę takiego minisystemu pokazano na rysunku 2. Brak wymagań odnośnie do MMU, powoduje, że wszystkie aplikacje oraz sam system działają we wspólnej przestrzeni adresowej. Aplikacje oraz jądro mają pełny dostęp do siebie nasamej jednostki centralnej oraz wymagają dodatkowych zasobów, takich jak stosunkowo duża pamięć operacyjna czy dodatkowa pamięć stała, w której będą przechowywane pliki oraz aplikacje. Niestety, współczesne mikrokontrolery jednoukładowe nie mają zasobów umożliwiających uruchomienie pełnoprawnego systemu. W takich wypadkach znajdują zastosowanie minisystemy operacyjne o znacznie uproszczonej budowie, oparte o koncepcję mikrojądra. Systemy te mają zdecydowanie mniejsze wymaga- Rysunek 2. Uproszczona architektura minisystemu operacyjnego wzajem oraz do wszystkich zasobów sprzętowych. 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 operacyjnego 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ływanie 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 przypadku klasycznych aplikacji pozbawionych systemu. Bardzo często minisystemy mają dodatkowe 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 wymagana, ale pozwala na uniezależnienie aplikacji od specyfiki danego rozwiązania sprzętowego. Często również minisystemy wyposażane są w dodatkowe stosy protokołów np. TCP/ IP, USB, Bluetooth itp., zapewniając odpowiednie API. Zazwyczaj istnieje możliwość wyłączenia poszczególnych modułów na etapie kompilowania i pozostawienie minimalnego zestawu składającego się jedynie z jądra. Rozpatrując minisystem z punktu widzenia pełnoprawnego systemu możemy powiedzieć, że jego jądro stanowi analogię do biblioteki obsługi wątków np. Linuksowego pthread, a poszczególne aplikacje należy rozpatrywać bardziej w kategoriach wątków, niż procesów z uwagi na pracę we wspólnej przestrzeni adresowej. Wybór platformy sprzętowej. Mikrokontroler jednoukładowy czy mikroprocesor z MMU? Do niedawna wybór pomiędzy mikrokontrolerem, 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 najbardziej zaawansowanych projektów mogliśmy sobie pozwolić na użycie mikroprocesora oraz pełnego systemu operacyjnego. Dziś porównując cenę oraz możliwości współczesnych układów wybór już nie jest taki oczywisty. 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 niewielką pamięć Flash, łącznie za około 10 58
3 Przegląd systemów operacyjnych dla systemów wbudowanych złotych, otrzymujemy kompletny system komputerowy, który będzie tańszy niż np. mikrokontroler jednoukładowy STM32F4 mający przy tym znacznie mniejsze możliwości. Zastosowanie pełnoprawnego systemu operacyjnego niesie ze sobą szereg zalet od strony programowej, nieosiągalnych w wypadku użycia bibliotek dostarczanych przez producenta minisystemu. Najistotniejszą kwestią jest dostęp do ogromnej bazy bibliotek oraz programów, które często dostępne są w postaci gotowych rozwiązań i kodów źródłowych. Wiele popularnych systemów udostępnia sterowniki urządzeń, takich jak pamięci USB, moduły Wi-Fi, Ethernet, Bluetooth oraz kompletne stosy protokołów niedostępne dla małych systemów. Dokonując wyboru musimy zastanowić się czy kosztem większego skomplikowania projektu sprzętowego nie uzyskamy znaczącego obniżenia kosztów przygotowania oprogramowania, które dla projektów nisko- i średnionakładowych stanowi znaczący koszt. Dzięki zastosowaniu dużej bazy oprogramowania możemy skupić się na tworzeniu aplikacji zamiast kolejny raz wynajdować koło i uruchamiać czy pisać np. kod obsługi interfejsu USB. Również bardzo istotną 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 zaawansowanego oprogramowania oraz podnosi poziom bezpieczeństwa gotowego rozwiązania. Nietrudno wyobrazić sobie, jakim koszmarem jest szukanie błędów w rozbudowanym oprogramowaniu, gdy nie mamy do dyspozycji mechanizmów ochrony pamięci, gdzie błąd popełniony w jednym fragmencie może ujawnić się w zupełnie innym. Z tych właśnie powodów należy rozważyć czy nie wygodniej i rozsądniej będzie użyć bardziej zaawansowa- Tabela 1. Najbardziej popularne systemy operacyjne USB TCPIP Producent Licencja Filesystem Priorytety C++ HAL RAM/ FLASH Nazwa Platforma 2K/2-6K +/RR ? GPL3/Commercial ChibiOS I386 ARM7 ARM9 Cortex-M0, M3, M4 PPC e200z AVR8 MSP430 STM8 Coldfire H8S FreeRTOS 4K/6K +/FIXED GPL/Commercial Support ARM Cortex-M3,M4 AVR AVR32 HCS12 MSP430 PIC HC8S x Coldfire V850 ISIX ARM7/ Cortex M3,M4 2K/4K (częściowo) BoFF GPL MQX ColdFire PowerPC ARC ARM xscale 2K/12K Freescale Proprietary BSD Adam Dunklers and Community (Cooperative scheduler) MSP430 AVR STM32 PIC K/6K Contiki 512k/512k Community GPL ECOS ARM, CalmRISC, FR-V, H8, IA32, MC68000 MIPS, NIOS II, PowerPC SPARC, SuperH BeRTOS Modified GPLv2 Develever s.r.l. and community Cortex-M3, ARM7TDMI, AVR, x86 kilka KB (beta) + Evidence Srl ReTiS Lab. and others 1-4KB + (multicore) GPL linking exception Erika Enterprise ARM7, ARM9, Cortex-M, PIC24, PIC32, ST10, S12XS, PPC, NiosII, R2xx AVR, ARM, MSP430 few KB Sleepycat licence (OpenSource) Funkenstein Software Consulting FunkOS ARM MIPS PPC NiosII MicroBlaze SuperH AT91SAM7 2k/2k Mentor Graphics Proprietary NucleusRTOS Commercial, free for College and Universities MicroC/OS-II +? Micrium few kb/20kb Cortex-M3 Cortex-M4F ARM7TDMI AVR UCLinux 4M/4M Community GPL NIOS, Blackfin ARM7TDMI MC68000 H8 i960 MIPS ColdFire V850 MicroBlaze 59
4 TEMAT NUMERU EMBEDDED OS WYBÓR KONSTRUKTORA nego sprzętu i pełnoprawnego systemu, zamiast tracić czas na uruchamianie aplikacji dla mikrokontrolera. Przegląd popularnych mini systemów operacyjnych Na rynku istnieje wiele różnych systemów operacyjnych przeznaczonych dla mikrokontrolerów, przy czym w przeciwieństwie do systemów wymagających MMU, istnieje duża różnorodność. Aby nie zagubić się w tym gąszczu opiszemy najbardziej popularne systemy, które możemy brać pod uwagę chcąc zastosować je we własnych projektach. Duża część z nich jest dostępna na zasadach otwartych licencji, więc dostępne będą do nich kody źródłowe oraz będziemy mogli ich użyć bez ponoszenia dodatkowych opłat. Jeśli istnieje konieczność wsparcia technicznego, wiele projektów umożliwia wykupienie komercyjnego wsparcia. Dodatkową zaletą przemawiającą za użyciem systemu o otwartej licencji jest ogromna rzesza użytkowników, co pozwala lepiej je przetestować lub poszukać wsparcia społeczności, jeśli będziemy poszukiwali rozwiązania napotkanego problemu. Czasem systemy operacyjne tworzone są przez producenta mikrokontrolera i udostępniane za darmo celem stosowania z jego produktami. Użycie takiego systemu powoduje jednak, że zostaniemy przywiązani na stałe do jednej firmy, co może być ryzykownym posunięciem. Należy zaznaczyć, że wszystkie opisane minisystemy spełniają kryteria czasu rzeczywistego, co nie jest regułą w wypadku dużych systemów. Istotną kwestią jest również wsparcie dla języka C++, którym może pochwalić się niewiele z nich. W tabeli 1 przestawiono listę najbardziej popularnych systemów. Większość z umieszczonych w tab. 1 systemów możemy uruchomić wykorzystując jedynie wewnętrzne zasoby pamięciowe mikrokontrolera jednoukładowego. Jedynymi wyjątkami są tutaj rozbudowane systemy, takie jak ECOS oraz uclinux, które wymagają przynajmniej kilku MB pamięci zewnętrznej. Oprócz samego mikrojądra zazwyczaj udostępniane są dodatkowe zestawy bibliotek, takich jak: warstwa abstrakcji sprzętu HAL, stosy TCP/IP czy USB, obsługa systemów plików np. FAT itp. Generalnie większość z tych systemów jest bardzo do siebie podobna, więc dokonując wyboru będziemy musieli kierować się przede wszystkim dostępnością systemu dla danej platformy oraz obecnością dodatkowych bibliotek dla danego mikrokontrolera, np. obsługi USB. Przy zastosowaniach komercyjnych istotne jest również licencjonowanie oraz ewentualnie dostępność odpłatnego wsparcia. Konkurencja na tym polu jest jednak tak duża, że większość z nich jest dostępna nieodpłatnie wraz z kodami źródłowymi, natomiast licencje komercyjne, wymagające uiszczania dodatkowych opłat, stanowią nieliczne wyjątki. Należy również zastanowić się nad tym czy zawsze będziemy potrzebowali wszystkich dodatkowych bibliotek dostarczanych z systemem. Często lepszym wyborem będzie wykorzystanie jedynie jądra systemu oraz użycie oddzielnych bibliotek dostarczanych przez producenta mikrokontrolera. Podobnie jest ze stosem TCPIP, gdzie np. popularny stos LWIP daje się bardzo łatwo przenieść na dowolny system operacyjny i platformę niewielkim nakładem pracy. Dzięki modułowemu podejściu uzyskujemy dużo większą swobodę, jeśli chodzi o dobór oprogramowania. Skupimy się teraz na bardzo krótkim omówieniu charakterystyki najbardziej popularnych systemów oraz ich charakterystyce. ChibiOS/RT ( System operacyjny ChibiOS/RT jest stosunkowo nowym, dostępnym na licencji GPL. Projekt początkowo powstał jako hobbystyczny, jednak stopniowo zaczął się rozrastać się i obecnie jest rozwijany przez społeczność. Ma przy tym możliwość wykupienia wsparcia komercyjnego. Cechą charakterystyczną istotnie wyróżniającą go spośród innych systemów jest jego statyczna architektura, umożliwiająca tworzenie wszystkich obiektów systemu statycznie w trakcie kompilacji, bez konieczności wykorzystania funkcji alokacji pamięci. Również istotną cecha jest elastyczna konfiguracja, co umożliwia uzyskanie minimalnej funkcjonalności jądra już przy zajętości pamięci Flash rzędu 1,2 kb na platformie Cortex-M3. Jądro systemu zapewnia wielozadaniowość z wywłaszczeniem 128 priorytetów wątków, karuzelowe przełączanie zadań o takich samych priorytetach. Z mechanizmów komunikacji międzyprocesowej dostępne są: mutexy, zmienne warunkowe, semafory, zdarzenia, kolejki. Poza samym jądrem systemu, w późniejszym czasie dodano warstwę abstrakcji sprzętu HAL umożliwiającą tworzenie aplikacji niezależnie od platformy. Jako komponenty opcjonalne do wyboru są dostępne dwa stosy TCP/IP: popularny uip oraz bardziej rozbudowanty LWIP. Dostępna jest również obsługa systemu plików FAT z wykorzystaniem biblioteki FATFS. System zawiera zestaw najbardziej popularnych i potrzebnych bibliotek przydanych podczas tworzenia własnych aplikacji. FreeRTOS ( System operacyjny FreeRTOS jest jednym z najbardziej popularnych systemów dostępnych dla mikrokontrolerów jednoukładowych. Jednocześnie jest to jeden z najstarszych projektów open source i pewnie jest znany większości czytelników. Projekt jest dostępny dla 31 typów mikrokontrolerów, zawiera wiele gotowych przykładów oraz obszerną dokumentację. Obsługiwanych jest również wiele rodzajów kompilatorów (w tym GCC). Istnieje możliwość wykupienia wsparcia technicznego, a ponadto możliwość nabycia komercyjnej odmiany systemu o nazwie SafeRTOS przeznaczonej dla aplikacji krytycznych pod względem bezpieczeństwa. Wersja komercyjna ma certyfikaty zgodności z normami IEC61508, EN32304, FDA510k. Projekt został w całości napisany w języku C, aby oprogramowanie zajmowało niewiele miejsca oraz było przenośne. Jądro systemu zapewnia wielozadaniowość z wywłaszczeniem oraz podstawowe mechanizmy komunikacji międzyprocesowej, takiej jak: mutexy, kolejki oraz semafory. Dodatkową cechą wyróżniającą system jest możliwość pracy w trybie tick-less, czyli bez przerwania zegarowego systemu. Ten tryb jest przeznaczony do obsługi urządzeń krytycznych ze względu na pobór mocy. Istotną cechą jest również możliwość pracy systemu na komputerze PC bezpośrednio na platformie Win32 lub POSIX, co umożliwia tworzenie oprogramowania bezpośrednio na komputerze PC doskonale ułatwiając w ten sposób pracę. ISIX ( php?dz=rozne&id=isixrtos) ISIX jest system mojego autorstwa. Z założenia został zoptymalizowany dla platform 32-bitowych, kompilatora GCC, pełnego wsparcia dla języka C++ oraz dla uzyskania minimalnej zajętości zasobów. Obecnie system może działać na architekturze Cortex-M3 oraz Cortex-M4, również w wersji z jednostką zmiennoprzecinkową. Jeśli istnieje potrzeba użycia systemu na innej architekturze, to w łatwy sposób może być on dostosowany dla innych platform. Jądro systemu zapewnia wielozadaniowość z wywłaszczaniem, możliwość obsługi wielu priorytetów oraz szeregowanie zadań o takim samym priorytecie z użyciem algorytmu round-robin. Liczbę elementów komunikacji międzyprocesowej ograniczono do niezbędnego minimum: do dyspozycji mamy semafory, oraz kolejki. Biblioteki zawierają również pełne wsparcie dla języka C++, włącznie z obsługą wyjątków oraz same funkcje systemu dostarczające interfejs C++ wraz z obsługą przestrzeni nazw. Dzięki użyciu tylko niezbędnych elementów system zajmuje jedynie kilka kb pamięci Flash i jest łatwy w użyciu. Dodatkowo, oprócz samego systemu, jest dostarczana biblioteka libfoundation 60
5 Przegląd systemów operacyjnych dla systemów wbudowanych zawierająca generyczne algorytmy, niezależne od platformy oraz biblioteka libstm32 będąca odpowiednikiem STM32 standard perhipheral library. Formalnie wspomniane biblioteki są zupełnie niezależne od systemu i mogą być używane oddzielnie. Dodatkowo, dla systemu dostępny jest stos TCP/IP LWIP, a dla mikrokontrolerów STM32 STOS USB od ST wpierający tryby Host i Device. Zaimplementowano również bibliotekę obsługi systemu plików FAT32 bazująca na FATFS oraz warstwę abstrakcji dla kart SD wspierająca karty SDHC. System jest dostępny na licencji GPL z możliwością linkowania z własnymi aplikacjami bez konieczności publikowania kodu źródłowego. MQX ( com/webapp/sps/site/ homepage.jsp?code=mqx_ HOME&tid=vanMQX) System operacyjny MQX jest przeznaczony dla mikrokontrolerów produkowanych przez firmę Freescale i dostępny jest na licencji komercyjnej. Podobnie jak inne systemy oparte o architekturę mikrojądra, zapewnia algorytm szeregowania oparty o wielozadaniowość z wywłaszczeniem oraz obsługą priorytetów. Zapewnia też podstawowe mechanizmy komunikacji międzyprocesowej, takie jak: wątki, semafory, kolejki komunikatów. Istotną zaletą dla użytkowników produktów tej firmy jest pełna integracja ze wszystkimi bibliotekami obsługi sprzętu przez co przygotowanie systemu do użycia jest bardzo łatwe. Dostępne są również zaawansowane biblioteki, takie jak: stos TCP/IP, obsługa systemu plików FAT oraz obsługa USB w trybach Host jak i Device. Cechą charakterystyczną jest również możliwość minimalistycznej konfiguracji zapewniającej podstawową funkcjonalność systemu już przy zajętości pamięci Flash rzędu 6 kb. Contiki ( Contiki jest specjalistycznym systemem przeznaczonym dla aplikacji sieciowych, którego celem jest możliwość uruchomienia obsługi sieci na 8-bitowych urządzeniach o niewielkich zasobach sprzętowych, z naciskiem na optymalizację poboru energii. Jego głównym przeznaczeniem, są systemy czujników sieciowych. Umożliwia on uruchomienie aplikacji sieciowych już przy zajętości pamięci Flash rzędu pojedynczych kb, przy poborze energii rzędu miliwatów. System operacyjny Contiki ma odmienną budowę od pozostałych. Szeregowanie zadań realizowaną jest w trybie wielozadaniowości kooperatywnej, bez wywłaszczania i jest oparte o koncepcję nazwaną protothread. Koncepcja ta opiera się o specjalistyczny system makr dając użytkownikowi wrażenie, że ma do czynienia z odrębnym procesem, a tak naprawdę jest to ukryta maszyna stanów, oparta o system zdarzeń. Wątek zadanie jest pozbawiony stosu lokalnego zmuszając programistę do używania zmiennych globalnych. Należy tutaj podkreślić, że ten system nie jest systemem czasu rzeczywistego. Jego cechą charakterystyczną jest wsparcie zarówno dla protokołu IPv4, jak i jego następcy IPv6. ECOS ( System operacyjny ECOS jest przeznaczony dla nieco bardziej rozbudowanych urządzeń wyposażonych w przynajmniej kilkaset kilobajtów pamięci operacyjnej, na których nie jest możliwe uruchomienie pełnych systemów na przykład Linuksa. Jądro systemu zapewnia mechanizm przełączania zadań z wywłaszczaniem oraz zaawansowane mechanizmy komunikacji międzyprocesowej. Dodatkowo, istotną cechą jest warstwa kompatybilności ze standardem POSIX, co umożliwia łatwe przenoszenie aplikacji przeznaczonych dla systemów: Unix, Linux, BSD. System dodatkowo ma zintegrowany stos TCP/IP pochodzący z FreeBSD. Niestety, ten stos nie jest na bieżąco aktualizowany i synchronizowany z kodem stosu FreeBSD, a ostatnia synchronizacja miała miejsce w 2001 roku, przez co system ma stare luki bezpieczeństwa oraz exploity, za co jest krytykowany. Obecnie stracił mocno na znaczeniu z uwagi na to, że mikroprocesory z MMU oraz pamięci zewnętrzne bardzo potaniały. Ponadto układ z zewnętrzną pamięcią oraz zewnętrznymi magistralami traci wszystkie zalety projektów opartych o mikrokontrolery jednoukładowe. Rozwój systemu znacząco zwolnił i ostatnia wersja stabilna 3.0 pochodzi z roku BeRTOS ( BeRTOS jest kolejnym systemem modularnym, opartym o architekturę mikrojądra z obsługą wielozadaniowości z wywłaszczaniem oraz podstawowymi mechanizmami IPC, takimi jak: semafory, sygnały, kolejki komunikatów. Został on napisany w języku C i przeniesiony na najbardziej popularne układy rodziny ARM7TDMI, Cortex-M oraz AVR. Jego cechą charakterystyczną jest budowa modularna oraz rozbudowana warstwa abstrakcji sprzętu HAL zawierająca ogromną bazę sterowników urządzeń niespotykanych w innych systemach. Dodatkowo, oprócz warstwy abstrakcji sprzętu do dyspozycji mamy bibliotekę obsługi systemu plików FAT, obsługę autorskiego systemu plików BattFS, który jest przeznaczony dla małych nośników, takich jak pamięci EEPROM lub DataFlash. Jest wyposażony również w stos TCP/IP oraz obsługę dodatkowych protokołów, niespotykaną w innych systemach. Są to na przykład PocketBus czy AX25. Z systemem jest dostarczana także biblioteka umożliwiająca tworzenie prostych interfejsów graficznych. System jest dostępny na licencji GPL z możliwością linkowania własnych aplikacji bez konieczności publikowania ich kodu źródłowego. Erika Enterprise ( Erika Enterprise jest kolejnym systemem open source, który w 2012 roku otrzymał certyfikat OSEK/VDK. Podobnie jak i w innych systemach, mikrojądro zapewnia wielozadaniowość z wywłaszczaniem obsługę podstawowych mechanizmów IPC. Ma przy tym budowę modułową. W wersji minimalnej funkcjonalny kernel zadowala się pamięcią Flash rzędu 2 kb. Jego wyróżniającą cechą jest wsparcie dla architektury wielordzeniowej, które zazwyczaj nie jest spotykane w tej klasie systemów. Dla systemu, oprócz wsparcia społeczności, jest dostępne odpłatne wsparcie komercyjne. FunkOS ( System operacyjny FunkOS jest dostępny dla popularnych platform mikrokontrolerowych, takich jak ARM, AVR, MSP430. Jądro systemu zapewnia obsługę wielozadaniowości z wywłaszczaniem, z możliwością obsługi 255 priorytetów zadań oraz podstawowymi mechanizmami komunikacji IPC. Ponadto, jest dostępna warstwa abstrakcji sprzętu HAL, obsługa systemu plików FAT16/32 oraz biblioteka do budowy interfejsów graficznych. Jego interesującą cechą jest to, że dla języka C++ istnieje zupełnie odrębne jądro napisane w C++. System ma pełne wsparcie dla C++. Dostępny jest na licencji open source Sleepycat. Nucleus RTOS ( embedded-software/nucleus/) NucleusRTOS jest systemem o zamkniętej licencji, utworzonym przez oddział systemów wbudowanych firmy Mentor Graphics. Producent chwali się, że jego system pracuje w ponad 3 milionach urządzeń. Jest w pełni skalowany, a jego podstawową funkcjonalność możemy uzyskać już przy zajętości 13 kb pamięci Flash. System zawiera szereg bibliotek ułatwiających pracę programistom, takich jak: obsługa interfejsów I 2 C, SPI, USB2.0/USB3.0. Zawiera również zintegrowany stos TCP/IP. Ciekawą funkcjonalnością jest dostarczane przez producenta środowisko IDE oparte o Eclipse. 61
6 E M B E D D E D O S T E M AT N U M E R U WYBÓR KONSTRUKTORA MicroC/OS-II ( MicroC/OS-II jest systemem komercyjnym stworzonym przez firmę Micrium. Producent chwali się, że jego system jest wykorzystywany przez NASA do obsługi pojazdu Curiosity. Oparty na architekturze mikrojądra zapewnia wielozadaniowość z wywłaszczaniem, obsługę dowolnej liczby wątków (limitowaną wielkością dostępnej pamięci) oraz wsparcie dla mikrokontrolerów posiadających jednostkę ochrony pamięci MPU (nie mylić z MMU). System ma biblioteki TCP/IP, obsługę systemu plików FAT oraz SAFE oraz stos USB dla trybów Host i Device. Dostępne są również biblioteki dla obsługi CAN oraz Modbus. Tworzenie aplikacji ułatwia zintegrowane środowisko IDE oparte o Eclipse. System w większości został napisany w języku C, a w pełni funkcjonalny kernel zajmuje około 20 kb pamięci Flash. uclinux ( uclinux jest osobnym forkiem jądra systemu Linux dla mikrokontrolerów niemających jednostki zarządzania pamięcią MMU. Jest to w pełni funkcjonalny kernel z dodaną emulacją jednostki zarządzania pamięcią MMU. Niemniej jednak, z uwagi na brak pamięci wirtualnej, wszystkie aplikacje uruchamiane są w ramach wspólnej przestrzeni adresowej razem z kernelem, przez co nie jest zapewniona pełna ochrona pamięci, jak w wypadku tradycyjnego jądra. uclinux nie jest kompletnym syste- mem, a jedynie samym jądrem. Jako osobne projekty rozwijane są biblioteki towarzyszące np. uclibc oraz dystrybucja formalnie stanowiąca system, która nosi nazwę uclinux-dist. System do uruchomienia wymaga dostępnych kilku MB pamięci RAM oraz Flash na system plików, a więc nie jest możliwe jego uruchomienie na mikrokontrolerach jednoukładowych bez dołączenia zewnętrznych pamięci. Obecnie stracił mocno na znaczeniu z uwagi na powszechną dostępność tanich mikroprocesorów wyposażonych w jednostkę MMU, w związku z czym uruchamianie jądra Linuksa na mikrokontrolerach bez MMU straciło rację bytu. Lucjan Bryndza, EP l@boff.pl REKLAMA 62
Jądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Podstawowe zagadnienia
SWB - Systemy operacyjne w systemach wbudowanych - wykład 14 asz 1 Podstawowe zagadnienia System operacyjny System czasu rzeczywistego Systemy wbudowane a system operacyjny Przykłady systemów operacyjnych
Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl
Systemy wbudowane Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie definicja, zastosowania, projektowanie systemów wbudowanych Mikrokontrolery AVR Programowanie mikrokontrolerów
Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski
Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która
Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz
Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.
>>> Techniki rozbudowy systemów wbudowanych >>> Biblioteki wspomagające rozbudowę systemów wbudowanych. Name: Mariusz Naumowicz Date: 29 maja 2019
>>> Techniki rozbudowy systemów wbudowanych >>> Biblioteki wspomagające rozbudowę systemów wbudowanych Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/14] >>> Treści wykładu I 1. HAL 2. libusb 3.
Wbudowane systemy czasu rzeczywistego Wykład 14
Wbudowane systemy czasu rzeczywistego Wykład 14 Systemy operacyjne czasu rzeczywistego System czasu rzeczywistego (RTOS) to system operacyjny opracowany tak, by spełnić wymagania narzucone na czas wykonywania
U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX Wojciech A. Koszek dunstan@freebsd.czest.pl IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na
Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego
System operacyjny czasu rzeczywistego (RTOS Real Time Operating System) jest programem bazowym ułatwiającym tworzenie programu użytkowego systemu mikroprocesorowego. System operacyjny czasu rzeczywistego
1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33
Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry
QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:
QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86,
Q E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX CONFidence 2005 IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na Rzecz Dzieci Wojciech A. Koszek
Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych
Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie
Sieciowe Systemy Operacyjne
1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy
Systemy na Chipie. Robert Czerwiński
Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki
Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.
Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,
System komputerowy. System komputerowy
System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów
IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com
IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz
1. Etapy rozwoju systemów komputerowych
1 Sieciowe Systemy Operacyjne Wprowadzenie do wykładu, podstawowe definicje, rola 1 systemu operacyjnego Procesy POSIX, zarządzanie procesami 2 Pliki, komunikacja przez pliki, blokowanie 1 Łącza nazwane
Prezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Wykład 3: Implementacja programów wbudowanych
Systemy wbudowane Wykład 3: Implementacja programów wbudowanych Problemy implementacji oprogramowania wbudowanego Szeregowanie zadań System operacyjny Obsługa przerwań 10/16/2010 S.Deniziak:Systemy wbudowane
WPROWADZENIE Mikrosterownik mikrokontrolery
WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:
UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci
UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX
Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Przedmiot PSCR Przedmiot PSCR Wykład do połowy semestru Laboratorium od połowy semestru Projekt Zaliczenie
Tworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.
GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans
KATEDRA SYSTEMÓW MULTIMEDIALNYCH SEMINARIUM MULTIMEDIALNE SYSTEMY MEDYCZNE
KATEDRA SYSTEMÓW MULTIMEDIALNYCH SEMINARIUM MULTIMEDIALNE SYSTEMY MEDYCZNE Seminarium nr 1: Wprowadzenie do platformy Intel Galileo Opracowanie: mgr inż. Janusz Cichowski 1. WPROWADZENIE Celem ćwiczenia
ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM
ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM Adam MUC, Lech MURAWSKI, Grzegorz GESELLA, Adam SZELEZIŃSKI, Arkadiusz SZARMACH CEL Wykorzystanie popularnych
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
Linux -- u mnie działa!
Linux -- u mnie działa! Wirtualizacja - czyli jak z jednego komputera zrobić 100 Stanisław Kulczycki grung@kce.one.pl Agenda Co to jest wirtualizacja? Zastosowanie Metody wirtualizacji Popularne maszyny
Programowanie w C. dr inż. Stanisław Wszelak
Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++
Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase
1 Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase Jednym z głównych aspektów procesu programowania systemów wbudowanych
STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107
Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32Butterfly2 Zestaw STM32Butterfly2 jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
3. Sygnały zegarowe i ich konfiguracja, mechanizmy bezpieczeństwa... 47
Spis treści 3 1. Rdzeń Cortex-M3...9 1.1. Firma ARM i jej wyroby...10 1.2. Rodzina rdzeni Cortex...12 1.3. Ogólne spojrzenie na architekturę rdzenia Cortex-M3...13 1.4. Rejestry podstawowe...16 1.5. Przestrzeń
Systemy operacyjne. Paweł Pełczyński
Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Wprowadzenie do systemów operacyjnych
SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny
System zarządzający grami programistycznymi Meridius
System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu
Bibliografia: pl.wikipedia.org www.intel.com. Historia i rodzaje procesorów w firmy Intel
Bibliografia: pl.wikipedia.org www.intel.com Historia i rodzaje procesorów w firmy Intel Specyfikacja Lista mikroprocesorów produkowanych przez firmę Intel 4-bitowe 4004 4040 8-bitowe x86 IA-64 8008 8080
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego
1.2. Architektura rdzenia ARM Cortex-M3...16
Od Autora... 10 1. Wprowadzenie... 11 1.1. Wstęp...12 1.1.1. Mikrokontrolery rodziny ARM... 14 1.2. Architektura rdzenia ARM Cortex-M3...16 1.2.1. Najważniejsze cechy architektury Cortex-M3... 16 1.2.2.
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,
RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem
Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3
Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3 organizowany przez: Koło Naukowe Mikrosystemów ONYKS we współpracy z: Wydawnictwem BTC Polskim przedstawicielstwem STMicroelectronics Plan spotkania
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją
Szkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Wstęp do Informatyki. Klasyfikacja oprogramowania
Wstęp do Informatyki Klasyfikacja oprogramowania Oprogramowanie komputerowe Funkcjonalność komputera jest wynikiem zarówno jego budowy, jak i zainstalowanego oprogramowania Komputer danej klasy znajduje
Android - wprowadzenie. Łukasz Przywarty 171018
Android - wprowadzenie Łukasz Przywarty 171018 Ramowy plan prezentacji Czym jest Android: definicja, krótka historia. Architektura systemu. Architektura aplikacji. Właściwości systemu. Środowisko deweloperskie.
LEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
Systemy zdalnego zarządzania i monitoringu: Carel platforma PRO. Tomasz Andracki, Bydgoszcz 2010-11-06
Systemy zdalnego zarządzania i monitoringu: Carel platforma PRO Tomasz Andracki, Bydgoszcz 2010-11-06 PlantVisorPRO PlantWatchPRO Kompletny system nadzoru, monitoringu oraz zdalnego zarządzania nad instalacjami
Modularny system I/O IP67
Modularny system I/O IP67 Tam gdzie kiedyś stosowano oprzewodowanie wielożyłowe, dziś dominują sieci obiektowe, zapewniające komunikację pomiędzy systemem sterowania, urządzeniami i maszynami. Systemy
Przegląd współczesnych systemów operacyjnych
SOE - Systemy Operacyjne Wykład 2 Przegląd współczesnych systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Wstęp Cechy współczesnych systemów operacyjnych
Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Systemy Operacyjne i Sieci Komputerowe Klasa: pierwsza Dział Dopuszczający Dostateczny Dobry
Systemy wbudowane. Systemy operacyjne czasu rzeczywistego
Systemy wbudowane Systemy operacyjne czasu rzeczywistego Definicje System czasu rzeczywistego to taki, w którym wynik przetwarzania nie zależy tylko i wyłącznie od jego logicznej poprawności, ale również
Wykład 6. Mikrokontrolery z rdzeniem ARM
Wykład 6 Mikrokontrolery z rdzeniem ARM Plan wykładu Cortex-A9 c.d. Mikrokontrolery firmy ST Mikrokontrolery firmy NXP Mikrokontrolery firmy AnalogDevices Mikrokontrolery firmy Freescale Mikrokontrolery
Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430
Wykład 4 Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Mikrokontrolery PIC Mikrokontrolery PIC24 Mikrokontrolery PIC24 Rodzina 16-bitowych kontrolerów RISC Podział na dwie podrodziny: PIC24F
dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1
dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego
Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source
Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji
Przygotował: Michał Wańczyk Architektura systemów czasu rzeczywistego (RTOS)
Przygotował: Michał Wańczyk Architektura systemów czasu rzeczywistego (RTOS) System operacyjny czasu rzeczywistego. System operacyjny czasu rzeczywistego (ang. Real-Time Operating System - RTOS) to komputerowy
ASEM UBIQUITY PRZEGLĄD FUNKCJONALNOŚCI
ASEM UBIQUITY PRZEGLĄD FUNKCJONALNOŚCI tel. 22 549 43 53, fax. 22 549 43 50, www.sabur.com.pl, sabur@sabur.com.pl 1/7 ASEM UBIQUITY ASEM Uqiuity to nowatorskie rozwiązanie na platformy Win 32/64 oraz Win
Zenoss. Monitorowanie nowoczesnej serwerowni
Zenoss Monitorowanie nowoczesnej serwerowni Zenoss wprowadzenie Zenoss Enterprise to nowoczesne i zaawansowane narzędzie do wszechstronnego monitorowania nowoczesnego środowiska IT. Kompletne rozwiązanie
Dokumentacja aplikacji Szachy online
Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja
EMBEDDED LINUX ON ARM9 CORE EMBEDDED LINUX NA PROCESORACH Z RODZINY ARM9
Marcin Stanowski V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy EMBEDDED LINUX ON ARM9 CORE EMBEDDED LINUX NA PROCESORACH Z RODZINY ARM9 Keywords: embedded, operating system, linux,
Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,
Charakterystyka mikrokontrolerów Przygotowali: Łukasz Glapiński, 171021 Mateusz Kocur, 171044 Adam Kokot, 171075 Plan prezentacji Co to jest mikrokontroler? Historia Budowa mikrokontrolera Wykorzystywane
egroupware czy phpgroupware jest też mniej stabilny.
Opengroupware to projekt udostępniający kompletny serwer aplikacji oparty na systemie Linux. Dostępny na licencji GNU GPL, strona domowa: http://www.opengroupware.org/ Jego cechy to wysoka stabilność,
o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)
O autorze (9) Podziękowania (10) Wstęp (11) Pobieranie przykładów (12) Czego będę potrzebował? (12) Korzystanie z tej książki (12) Rozdział 1. Programowanie Arduino (15) Czym jest Arduino (15) Instalacja
Wykład 2. Mikrokontrolery z rdzeniami ARM
Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów ARM są szeroko
Podstawa rozwiązań sterowania przemysłowego na komputerach PC. Software Controller. siemens.pl/software-controller
Podstawa rozwiązań sterowania przemysłowego na komputerach PC Software Controller siemens.pl/software-controller SIMATIC S7-1500 Software Controller sterownik programowy z serii SIMATIC oparty na komputerach
STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107
Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32 Butterfly Zestaw STM32 Butterfly jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity
ISBN Copyright by Wydawnictwo BTC Legionowo 2008
Duża popularność graficznych wyświetlaczy LCD powoduje, że w coraz większej liczbie aplikacji warto byłoby wykorzystać ich możliwości (np. dla zwiększenia atrakcyjności urządzenia lub ułatwienia jego obsługi).
1.Wstęp. 2.Generowanie systemu w EDK
1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Mechatronika Rodzaj przedmiotu: dla specjalności Systemy Sterowania w ramach kierunku Mechatronika Rodzaj zajęć: Wykład, laboratorium Systemy Operacyjne Czasu Rzeczywistego
Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Kernel Kompilacja jądra
Kernel Kompilacja jądra systemu Co to jest jądro systemu operacyjnego Jądro systemu operacyjnego jest rozpowszechniane na licencji GNU General Public License (GPL) określonej przez konsorcjum Free Software
Zaawansowane programowanie w języku C++
Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów
Bezpieczeństwo systemów komputerowych
Bezpieczeństwo systemów komputerowych Jak pisać poprawne programy? Aleksy Schubert (Marcin Peczarski) Instytut Informatyki Uniwersytetu Warszawskiego 6 listopada 2018 Na podstawie: David A. Wheeler Secure
27/13 ZAŁĄCZNIK NR 4 DO SIWZ. 1 Serwery przetwarzania danych. 1.1 Serwery. dostawa, rozmieszczenie i zainstalowanie 2. serwerów przetwarzania danych.
1 Serwery przetwarzania danych 1.1 Serwery dostawa, rozmieszczenie i zainstalowanie 2. serwerów przetwarzania danych. 1 1.2 Konsola zarządzająca serwerami dostawa, rozmieszczenie i zainstalowanie 1. konsoli
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Wirtualizacja. Metody, zastosowania, przykłady
Wirtualizacja Metody, zastosowania, przykłady Wirtualizacja - Definicja Użycie oprogramowania w celu stworzenia abstrakcji (iluzji) posiadanych zasobów. Historia Pierwsze szerzej znane zastosowanie: komputer
Struktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Mikrokontroler Wykład 5
Mikrokontroler Wykład 5 Mikrokontroler jednoukładowy Mikrokontroler jednoukładowy jest układem scalonym, w którym zostały zintegrowane następujące elementy Rdzeń obliczeniowy Kontroler pamięci oraz pamięć
Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu
Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu Polska Organizacja Turystyczna ul. Chałubińskiego 8 00-613 Warszawa Spis treści 1 Założenia wstępne... 1 1.1 Informacje wstępne... 1 1.2 Cel projektu...
Wykład 2. Mikrokontrolery z rdzeniami ARM
Wykład 2 Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów
Przegląd rozwiązań z oferty firmy 4D Systems
1 Przegląd rozwiązań z oferty firmy 4D Systems Przegląd rozwiązań z oferty firmy 4D Systems 4D Systems Pty Ltd jest firmą pochodzącą z Australii, która od ponad 25 lat specjalizuje się w opracowywaniu
Technologia informacyjna. Urządzenia techniki komputerowej
Technologia informacyjna Urządzenia techniki komputerowej System komputerowy = hardware (sprzęt) + software (oprogramowanie) Sprzęt komputerowy (ang. hardware) zasoby o specyficznej strukturze i organizacji
Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania
Systemy operacyjne Informatyka Stosowana, I rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania wilk@metal.agh.edu.pl Konsultacje: poniedziałek, 11.30-13; B-4, pok. 207 Systemy operacyjne Wykłady:
<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>
Wersja [Uwaga: Niniejszy wzór dostarczony jest w celu użytkowania z Unified Process for EDUcation. Tekst zawarty w nawiasach kwadratowych i napisany błękitną kursywą
Procesory firmy ARM i MIPS
Procesory firmy ARM i MIPS 1 Architektura procesorów ARM Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC.
Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i
VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp