22
Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje u realnom vremenu 2016/2017 Uvod

Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

  • Upload
    hathuy

  • View
    233

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Univerzitet u Novom Sadu

Fakultet tehničkih nauka

Odsek za računarsku tehniku i računarske komunikacije

Linuks programiranje u realnom vremenu 2016/2017

Uvod

Page 2: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

LINUKS PROGRAMIRANJE U REALNOM VREMENU

Uvod

2

Page 3: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Opšte informacije (1/2)

Predmet: Linuks programiranje u realnom vremenu

Fond:

Predavanja: 40

Vežbe: 40

Nastavnik:

Prof. dr. Miroslav Popović [email protected]

3

Page 5: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Obrazovni cilj

Razvoj Linuks rukovalaca uređajima

Detaljan pregled unutrašnje strukture i rada operativnog sistema Linuks

Primena u aplikacijama u realnom vremenu

Poseban naglasak na upotrebi i specifičnostima Linuksa u namenskim sistemima (ugrađenim u automobile, telefone, televizore...), a ne samo u sistemima opšte namene.

5

Page 6: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Stečena znanja

Osposobljenost za projektovanje komponenata jezgra Linuks operativnog sistema i rad na projektima za razvoj Linuks rukovalaca uređajima

Sposobnost za integraciju komponenti jezgra sa drugim delovima jezgra i korisničkim aplikacijama

Fokus na razvoju rukovalaca uređajima za namenske računarske strukture i personalne računare

6

Page 7: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Predmet obuhvata (1/2)

Uvod u jezgro Linuks operativnog sistema, detalji izvornog koda jezgra.

Podešavanje, prevođenje i učitavanje Linuks jezgra.

Moduli Linuks jezgra.

Rukovanje memorijom i pristup ulazno-izlaznim jedinicama.

Rukovaoci uređaja karakternog tipa.

Procesi, raspoređivanje, čekanje na resurse, rukovanje prekidima, zaključavanje.

7

Page 8: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Predmet obuhvata (2/2)

Tehnike otklanjanja grešaka u razvoju komponenata jezgra.

Arhitektura jezgra za rukovaoce uređajima (Ilustracija na mnogim primerima u jezgru).

Detalji pokretanja jezgra.

Prilagođavanje Linuks jezgra za drugu platformu.

Rukovanje potrošnjom.

Realno vreme u Linuks namenskim sistemima.

8

Page 9: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Primena u oblastima

Softver za automobilsku industriju

Internet of Things

Digitalna TV

9

Page 10: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Zahvalnica

Materijali su bazirani na kursevima kompanije Free Electrons:

Embedded Linux

Linux kernel and driver development

10

Page 11: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Načini ocenjivanja

Student može maksimalno da osvoji 100 poena

10% poena za pohađanje nastave (prisustvo na predavanjima i laboratorijskim vežbama)

60% poena za projekat

30% poena za ispit iz teorije

Napomene:

Predispitne obaveze nose 70% i mogu se realizovati isključivo u toku bloka

Mora se realizovati minimalno 25% predispinih obaveza da bi se uopšte moglo izaći na ispit, ali se tada mora osvojiti svih 30% na ispitu, da bi se dobila ocena 6.

11

Page 12: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Platforma korišćena na kursu

12

Osim na prve 3 vežbe, koristi se Raspberry Pi 2

Broadcom BCM2836 SoC

900MHz ARMv7 Quad Core, Broadcom VideoCore IV GPU

1 GB RAM

Proširiv 40-pinski GPIO konektor

Video/Audio izlaz (3.5mm, HDMI)

Memorija: microSD

4 x USB2.0, 10/100 Ethernet (RJ45)

27 x GPIO, UART, I2C bus, SPI bus, +3.3V, +5V, Ground

Napajanje: 5V @ 600 mA

Linuks kernel, alati, dokumentacija, dizajn i dr:

https://github.com/raspberrypi

Page 13: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Nemojte oštetiti vaš RPI

Ništa od dodataka ne priključujte dok je RPI pod napajanjem

Ne isključujte ploču samo otkačivanjem napajanja:

Ako je sistem aktivan, uvek koristite komandu reboot za

restart

Ako je sistem aktivan, uvek koristite komandu halt za

isključivanje, pa potom isključite napajanje

13

Page 14: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Komponente korišćene na kursu

Raspberry Pi 2:

http://bit.ly/1EMd405

Nintendo Nunchuck sa adapterom:

http://bit.ly/2eCsPkH

http://bit.ly/2f76UTj

Žice za prespajanje (“ženski” konektor):

http://bit.ly/2frzijt

USB serijski kabel/adapter (“ženski” konektor):

http://bit.ly/2eCs1w0

USB Eternet adapter:

http://bit.ly/2fsLezs

14

Page 15: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Učestvujte

Za vreme predavanja i vežbi...

