Programska potpora industrijskih ugradbenih sustava

Opis predmeta

Predmetom se daju praktična znanja o načelima projektiranja složenih industrijskih ugradbenih računalnih sustava za rad u stvarnom vremenu. Razvoj složenih ugradbenih računalnih sustava: sklopovske i programske arhitekture. Pregled stanja tehnologije. Operacijski sustavi za rad u stvarnom vremenu: višezadaćnost, raspoređivanje zadataka, sinkronizacijski mehanizmi, upravljanje memorijom. Alati za razvoj programske potpore za ugradbene računalne sustave. Izrada složenih aplikacija bez operacijskog sustava u ugradbenim računalnim sustavima s minimalnim sklopovskim resursima: primjer integracije datotečnog sustava i mrežne podrške. FreeRTOS operacijski sustav: arhitektura, upravljanje zadacima, prekidima, resursima i memorijom. Embedded Linux: sklopovski zahtjevi, arhitektura OS-a, jezgra, upravljački programi. Izgradnja jezgre i prilagodba OS-a ciljnom sklopovlju. Izrada upravljačkih programa i korisničkih aplikacija. uCLinux: specifičnosti OS-a, sklopovski zahtjevi, postupak prilagodbe ciljnom sklopovlju. eCos: arhitektura, sklopovski zahtjevi, postupak prilagodbe, izrada upravljačkih programa i korisničkih aplikacija. Praktični primjeri.

Opće kompetencije

Poznavanje specifičnosti sklopovske i programske arhitekture složenih industrijskih ugradbenih računalnih sustava za rad u stvarnom vremenu. Poznavanje strukture operacijskih sustava za rad u stvarnom vremenu, postupaka prilagodbe OS-a ciljnom sklopovlju, izrade upravljačkih programa i razvoja korisničkih aplikacija. Osnove prilagodbe i korištenja nekih često korištenih operacijskih sustava za ugradbena računala (FreeRTOS, Embedded Linux, uCLinux i eCos).

Ishodi učenja

  1. prepoznati specifičnosti sklopovske i programske arhitekture složenih industrijskih ugradbenih računalnih sustava za rad u stvarnom vremenu.
  2. koristiti alate za razvoj programske potpore za složene ugradbene računalne sustave.
  3. prilagoditi odabrani operacijski sustav ciljnom sklopovlju (FreeRTOS, Embedded Linux, uCLinux i eCos).
  4. razviti upravljačke programe za operacijske sustave za rad u stvarnom vremenu.
  5. razviti korisničke aplikacije za operacijske sustave za rad u stvarnom vremenu.
  6. procijeniti i odabrati optimalne sklopovske resurse za odabrani operacijski sustav za rad u stvarnom vremenu.

Oblici nastave

Predavanja

Predavanja obrađuju teorijske i praktične aspekte problematike predmeta. Svaki tjedan održavaju se dva sata predavanja.

Provjere znanja

Kontinuirana provjera znanja obuhvaća dvije pismene provjere (međuispit i završni ispit). Provjera na ispitnom roku obuhvaća pismeni i usmeni ispit. Provjerava se znanje na laboratorijskim vježbama, a studenti bodove stječu i izradom praktičnog projekta.

Laboratorijske vježbe

Predviđeno je 15 sati laboratorijskih vježbi. U okviru vježbi studenti na praktičnim primjerima i stvarnom sklopovlju uče načela razvoja složene programske potpore za ugradbene računalne sustave.

Konzultacije

Konzultacije se održavaju se jednom tjedno.

Seminari

Studenti u grupama (do tri studenata) prema vlastito predloženoj ideji razvijaju projektno rješenje na stvarnom sklopovlju. U okviru projekta koriste se znanjima stečenim na predavanjima i laboratorijskim vježbama, a kroz projekt demonstriraju poznavanje načina implementacije programske potpore složenih ugradbenih računalnih sustava.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Laboratorijske vježbe 50 % 10 % 50 % 10 %
Seminar/Projekt 0 % 10 % 0 % 10 %
Međuispit: Pismeni 50 % 40 % 0 %
Završni ispit: Pismeni 50 % 40 %
Ispit: Pismeni 50 % 40 %
Ispit: Usmeni 40 %

Tjedni plan nastave

  1. Uvod u ugradbene računalne sustave. Primjeri ugradbenih računalnih sustava. Arhitektura i projektiranje ugradbenih računalnih sustava.
  2. Razvoj složenih ugradbenih računalnih sustava. Sklopovska arhitektura. Programska arhitektura. Razvoj programske potpore za ugradbena računala: razvojno i ciljno računalo, razvojni alati. Operacijski sustavi za rad u stvarnom vremenu.
  3. Pregled osnovnih značajki operacijskih sustava: višezadaćnost, raspoređivanje zadataka, sinkronizacijski mehanizmi, komunikacija između zadataka, upravljanje memorijom. Primjeri operacijskih sustava za rad u stvarnom vremenu.
  4. ARM Cortex sklopovska arhitektura. Razvoj programske potpore korištenjem GNU razvojnih alata.
  5. Razvoj složene programske potpore za ugradbene računalne sustave bez OS-a: datotečni sustav, mrežno povezivanje. Primjer: ugradbeni web server.
  6. FreeRTOS operacijski sustav. Upravljanje zadacima, redovima, prekidima, resursima i memorijom.
  7. FreeRTOS primjer: ugradbeni web server. Integracija servisa visoke razine s FreeRTOS-om: datotečni sustav, TCP/IP umrežavanje, web server. Praktični primjer.
  8. Međuispit
  9. Uvod u Embedded Linux. Ciljno sklopovlje i distribucije. Jezgra, bootloader, upravljački programi, datotečni sustav, umrežavanje, CLI.
  10. Podešavanje razvojne radne okoline. Izgradnja razvojnih alata iz izvornog koda. Podešavanje jezgre. Izgradnja jezgre iz izvornog koda.
  11. Pokretanje OS-a korištenjem U-Boot-a. Kreiranje korijenskog datotečnog sustava. Emulacija ciljnog sklopovlja. Razvoj aplikacija i ispravljanje pogrešaka.
  12. Razvoj upravljačkih programa. Primjeri složenih aplikacija.
  13. Pregled uCLinux OS-a. Ciljno sklopovlje. Ograničenja i razlike između uCLinux-a i standardnih Linux distribucija. Prilagodba uCLinux-a. Primjeri složenih aplikacija.
  14. Arhitektura eCos-a. Sloj apstrakcije sklopovlja. Jezgra. Izgradnja eCos sustava. Pokretanje sustava korištenjem RedBoot-a. Primjeri aplikacija.
  15. Završni ispit

Studijski programi

Sveučilišni diplomski
Automatika (profil)
Predmeti specijalizacije profila (3. semestar)
Elektroničko i računalno inženjerstvo (profil)
Predmeti specijalizacije profila (3. semestar)

Literatura

A. Silberschatz, P. B. Galvin, G. Gagne (2005.), Operating System Concepts, 7th Edition edition, John Wiley & Sons
R. Barry (2009.), Using the FreeRTOS Real Time Kernel - Standard Edition, FreeRTOS.org
D. Abbott (2006.), Linux for Embedded and Real-time Applications, Newnes
G. Sally (2010.), Pro Linux Embedded Systems, APRESS ACADEMIC
A. J. Massa (2002.), Embedded Software Development with eCos, Prentice Hall

Laboratorijske vježbe

Izvedba

ID 86508
  Zimski semestar
4 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Auditorne vježbe
15 Laboratorijske vježbe

Ocjenjivanje

90 izvrstan
75 vrlo dobar
60 dobar
50 dovoljan