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

Za studente

Izvedba

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

Ocjenjivanje

90 izvrstan
75 vrlo dobar
60 dobar
50 dovoljan