Ne ustručavajte se da postavite pitanje. Ostali možda imaju sličnu nedoumicu.

Ovo pomaže i nastavnicima da otkriju objašnjenje koje nije bilo dovoljno jasno ili detaljno.

Ne ustručavajte se da podelite i vaše iskustvo na Linuks ili drugom OS.

Vaš pogled na probleme je najbitniji jer je sličan pogledu kolega, a različit od pogleda nastavnika.

Vaše učešće može kurs učiniti interaktivnijim, zanimljivijim, te lakšim za savladati.

15

Page 16: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Savet – zapisujte vaše komande!

Za vreme vežbi, zapisujte sve bitne komande u tekstualnu datoteku:

Može vam uštedeti dosta vremena zbog ponovnog korišćenja komandi na kasnijim vežbama.

Pravite referencu za pamćenje komandi u budućnosti.

Naročito je korisno za zadržavanje podešavanja komandne linije koja ste koristili ranije.

Takođe je pogodno i prilikom traženja pomoći od asistenta koji tada može da vidi sve komande koje ste pokretali. 16

Page 17: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Sarađujte

Saradnja za vreme vežbi je bitna za ovaj kurs, kao što je bitna u Free Software i Open Source zajednici:

Ukoliko završite vežbe pre ostalih, ne ustručavajte se da pomognete drugim kolegama i istražite probleme sa kojima se oni suočavaju.

Što brže napredujete kao grupa, više vremena će ostajati za istraživanje dodatnih stvari.

Kada je to potrebno, objasnite drugima kako ste vi nešto razumeli. To takođe pomaže i vama da učvrstite svoje znanje.

Ne ustručavajte se da svom asistentu prijavite potencijalne greške.

Ne ustručavajte se da rešenje problema potrežite i na Internetu. 17

Page 19: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Agenda – prva nedelja radna nedelja 48

19

Datum Aktivnost Predavanja

28.11.2016 ponedeljak

Dan01 Predavanje

P1.1 Uvod P1.2 Linuks u namenskim sistemima - Uvod i razvojno okruženje - I deo

29.11.2016 utorak

Dan02 Predavanje

P2.1 Linuks u namenskim sistemima - Uvod i razvojno okruženje - II deo P2.2 Linuks uređaj i model rukovaoca

30.11.2016 sreda

Dan03 Predavanje

P3.1 Primer Linuks uređaja - komunikacija sa I2C uređajem P3.2 Radni okviri kernela za rukovaoce uređaja

01.12.2016 četvrtak

Dan04 Vežba L1 Priključivanje i konfigurisanje RPI platforme i okruženja

02.12.2016 petak

Dan05 Vežba L2 Pisanje i prevođenje modula

03.12.2016 subota

04.12.2016 nedelja

Page 20: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Agenda – druga nedelja radna nedelja 49

20

Datum Aktivnost Predavanja

05.12.2016 ponedeljak

Dan06 Predavanje

P4.1 Rukovanje memorijom - U/I memorija i portovi, MISC podsistem P4.2 Procesi, raspoređivanje i prekidi P4.3 Konkurentni pristup resursima - zaključavanje

06.12.2016 utorak

Dan07 Predavanje

P5.1 Debagovanje P5.2 Portovanje P5.3 Upravljanje potrošnjom

07.12.2016 sreda

Dan08 Predavanje P6 Realno vreme u Linuks namenskim sistemima

08.12.2016 četvrtak

Dan09 Vežba L3 Model uređaja – I2C uređaj (nunchuck vežba 1)

09.12.2016 petak

Dan10 Vežba L4 Korišćenje I2C magistrale (nunchuck vežba 2)

10.12.2016 subota

11.12.2016 nedelja

Page 21: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Agenda – treća nedelja radna nedelja 50

21

Datum Aktivnost Predavanja

12.12.2016 ponedeljak

Dan11 Vežba L5 Sprega sa ulaznim podsistemom (nunchuck vežba 3)

13.12.2016 utorak

Dan12 Vežba L6 Sistemska vremenska kontrola - spavanje, prekidi, zaključavanje

14.12.2016 sreda

Dan13 Projekat Proj1 Uart

15.12.2016 četvrtak

Dan14 Projekat Proj2 Uart

16.12.2016 petak

Dan15 Projekat Proj3 Uart

17.12.2016 subota

18.12.2016 nedelja

Page 22: Linuks programiranje u realnom vremenu - · PDF fileUniverzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Linuks programiranje

Agenda – četvrta nedelja radna nedelja 51

22

Datum Aktivnost Predavanja

19.12.2016 ponedeljak

Dan16 Odbrana Odbrana projekta (60 bodova)

20.12.2016 utorak

21.12.2016 sreda

Dan18 Test Teorijski test (30 bodova)

22.12.2016 četvrtak

23.12.2016 petak

24.12.2016 subota

25.12.2016 nedelja