Contattataci

Struttura del corso

Introduzione allo sviluppo con Rust in contesti embedded

  • Panoramica su no_std, core e l'ecosistema di Rust per il mondo embedded.
  • Scelta della piattaforma target e comprensione delle triple target utilizzate.
  • Configurazione iniziale di rustup, Cargo e le toolchain specifiche per il target.

Tooling, fasi di build e workflow di debug

  • Utilizzo di strumenti come Cargo, cargo-embed, probe-run ed OpenOCD.
  • Flashatura e debugging tramite dispositivi hardware come ST-Link e JLink.
  • Aspetti legati alla CI nella compilazione del firmware Rust per ambienti embedded.

Abstrazione hardware e accesso alle periferiche

  • Comprensione dei trait definiti da embedded-hal e dei modelli di implementazione dei driver.
  • Gestione delle librerie PAC (Peripheral Access Crates) nonché degli strumenti svd2rust.
  • Sviluppo e integrazione di driver hardware, oltre all'uso di pacchetti specifici per la scheda di sviluppo (BSCs).

Sicurezza della memoria, concorrenza e requisiti in tempo reale

  • Modelli di programmazione sicuri per la gestione condivisa dello stato e dei riferimenti mutabili in presenza di interruzioni.
  • Uso di RTIC ed altri approcci per gestire correttamente la concorrenza in sistemi real-time.
  • Utilizzo ottimale dello stack e della memoria heap, scelta degli allocator e tecniche per evitare l'allocazione dinamica.

Gestione degli errori, testing e affidabilità del codice

  • Teoriche ed implementazioni consigliate nella gestione degli errori in ambienti a risorse limitate.
  • Differenze tra i test unitari eseguiti sul PC e quelli integrativi effettuati sull'hardware stesso.
  • Analisi delle anomalie, logging efficace e strategie di analisi post-fallimento del sistema.

Ottimizzazione delle prestazioni, consumo energetico e risorse

  • Tecniche di benchmarking e ottimizzazione dei frammenti critici del codice.
  • Metodi per ridurre le dimensioni binarie oltre alle impostazioni configurabili nei file linker script.
  • Strategie mirate alla gestione efficiente dell'energia e progettazione di sistemi ad alto risparmio energetico.

Distribuzione, sicurezza e buone pratiche dell'ecosistema Rust

  • Sicurezza avanzata nella distribuzione: boot protetto, firma del firmware e metodi per gli aggiornamenti.
  • Valutazione degli aspetti relativi alla catena di approvvigionamento software ed alle dipendenze.
  • Percorso consigliato per la transizione dai programmi scritti in C verso Rust, nonché i principali risorse comunitarie a disposizione.

Considerazioni conclusive e prossimi passi

Requisiti

  • Conoscenza dei concetti fondamentali di Rust: ownership, borrowing, lifetime.
  • Esperienza nella scrittura di programmi Rust non banali (livello intermedio).
  • Conoscenza di nozioni base relative allo sviluppo embedded: I/O mappato in memoria, interruzioni e periferiche.

Pubblico target

  • Ingegneri di firmware embedded intenzionati ad utilizzare Rust.
  • Sviluppatori software con esperienza in Rust che intendono dedicarsi a sistemi a basso livello.
  • Responsabili tecnici interessati a valutare l'adozione di Rust per lo sviluppo di prodotti embedded.
 14 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (1)

Corsi in Arrivo

Categorie relative