Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Ing. Michal Žatečka
Acad. year: 2025/2026
Supervisor: RNDr. Marek Rychlý, Ph.D.
Reviewer: Ing. Zbyněk Křivka, Ph.D.
Embedded systems development has traditionally relied on C and C++ due to their performance and low-level hardware control. However, these languages lack memory-safety guarantees, leaving systems potentially vulnerable to critical errors and security exploits. The Rust programming language offers a modern alternative, providing compile-time memory safety without compromising performance. This work explores the options of adopting Rust for the AVR architecture, specifically for Arduino development. It analyzes existing Rust embedded abstraction layers and compares them against the traditional C/C++ approach. Based on this analysis, this thesis designs and implements a new CLI tool and its Visual Studio Code extension. This tool enables users to choose between a pure Rust approach or a hybrid that integrates the existing C++ Arduino framework. The proposed design aims to lower the barrier to entry into the Rust embedded world while maintaining the flexibility required for legacy integration.
Rust, Embedded systems, Visual Studio Code, CLI, Cargo, C, C++, PlatformIO
Date of defence
24.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
C
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.
Topics for thesis defence
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Software Engineering (NSEN)
Composition of Committee
doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda) doc. RNDr. Jitka Kreslíková, CSc. (místopředseda) doc. Ing. Vladimír Janoušek, Ph.D. (člen) Ing. Libor Polčák, Ph.D. (člen) Ing. Jan Pluskal, Ph.D. (člen) Ing. Matěj Grégr, Ph.D. (člen)
Supervisor’s reportRNDr. Marek Rychlý, Ph.D.
Přístup studenta k řešení práce považuji za nadstandardní a navrhuji hodnotit práci stupněm velmi dobře (B).
Cílem práce bylo umožnit vývoj pro platformu Arduino v jazyce Rust s využitím systému PlatformIO pro jazyk C/C++. Právě propojení uvedených technologií s přihlédnutím k efektivitě vývoje i výsledných binárních obrazů vyvíjeného softwaru bylo obtížným aspektem práce. Zadání považuji za splněné.
Práce byla dokončena včas a její výsledná podoba byla rámcově konzultována.
Student se s prací účastnil soutěže Excel@FIT. Výsledky byly zveřejněny jako open source.
Při získávání studijních materiálů postupoval student samostatně.
Student svůj postup, případné problémy i průběžné výsledky pravidelně konzultoval. Na konzultacích byl připraven a dohodnuté termíny dodržel.
Grade proposed by supervisor: B
Reviewer’s reportIng. Zbyněk Křivka, Ph.D.
Vytvoření nástrojů pro vývoj v Rust pro vestavěná zařízení velmi oceňuji a přišlo mi, že mohl student v textu svou práci lépe "prodat" a lépe zasadit do širšího kontextu včetně případné kritiky či chvály vlastního řešení. Hodnotím lepším stupněm C.
Evaluation level: zadání splněno
Evaluation level: splňuje pouze minimální požadavky
Rozsah práce je nepatrně nad minimálními požadavky (cca 60 normostran) a obsahuje také několik autorských diagramů pro přístupnější popis návrhu.
Text je logicky strukturován, ale občas se najdou nějaké záludnosti jako například odkazování se uvnitř sekce na tutéž sekci pomocí číselného odkazu (např. sekce 2.1 a 3.3). Dále mi chybělo více detailů v sekci 2.6. Popis pod obr. 3.3 a samotný obr. 3.3 se mi zdají nekonzistentní.
Všeobecně je text psán docela stroze a občas by bylo vhodné napsat i důvody, proč něco nevzniklo, nebo vzniknout nemohlo.
V textu byly drobné systematické prohřešky jako psaní určitého členu před vlastními jmény (např. the TypeState Pattern, the chapter 3), používání zkrácených hovorových výrazů (např. can't, it's), několik překlepů.
Jednak pramenů není mnoho, což může být dáno i okrajovým zaměřením práce. Co je horší, nedošlo ke kontrole vysázení pramenů z BibTeXu, takže jsou v sekci Bibliography chyby v autorech způsobené nevhodným zkrácením částí jmen a také ve způsobu psaní velkých písmen v názvech (inkonzistence u [9] a [12]).
Zdrojový text je dle zadání zveřejněn na Github, což lze zjistit dle přiloženého README, ale je škoda, že v licenčních souborech, ani v záhlaví zdrojových souborů není jasně uvedené autorství studenta. Předpokládám tedy, že je student autorem všech zdrojových souborů (pár výjimek je dle záhlaví generováno). Kód je vhodně komentován i strukturován.
Student oponentovi demonstroval překlad jednoduché aplikace v Rustu (čidlo teploty a vlhkosti) a její nahrátí do desky. Vše pěkně fungovalo a využitelnost je tedy reálná, ale otázkou je, zda bude vše takto bez problémů i pro složitější aplikace, kde se nyní často naráží na chybějící ovladače apod.
Evaluation level: průměrně obtížné zadání
Student se musel seznámit se zavedeným způsobem vývoje pro Arduino i s novým způsobem vývoje pomocí jazyka Rust pro Arduino, kde je ještě řada cestiček neprošlapaných.
Grade proposed by reviewer: C
Responsibility: Mgr. et Mgr. Hana Odstrčilová