Bachelor Thesis BCLR-2022-83

BibliographyPflugfelder, Christian: Asynchronous programs on IoT devices.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Bachelor Thesis No. 83 (2022).
51 pages, english.

The ESP32 is a system-on-chip series developed by Espressif Systems. The chips are low-cost, have low power consumption, many connectivity options, and integrated Wi-Fi. Therefore, they are often used for IoT applications. The development framework distributed by Espressif Systems is largely based on C, so many applications are developed using C and C++. However, other programming languages can also be used on the ESP32. The ESP32 is often used in environments where it must respond to network or environmental events. Asynchronous programming is well suited for such an event-driven context. This thesis investigates how asynchronous programming can be implemented on the ESP32 with different programming languages (C, C++, Rust, Lua, and Python) and the possible limitations. For this purpose, an asynchronous web server is developed with each language. The performance characteristics such as memory consumption, response time, and the maximum number of parallel connections are compared. It is also examined how easy it is to implement asynchronous programs using the concepts supported by the different languages. The performance comparison shows that using operating system threads consumes significantly more memory than asynchronous programming with a runtime. Thus, runtimes are the better option in a context where many network connections are used in parallel. It also shows that the async/await pattern allows easy programming and much more compact code than callbacks.

Full text and
other links
Department(s)University of Stuttgart, Institute of Formal Methods in Computer Science, Algorithmic
Superviser(s)Funke, Prof. Stefan; Bahrdt, Dr. Daniel
Entry dateMarch 16, 2023
   Publ. Computer Science