Grazie per aver inviato la tua richiesta! Uno dei nostri team membri ti contatterà a breve.
Grazie per aver inviato il tuo prenotazione! Uno dei nostri team membri ti contatterà a breve.
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
Recensioni (1)
Essere in grado di richiedere argomenti avanzati anche se non erano stati pianificati inizialmente.
Gabriel Chouinard - Spark Microsystems
Corso - FreeRTOS: Programming for Real Time Operating Systems
Traduzione automatica