Bachelor's Thesis

Multi-Platform Library for Remote Procedure Calls in Embedded Systems

Final Thesis 758.48 kB

Author of thesis: Kryštof Samek

Acad. year: 2025/2026

Supervisor: Ing. Josef Strnadel, Ph.D.

Reviewer: Ing. Rostislav Husa

Abstract:

This thesis presents the design and implementation of a~cross-platform library for remote procedure calls (RPC) in embedded systems. The goal is a~small, configurable, and portable C library deployable on ARM Cortex-M microcontrollers, ESP32 SoCs, and host platforms without modifying the core. The implementation is referred to as uRPC and is characterised by a~strictly layered architecture, the complete absence of dynamic memory allocation, a~stub generator from a~compact IDL, and four distribution paths (CMake, ESP-IDF component, PlatformIO, vendor IDE). The library supports both streaming transports (UART, USB-CDC) and transactional transports (SPI, I\textsuperscript{2}C). Experimental evaluation shows that the minimal configuration occupies approximately 4\,kB of \texttt{.text} on Cortex-M0+ and that the typical round-trip latency over UART at 115\,200~baud is around 1{,}3--1{,}4~ms.

Keywords:

remote procedure call, RPC, embedded systems, microcontroller, ARM Cortex-M, ESP32, STM32, CMSIS, cross-platform library, IDL, framing, COBS, CRC, C language, no dynamic allocation, MISRA C

Date of defence

18.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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 B.

Topics for thesis defence

  1. Byly testovány argumenty volání a návratové hodnoty typu signed/unsigned 64 bit a IEEE-754 double? (str 22. část 4.2 Funkční požadavky - FR4)
  2. Proč byla cílová hranice pokrytí jednotkovými a integračními testy stanovena na 90%? Je pro danou problematiku dosažitelné 100% pokrytí? (str 22. část 4.3 Nefunkční požadavky - NFR5 - udržovatelnost)

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
doc. Ing. Ondřej Lengál, Ph.D. (místopředseda)
Ing. Marta Jaroš, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)

Supervisor’s report
Ing. Josef Strnadel, Ph.D.

S přihlédnutím k



  • větší náročnosti zadání,

  • evidentní, vedoucímu však až do termínu odevzdání skryté, motivaci a snaze studenta o kvalitní zpracování daného tématu, 

  • zadání splňujícímu, kvalitnímu, prakticky využitelnému, důkladně otestovanému a kriticky zhodnocenému řešení,


navrhuji



  • ohodnotit, kvůli prakticky nulové, tj. nepříkladné až nevyhovující, komunikaci s vedoucím, jinak nadprůměrně kvalitní, až výbornou a oceněníhodnou práci studenta stupněm B

  • navrhnout studenta na některé z dostupných ocenění.

Evaluation criteria Verbal classification
Informace k zadání
  • Zadání považuji za náročnější - sice stavělo na vědomostech, dovednostech a praktických zkušenostech z předmětů běžného studia na FIT VUT, tyto si však student musel rozšířit o nutnost zvládnutí problematiky návrhu abstrakční vrstvy a vývoje a multiplatformní knihovny.
  • Za stěžejní považuji body 35, za důležitý také bod 6 zadání. Vzhledem k, dokonce nadprůměrně, až výjimečně, kvalitnímu, splnění těchto bodů považuji zadání za splněné.
Práce s literaturou

Student prokázal schopnost samostatně využívat vedoucím doporučené i vlastním úsilím nalezené informační zdroje související s řešeným tématem, mj. orientovat se v nich, čerpat z nich a vhodně využívat informace v nich obsažené k řešení daného tématu.

Aktivita během řešení, konzultace, komunikace

Dané téma začal sice student zpracovávat, řešení však ani průběžně nekonzultoval, ani neinformoval o dílčích pokrocích a dalším směřování řešení. Student pracoval zcela samostatněžádné konzultace neprobíhaly.

Aktivita při dokončování

