Consider atomicity, idempotency, loosely coupling, levels of indirection, modularity, security, location transparency, single source of truth, no single point of failure. The goal of this thesis is to have a bare metal firmware architecture that can be used for IoT devices across the world.
-
Study RTOSes, such as Zephyr, FreeRTOS, Micruim and microkernels, such as Minix, Tinkertoy [1]
-
Design a modular hardware abstraction layer (HAL)
-
Design and implement a light-weight persistent system (a record based or lightweight file based) which takes flash wear into account [2].
-
Design and implement an application layer on top of the communication layer across Wirepas, Bluetooth LE which is secure, supports reliable (acknowledged) connections, and is low-latency.
-
Design and implement a protocol layer with cross-cutting concerns w.r.t. the communication layer (protocol packets over the air) and the representation in persistent memory (e.g. w.r.t. migration of one version to the next).
-
Make sure everything can be tested in isolation as well as end to end using modern frameworks.
In a nutshell, the challenge is to build an lightweight RTOS under severe resource constraints. The footprint of the RTOS should be smaller than anything on the market.
We expect you to be proficient in C/C++, potentially in Rust, have worked with multiple microcontrollers on a low level and expect you to become quickly up-to-date with the most recent research in this field.
References:
[1] Tinkertoy: Build Your Own Operating Systems for IoT Devices (Wang et al.), IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems ( Volume: 41, Issue: 11, November 2022)
[2] ELOFS: An Extensible Low-Overhead Flash File System for Resource-Scarce Embedded Devices (Zhang et al.), IEEE Transactions on Computers ( Volume: 71, Issue: 9, 01 September 2022)
Compensation: This internship is paid.