Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Vývoj mobilních a embedded aplikací pro platformu GNU/Linux

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
17VVMG KZ 2 1P+1C česky
Garant předmětu:
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra informačních a komunikačních technologií v lékařství
Anotace:

Úvod do vývoje mobilních a vestavěných aplikací v prostředí operačního systému GNU/Linux . Přehled současných aplikací tohoto systému v medicínských, průmyslových a domácích embedded zařízeních, jako jsou měřicí, řídicí a zobrazovací systémy, síťové prvky, vestavěné aplikační servery, dohledové a dispečerské systémy, datová úložiště, mobilní zařízení, multimediální centra. Jsou shrnuty základní postupy návrhu, vývoje a deploymentu aplikací pomocí multiplatformních open source nástrojů: konfigurace a sestavení GNU toolchain, sestavení jádra pro konkrétní embedded platformu, využití multiplatformních IDE (např. Eclipse) pro vývoj mobilních aplikací. Formou praktických ukázek jsou demonstrovány základní postupy využití služeb systému GNU/Linux k ovládání systémových prostředků a periferních zařízení jako např. digitální vstupy a výstupy, A/D a D/A převodník, grafický displej, hodiny reálného času, GPS/GSM moduly, komunikace přes Ethernet, WiFi, Bluetooth, ZigBee, atd. a dále ukázky připojení medicínských a domácích fitness přístrojů jako např. váha s bioimpedancí, teploměr, glukometr, EKG apod. k mobilnímu zařízení.

Požadavky:
Osnova přednášek:

1. Historie a základní koncepty vývoje aplikací pomocí open source nástrojů. Druhy licencí softwaru. Možnosti integrace s proprietárními řešeními. Vazba nástrojů na hardware používaný v mobilních a embedded zařízeních.

2. Vývojové kity a desky s podporou GNU/Linux na platformách ARM Cortex M4, ARM9 a ARM 11, např. FoxBoard, Raspberry Pi - srovnání parametrů a vestavěných periferií, možnosti propojení s dalšími systémy.

3. Konfigurace a sestavení toolchain - vývojové sady GNU: křížový kompilátor, linker, základní knihovny, ladicí a systémové utility. Integrace vývojových nástrojů do desktopových prostředí MS Windows a X-Window system.

4. Konfigurace a sestavení jádra pro konkrétní embedded platformu, příprava zavádění systému. Bootování z flash paměti. Řízení a monitorování systémových služeb.

5. Lokální a dálková správa embedded systému, použití ssh a webových konfiguračních rozhraní. Update programové paměti embedded systému, zotavování z kritických chyb.

6. Technika vývoje aplikací pro embedded a mobilní zařízení. Možnosti využití multiplatformních integrovaných vývojových prostředí (např. Eclipse). Deployment aplikací.

7. Ladění aplikací na vývojové desce, JTAG rozhraní, remote debugging. Refaktoring kódu. Základy využití verzovacího systému SVN. Základy distribuovaného vývoje, využití služeb SourceForge.

8. Ukázky možností využití vysokoúrovňových skriptovacích jazyků (zejména progr. jazyka Python a shellu Bash) pro konfiguraci a vývoj systémů embedded a mobilních zařízení.

9. Využití základních služeb systému GNU/Linux k řízení a plánování procesů, soft reálný čas, nastavení plánovače CPU a I/O zařízení. Meziprocesní komunikace - semafory, sdílená paměť, signály, správa paměti.

10. Ovládání základních systémových prostředků a periferních zařízení jako např. hodiny reálného času, digitální vstupy a výstupy, SPI, UART, I2C rozhraní atd.

11. Základy využití GSM komunikace - hlasová a datová komunikace, GSM lokalizace. Využití satelitního navigačního systému GPS v mobilních zařízeních.

12. Využití bezdrátových komunikačních rozhraní WiFi, Bluetooth, ZigBee ke komunikaci mobilního zařízení s externími medicínskými a dalšími periferiemi (tlakoměr, glukometr, EKG přístroj apod.)

13. Využití ethernetového adaptéru pro komunikaci s embedded zařízením. TCP a UDP stack, BSD sockety, ukázky serverových a klientských aplikací pro mobilní systémy.

14. Přehled současných aplikací systému GNU/Linux v medicínských, průmyslových a domácích embedded zařízeních - měřicí, řídicí a zobrazovací systémy, síťové prvky, vestavěné aplikační servery, navigační, dohledové a dispečerské systémy, mobilní zařízení, datová úložiště, multimediální centra atd.

Osnova cvičení:

1. Konfigurace a sestavení systému GNU/Linux pro platformu ARM9 a ARM11, vytvoření obrazu jádra, příprava zavádění systému. Ukázka řízení a monitorování systémových služeb.

2. Hackujeme domácí stolní router, datové úložiště a multimediální centrum - ukázky vnitřní architektury, konfigurace systému, vytvoření a update firmware, zabezpečení komunikace.

3. Praktické použití embedded vývojové desky FoxBoard, ukázky mobilních aplikací pro platformu ARM9

4. Praktické použití embedded vývojové desky Raspberry Pi, ukázky mobilních aplikací pro platformu ARM11

5. Ukázky ovládání hodin reálného času, digitálních vstupů a výstupů, SPI, UART a I2C rozhraní v embedded systému.

6. Ukázky využití komunikačních rozhraní WiFi, Bluetooth a ZigBee ke komunikaci mobilního zařízení s medicínským tlakoměrem, glukometrem a EKG přístrojem.

7. Ukázka využití GSM modulu k hlasové a datové komunikaci s mobilním zařízením.

8. Ukázka komunikace mobilního zařízení s GPS modulem, kombinovaná GPS/GSM lokalizace

9. Praktické využití ethernetového adaptéru pro komunikaci s embedded zařízením, ukázky socketové komunikace na serverových a klientských aplikacích pro mobilní systémy.

10. Příprava toolchainu (vývojové sady) GNU - křížového kompilátoru, linkeru, základních knihoven, ladicích a systémových utilit pro platformy AVR, ARM7, ARM Cortex M, ARM9 a ARM11.

11. Ukázky programování multiplatformních mobilních a embedded aplikací v jazyce C na platformě ARM9 a ARM11.

12. Ukázky využití programovacího jazyka Python pro konfiguraci a vývoj systémů embedded a mobilních zařízení na platformě ARM9 a ARM11

13. Zadání samostatné úlohy. Řešení samostatné úlohy I.

14. Řešení samostatné úlohy II. Kontrola a obhájení samostatné úlohy.

Cíle studia:

Seznámení s moderními multiplatformními postupy vývoje mobilních a embedded aplikací pro medicínu, průmysl a domácí multimédia na platformě GNU/Linux. Osvojení metod výběru hardware pro mobilní a embedded aplikace. Osvojení postupů konfigurace, správy a základů programování embedded a mobilních zařízení s využitím open source nástrojů a knihoven.

Studijní materiály:

Povinná literatura:

. R. Stones a kol.: Linux - začínáme programovat, Computer Press, 2009

. J.Ganssle: Embedded Systems - World Class Designs, Elsevier, 2009

Doporučená literatura:

. B. Fling: Mobile Design and Development, O'Reilly Media, 2009

. Ch. Hallinan: Embedded Linux Primer: A Practical Real-World Approach (2nd Edition), Prentice Hall, 2010

J. Corbet et al: Linux Device Drivers, 3rd Edition, O'Reilly Media, 2005

Poznámka:
Rozvrh na zimní semestr 2024/2025:
Rozvrh není připraven
Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 23. 11. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet2771106.html