Return to search

Jämförelse av C och Rust i en inbyggd miljö : Implementationer av ett trådlöst styrsystem / Comparison of C and Rust in an embedded environment : Implementations of a wireless control system

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.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kau-99844
Date January 2024
CreatorsSätterman, Viktor, Nygren Karlsson, Arwid
PublisherKarlstads universitet, Institutionen för matematik och datavetenskap (from 2013)
Source SetsDiVA Archive at Upsalla University
LanguageSwedish
Detected LanguageEnglish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0016 seconds