Att utveckla pålitlig och säker mjukvara är av stor vikt gällande inbyggda system, och i synnerhet mjukvara som hanterar kritiska tjänster såsom fordonsstyrning. En stor utmaning vid utveckling av inbyggda system är att hantera minnessäkerheten samtidigt som prestandan kvarhålls, ett område där äldre programspråk ofta uppvisar brister som kan leda till säkerhetsrisker och i vissa fall systemkrascher. Denna uppsats undersö- ker möjligheten att använda det relativt nya programspråket Rust i inbyggda system och jämför Rust med det väletablerade språket C. Med hjälp av en mikrokontroller (ESP32-C3-DEVKIT-RUST1), MQTT för kommunikationshantering och de angivna programspråken implementeras en prototyp av ett system för att styra fordon via WiFi. Prototyperna i Rust och C jämförs sedan kvantitativt och kvalitativt. Den kvantitativa jämförelsen fokuserar på prestanda och den kvalitativa jämförelsen på våra upplevelser kring att utveckla systemen i de två programspråken. Resultaten visar på skillnad i den kvantitativa mätningen där C var 15% snabbare samt hade en mer konsekvent exekveringstid. Trots den begränsning givet de bibliotek som finns tillgängligt för Rust anser vi att programspråket är att föredra sett till utvecklingsmiljön, kompilatorn och dokumentation. / To develop reliable and secure software is of great importance regarding embedded systems, and especially software that handles critical functionality such as control systems. A major challange for embedded systems is to manage memory security while maintai- ning performance, an area where older programming languages often show deficiencies that may lead to security risks and in some cases even system crashes. This paper explo- res the possibility to use Rust for embedded systems, and compare this programming language with the already established language C. With the help of a microcontroller (ESP32-C3-DEVKIT-RUST1), MQTT for communication management, and the spe- cified programming languages a prototype of a system for controlling vehicles via Wifi is implemented. The prototypes in Rust and C are then used in a quantitative and qualitative comparison. The quantitative comparison focuses on the performance and the qualitative comparison on the experiences from developing the system in the programming languages. The results shows differencies in the quantitative measurement where C was 15% faster while having a more consistent time of execution. Despite the limitation of available libraries for Rust, we consider the programming language preferable in the terms of environment for development, compiler and documentation.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kau-99844 |
Date | January 2024 |
Creators | Sätterman, Viktor, Nygren Karlsson, Arwid |
Publisher | Karlstads universitet, Institutionen för matematik och datavetenskap (from 2013) |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0025 seconds