Výsledek práce studenta (tj. realizační výstup a technická zpráva) mi nebyl vůbec předkládán ke konzultacím ani k nahlédnutí, a to ani průběžně, ani před odevzdáním. O existenci výsledku jsem se dozvěděl až z informačního systému, nicméně jsem byl mile překvapen, že vzniklo nadprůměrně kvalitní a dále využitelné dílo.

Publikační činnost, ocenění

-

Points proposed by supervisor: 85

Grade proposed by supervisor: B

Reviewer’s report
Ing. Rostislav Husa

Práce se zabývá relevatní problematikou v oblasti vestavných systémů a mikrokontrolerů. Analýza existujících přístupů a srovnání navrženého řešení s nimi dostatečně zdůvodňuje, v čem je možný přínos a proč by vyvíjená knihovna, respektive některá její budoucí rozšíření, mohla být legitimní alternativou. Implementace poskytuje požadované základní funkcinality a dává dobrý základ pro jejich další rozvoj. Provedené experimenty naznačují, že požadavky multiplatformnosti a minimalizace režie se daří splnit, byť samotná prezentace těchto výsledků by mohla být realizována lépe.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Zadání považuji za průměrně obtížné, mělo by být zvládnutelné se znalostmi z dosavadního studia a přiměřeným množstvím samostudia v rámci projektu.

Prezentační úroveň technické zprávy

Práce je dobře stukturovaná, její jednotlivé části na sebe logicky navazují, a umožňují čtenáři získat povědomí o problematice, navrženém řešení a jeho zhodnocení.

Negativem je absence jakékoliv vizualizace, ať již přehled struktury modulů, jak vypadá reálný hardware na kterém se testovalo, či grafy k výsledkům performačních testů. Podání jen formou popisů a tabulek citelně ubírá na celkové přehlednosti.

80
Formální úprava technické zprávy

Typografická i jazyková úroveň je veskrze dobrá. I přes (přiznanou) jazykovou kontrolu nástrojem ChatGPT v práci zůstává několik gramaticky nestandardních výrazů, volné alternování mezi anglickou a českou terminologií (byte/bajt apod.), či výraz klocká (předpokládám počeštěné sloveso "clocks").

85
Realizační výstup

Realizačním výstupem je minimalistické implementační řešení úsporně poskytující požadovanou funkcinalitu, doplněné o podrobnou dokumentaci a poměrně robustní sadu jednotkových a integračních testů. Přesně to bylo z povahy práce žádoucí.

Absence podrobnějších komentářů (vč. param a returns) v některých zdrojových kódech se zdá být dostatečně vynahrazena v rámci markdown dokumentace.

Performační testy (experimenty) pro jednotlivé atributy výsledné knihovnou jsou dostatečné pro základní srovnání s existujícím alternativami a představu o možné uplatnitelnosti implementovaného řešení.

85
Využitelnost výsledků

Práce se zabývá dlouhodobě známou problematikou a snaží se navrhout řešení které bude mít vůči existujícím řešením přínosy.

Pro praktickou využitelnost by bylo žádoucí implementovat aspoň některá z rozšíření která autor navrhuje. Stávající rozsah práce poskytuje dobrý základ pro další rozvoj knihovny.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Úvod do řešené problematiky, existující přístupy k jednotlivým podproblémům a zmiňované relevantní standardy jsou v plném rozsahu podloženy relevantními informačními zdroji. Na zdroje je vhodně odkazováno a převzaté zdroje jsou jasně odlišitelné od vlastních výstupů autora.

90
Topics for thesis defence:
  1. Proč byla cílová hranice pokrytí jednotkovými a integračními testy stanovena na 90%? Je pro danou problematiku dosažitelné 100% pokrytí? (str 22. část 4.3 Nefunkční požadavky - NFR5 - udržovatelnost)
  2. Byly testovány argumenty volání a návratové hodnoty typu signed/unsigned 64 bit a IEEE-754 double? (str 22. část 4.2 Funkční požadavky - FR4)
Points proposed by reviewer: 85

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová