Nazwa modułu: Otwarte oprogramowanie w systemach wbudowanych i pomiarowych Rok akademicki: 2015/2016 Kod: EEL-2-307-PT-s Punkty ECTS: 3 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Elektrotechnika Specjalność: Pomiary technologiczne i biomedyczne Poziom studiów: Studia II stopnia Forma i tryb studiów: Stacjonarne Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 3 Strona www: Osoba odpowiedzialna: Wetula Andrzej (wetula@agh.edu.pl) Osoby prowadzące: mgr inż. Kowalski Jakub (kowjak@agh.edu.pl) Wetula Andrzej (wetula@agh.edu.pl) Borkowski Dariusz (borkows@agh.edu.pl) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) Wiedza M_W001 Ma rozszerzoną wiedzę na temat stosowanych obecnie architektur mikroporcesorów i ich właściwości. EL2A_W09 M_W002 Ma ugruntowaną wiedzę w zakresie wdrażania i oprogramowywania systemów wbudowanych w oparciu o narzędzia i systemy operacyjne dostępne na licencjach otwartych EL2A_W05 Umiejętności M_U001 potrafi pozyskiwać informacje z literatury, baz danych i innych źródeł; potrafi integrować pozyskane informacje, dokonywać ich interpretacji i krytycznej oceny, a także wyciągać wnioski oraz formułować i wyczerpująco uzasadniać opinie EL2A_U01 M_U002 potrafi przygotować i przedstawić prezentację poświęconą wynikom realizacji zadania badawczego EL2A_U04 Prezentacja 1 / 5
M_U003 potrafi zaprojektować wbudowany system mikrokomputerowy oparty o wybrane gotowe elementy, oraz zrealizować ten projekt lub jego fragment, używając właściwych metod i środków, w tym przystosowując do tego celu już istniejące, a także potrafi oszacować koszty w procesie projektowania EL2A_U16 Kompetencje społeczne M_K001 ma świadomość roli społecznej absolwenta uczelni technicznej, a zwłaszcza rozumie potrzebę formułowania i przekazywania społeczeństwu m.in. poprzez środki masowego przekazu informacji i opinii dotyczących osiągnięć elektrotechniki i innych aspektów działalności inżyniera elektryka; podejmuje starania, aby przekazać takie informacje i opinie w sposób powszechnie zrozumiały EL2A_K02 Matryca efektów kształcenia w odniesieniu do form zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć Wykład audytoryjne laboratoryjne projektowe Konwersatori um seminaryjne praktyczne terenowe warsztatowe Inne E-learning Wiedza M_W001 M_W002 Umiejętności M_U001 M_U002 Ma rozszerzoną wiedzę na temat stosowanych obecnie architektur mikroporcesorów i ich właściwości. Ma ugruntowaną wiedzę w zakresie wdrażania i oprogramowywania systemów wbudowanych w oparciu o narzędzia i systemy operacyjne dostępne na licencjach otwartych potrafi pozyskiwać informacje z literatury, baz danych i innych źródeł; potrafi integrować pozyskane informacje, dokonywać ich interpretacji i krytycznej oceny, a także wyciągać wnioski oraz formułować i wyczerpująco uzasadniać opinie potrafi przygotować i przedstawić prezentację poświęconą wynikom realizacji zadania badawczego + - - - - - - - - - - + - - - - - - - - - - 2 / 5
M_U003 potrafi zaprojektować wbudowany system mikrokomputerowy oparty o wybrane gotowe elementy, oraz zrealizować ten projekt lub jego fragment, używając właściwych metod i środków, w tym przystosowując do tego celu już istniejące, a także potrafi oszacować koszty w procesie projektowania Kompetencje społeczne M_K001 ma świadomość roli społecznej absolwenta uczelni technicznej, a zwłaszcza rozumie potrzebę formułowania i przekazywania społeczeństwu m.in. poprzez środki masowego przekazu informacji i opinii dotyczących osiągnięć elektrotechniki i innych aspektów działalności inżyniera elektryka; podejmuje starania, aby przekazać takie informacje i opinie w sposób powszechnie zrozumiały - - - + - - - - - - - Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład Architektury mikroprocesorowe spotykane w systemach wbudowanych (1h) Architektury x86, MIPS, Power, ARM. Podobieństwa i różnice, popularność i perspektywy. Obszary zastosowań. Otwarte oprogramowanie (1h) Rozwój otwartego oprogramowania. Rodzaje otwartych licencji. Organizacje wspierające otwarte oprogramowanie. Otwarte narzędzia programistyczne. Biblioteki C: Glibc, uclibc, Bionic, libc++. Zestawy narzędzi progrmistycznych: GCC, Clang/LLVM. Narzędzia kontroli wersji. Środowiska graficzne. Emulatory. Podstawy pracy z symulatorem dla systemów wbudowanych. Obsługa narzędzi do kompilacji skrośnej. Budowa systemu. Struktura drzewa katalogów. Proces uruchomienia. Budowa systemu typu Unix. Struktura drzewa katalogów. Montowanie i odmontowanie napędów. Ładowanie systemu z pamięci, napędów i sieci. Kontrola nad ładowaniem systemu. Parametry jądra. Komunikacja międzyprocesowa i sieciowa. Tworzenie programów wielowątkowych. Komunikacja międzywątkowa i międzyprocesowa. Komunikacja sieciowa z wykorzystaniem UDP/IP oraz TCP/IP. Gotowe narzędzia i biblioteki komunikacyjne. Instalacja i przygotowanie serwerów. Uruchamianie kodu jądra 3 / 5
Kompilacja, testowanie i uruchamianie modułów jądra. Komunikacja między kodem jądra a użytkownika. Komunikacja pomiędzy funkcjami jądra systemu. Ładowanie i usuwanie modułów. Debugowanie modułów jądra. Android Budowa systemu Android. Zastosowania w systemach wbudowanych. Przygotowanie systemu Android do pracy w systemie wbudowanym. Systemy czasu rzeczywistego. Systemy operacyjne czasu rzeczywistego. Właściwości, działanie, przygotowanie do pracy. Zapoznanie z platformą Xenomai i PREEMPT_RT. projektowe Zadanie projektowe Projekt obejmuje samodzielne opracowanie wybranego przez studenta zadania, z wykorzystaniem sprzętu dostarczonego przez prowadzącego zajęcia. Zadania są złożone i mają charakter przede wszystkim programistyczny charakter. Dopuszcza się wykonanie zadania projektowego wg propozycji studenta. Prezentacja wyników pracy Student powinien zaprezentować przed grupą i prowadzącym sposób i efekt opracowania wykonanego przez siebie zadania projektowego. laboratoryjne Otwarte narzędzia programistyczne. Praca z symulatorem. Zapoznanie z narzędziami programisty. Kompilacja skrośna. Konfiguracja symulatora. Uruchamianie programów w symulatorze. Praca z programem uruchamiającym i uruchamianie systemu. Przygotowanie, instalacja i konfiguracja systemu. Budowa drzewa katalogów. Przygotowanie obrazów systemu do instalacji. Instalacja systemu w emulatorze i w pamięci flash. Skrypty uruchomieniowe. Konfiguracja parametrów startowych. Kompilacja i uruchamianie programów użytkownika. Kompilacja programów użytkownika. Praca z konsolą: ręczne uruchamianie programów. Uruchamianie programów w trybie wsadowym. Przekierowanie wejścia i wyjścia. Obsługa urządzeń przez programy użytkownika. Kompilacja, instalacja i uruchamianie kodu jądra systemu. Budowa modułu jądra Linux. Kompilacja i instalacja modułu jądra. Komunikacja z innymi modułami i z programami użytkownika. Komunikacja międzyprocesowa i sieciowa Programy wielowątkowe. Komunikacja międzyprocesowa. Komunikacja w sieci lokalnej (Ethernet). Komunikacja w sieci TCP/IP. Graficzne środowiska użytkownika Instalacja i konfiguracja wybranych GUI. Przygotowanie programów z graficznym interfejsem użytkownika. Obsługa ekranów dotykowych biblioteka tslib. Android. Rozszerzenia czasu rzeczywistego. Do wyboru przez uczestników zajęć: <strong>1)</strong> Zapoznanie ze środowiskiem programisty dla systemu Android. Budowa programów dla Android, praca z symulatorem. <em>lub</em> 4 / 5
<strong>2)</strong> Rozszerzenia czasu rzeczywistego dla jądra Linux przygotowanie jądra, przygotowanie i uruchamianie programu użytkownika. Sposób obliczania oceny końcowej Ocena końcowa jest średnią ocen z ćwiczeń i projektowych. Wymagania wstępne i dodatkowe Umiejętność programowania w języku C, C++. Znajomość podstaw budowy i programowania systemów mikroprocesorowych. Zalecana literatura i pomoce naukowe 1. Bis M.: Linux w systemach embedded. BTC, Warszawa 2011 2. Hallinan C.: Embedded Linux Primer. A Practical Real-World Approach., Prentice Hall, 2006 3. Yaghmour K.: Building Embedded Linux Systems, O Reilly Media, 2008 Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Wykład i laboratorium do przedmiotu prowadzone są w pierwszych 8 tygodniach semestru. Następne 7 tygodni jest przeznaczone na projekt. Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Udział w wykładach Udział w ćwiczeniach Udział w ćwiczeniach projektowych Wykonanie projektu Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. Samodzielne studiowanie tematyki zajęć Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 20 godz 10 godz 3 godz 75 godz 3 ECTS 5 / 5