L'obiettivo della tesi è di presentare un'analisi comparativa tra la programmazione tradizionale C, basata sulla gestione diretta degli interrupt, e la moderna programmazione asincrona in Rust nel contesto dei sistemi embedded, prendendo come caso studio il software di controllo motore in una Vehicle Control Unit di una vettura di Formula Student basata sull'architettura Tricore. Lo studio inizia fornendo una panoramica introduttiva del contesto applicativo e dei suoi requisiti. Successivamente, approfondisce i paradigmi tipici della programmazione embedded in C, evidenziandone l'uso diffuso nei sistemi embedded in attualmente produzione ed esaminando il suo approccio alla gestione degli interrupt, della memoria e della struttura del programma. La ricerca si sposta poi su Rust, investigando le sue peculiarità che permettono di fornire garanzie aggiuntive sulla corretta gestione della memoria. In seguito viene studiata l'implementazione "dietro le quinte" dell'infrastruttura necessaria per la realizzazione di software asincrono e i benefici rispetto ad un'architettura tradizionale, nonché la complessità aggiuntive. Un caso di studio sull'implementazione del software di controllo per una vettura Formula Student serve come base pratica per questo confronto. La tesi dettaglia il processo di sviluppo, le sfide incontrate e i pregi le carenze di entrambe le implementazioni in C e in Rust. Il nucleo dell'analisi si concentra sul confronto di questi due approcci attraverso diversi ambiti chiave: - Esperienza di sviluppo e curva di apprendimento - Qualità del codice, manutenibilità e sicurezza - doneità per sistemi embedded real-time Infine, la tesi trae conclusioni sui punti di forza e di debolezza di ciascun approccio nel contesto dello sviluppo di moderni sistemi embedded, fornendo inoltre spunti su future ricerche per valutare in maniera più approfondita il potenziale futuro di Rust nei sistemi embedded.

Confronto tra C Bare-Metal e Rust Asincrono in un'Applicazione Embedded Real-Time

PRANDIN, TOMMASO
2023/2024

Abstract

L'obiettivo della tesi è di presentare un'analisi comparativa tra la programmazione tradizionale C, basata sulla gestione diretta degli interrupt, e la moderna programmazione asincrona in Rust nel contesto dei sistemi embedded, prendendo come caso studio il software di controllo motore in una Vehicle Control Unit di una vettura di Formula Student basata sull'architettura Tricore. Lo studio inizia fornendo una panoramica introduttiva del contesto applicativo e dei suoi requisiti. Successivamente, approfondisce i paradigmi tipici della programmazione embedded in C, evidenziandone l'uso diffuso nei sistemi embedded in attualmente produzione ed esaminando il suo approccio alla gestione degli interrupt, della memoria e della struttura del programma. La ricerca si sposta poi su Rust, investigando le sue peculiarità che permettono di fornire garanzie aggiuntive sulla corretta gestione della memoria. In seguito viene studiata l'implementazione "dietro le quinte" dell'infrastruttura necessaria per la realizzazione di software asincrono e i benefici rispetto ad un'architettura tradizionale, nonché la complessità aggiuntive. Un caso di studio sull'implementazione del software di controllo per una vettura Formula Student serve come base pratica per questo confronto. La tesi dettaglia il processo di sviluppo, le sfide incontrate e i pregi le carenze di entrambe le implementazioni in C e in Rust. Il nucleo dell'analisi si concentra sul confronto di questi due approcci attraverso diversi ambiti chiave: - Esperienza di sviluppo e curva di apprendimento - Qualità del codice, manutenibilità e sicurezza - doneità per sistemi embedded real-time Infine, la tesi trae conclusioni sui punti di forza e di debolezza di ciascun approccio nel contesto dello sviluppo di moderni sistemi embedded, fornendo inoltre spunti su future ricerche per valutare in maniera più approfondita il potenziale futuro di Rust nei sistemi embedded.
2023
Comparison between Bare-Metal C and Asynchronous Rust in a Real-Time Embedded Application
Embedded
Rust
Real-time
File in questo prodotto:
File Dimensione Formato  
Prandin_Tommaso.pdf

accesso aperto

Dimensione 17.92 MB
Formato Adobe PDF
17.92 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/76168