Module also offered within study programmes:
General information:
Name:
Open source software in embedded and measurement systems
Course of study:
2017/2018
Code:
EEL-2-307-PT-s
Faculty of:
Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering
Study level:
Second-cycle studies
Specialty:
Pomiary technologiczne i biomedyczne
Field of study:
Electrotechnics
Semester:
3
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
Wetula Andrzej (wetula@agh.edu.pl)
Academic teachers:
mgr inż. Kowalski Jakub (kowjak@agh.edu.pl)
Wetula Andrzej (wetula@agh.edu.pl)
Borkowski Dariusz (borkows@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
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 Execution of laboratory classes
Skills
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 Execution of laboratory classes
M_U002 potrafi przygotować i przedstawić prezentację poświęconą wynikom realizacji zadania badawczego EL2A_U04 Presentation
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 Execution of laboratory classes
Knowledge
M_W001 Ma rozszerzoną wiedzę na temat stosowanych obecnie architektur mikroporcesorów i ich właściwości. EL2A_W09 Execution of laboratory classes
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 Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
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 - - - + - - - - - - -
Skills
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 - - + + - - - - - - -
M_U002 potrafi przygotować i przedstawić prezentację poświęconą wynikom realizacji zadania badawczego - - + + - - - - - - -
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 - - + + - - - - - - -
Knowledge
M_W001 Ma rozszerzoną wiedzę na temat stosowanych obecnie architektur mikroporcesorów i ich właściwości. + - - - - - - - - - -
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 + - - - - - - - - - -
Module content
Lectures:
  1. Architektury mikroprocesorowe spotykane w systemach wbudowanych (1h)

    Architektury x86, MIPS, Power, ARM. Podobieństwa i różnice, popularność i perspektywy. Obszary zastosowań.

  2. Otwarte oprogramowanie (1h)

    Rozwój otwartego oprogramowania. Rodzaje otwartych licencji. Organizacje wspierające otwarte oprogramowanie.

  3. 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.

  4. 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.

  5. 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.

  6. Uruchamianie kodu jądra

    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.

  7. Android

    Budowa systemu Android. Zastosowania w systemach wbudowanych. Przygotowanie systemu Android do pracy w systemie wbudowanym.

  8. Systemy czasu rzeczywistego.

    Systemy operacyjne czasu rzeczywistego. Właściwości, działanie, przygotowanie do pracy. Zapoznanie z platformą Xenomai i PREEMPT_RT.

Project classes:
  1. 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.

  2. Prezentacja wyników pracy

    Student powinien zaprezentować przed grupą i prowadzącym sposób i efekt opracowania wykonanego przez siebie zadania projektowego.

Laboratory classes:
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Komunikacja międzyprocesowa i sieciowa

    Programy wielowątkowe. Komunikacja międzyprocesowa. Komunikacja w sieci lokalnej (Ethernet). Komunikacja w sieci TCP/IP.

  6. Graficzne środowiska użytkownika

    Instalacja i konfiguracja wybranych GUI. Przygotowanie programów z graficznym interfejsem użytkownika. Obsługa ekranów dotykowych – biblioteka tslib.

  7. Android. Rozszerzenia czasu rzeczywistego.

    Do wyboru przez uczestników zajęć:
    1) Zapoznanie ze środowiskiem programisty dla systemu Android. Budowa programów dla Android, praca z symulatorem.
    lub
    2) Rozszerzenia czasu rzeczywistego dla jądra Linux – przygotowanie jądra, przygotowanie i uruchamianie programu użytkownika.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 75 h
Module ECTS credits 3 ECTS
Participation in lectures 14 h
Participation in laboratory classes 14 h
Participation in project classes 14 h
Completion of a project 20 h
Preparation of a report, presentation, written work, etc. 10 h
Realization of independently performed tasks 3 h
Additional information
Method of calculating the final grade:

Ocena końcowa jest średnią ocen z ćwiczeń laboratoryjnych i projektowych.

Prerequisites and additional requirements:

Umiejętność programowania w języku C, C++. Znajomość podstaw budowy i programowania systemów mikroprocesorowych.

Recommended literature and teaching resources:

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

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

Wykład i laboratorium do przedmiotu prowadzone są w pierwszych 8 tygodniach semestru. Następne 7 tygodni jest przeznaczone na projekt.