Struttura del corso
Introduzione a Embedded Rust
- Panoramica di no_std, core e dell'ecosistema di Rust embedded
- Scelta del target e comprensione delle target triples
- Configurazione di rustup, cargo e delle toolchain di target
Strumenti, Workflow di Compilazione e Debug
- Utilizzo di cargo, cargo-embed, probe-run e OpenOCD workflows
- Flashing e debugging con hardware probes (ST-Link, JLink)
- Considerazioni CI per la compilazione del firmware Rust embedded
Astrazione Hardware e Accesso ai Peripheral
- Comprensione delle caratteristiche di embedded-hal e dei pattern driver
- Crates per l'accesso ai peripheral (PACs) e device crates (svd2rust)
- Scrittura e utilizzo di HAL drivers e board support crates (BSCs)
Sicurezza della Memoria, Concorrenza e Sistemi in Tempo Reale
- Pattern sicuri per lo stato condiviso e le referenze mutabili negli interrupt
- RTIC e altri modelli di concorrenza per i sistemi in tempo reale
- Uso della heap vs. stack, allocators e evitare l'allocazione dinamica
Gestione degli Errori, Test e affidabilità
- Pattern di gestione degli errori in ambienti con risorse limitate
- Unit testing sul host vs. test di integrazione sul hardware
- Analisi dei guasti, logging e strategie post-mortem
Prestazioni, Potenza e Ottimizzazione delle Risorse
- Benchmarking, misurazione e ottimizzazione di hot paths
- Tecniche di riduzione della dimensione del codice e linker scripts
- Strategie di gestione dell'alimentazione e design a basso consumo
Distribuzione, Sicurezza e Best Practices per l'Ecosistema
- Secure boot, firma del firmware e strategie di aggiornamento
- Considerazioni sulla catena di fornitura e gestione delle dipendenze
- Roadmap per la migrazione del firmware C a Rust e risorse della community
Riepilogo e Passi Successivi
Requisiti
- Una comprensione dei concetti fondamentali di Rust: proprietà, borrowing, durate della vita
- Esperienza nella scrittura di programmi non banali in Rust (Rust intermedio)
- Familiarità con i concetti embedded: I/O mappati a memoria, interrupt, periferiche
Pubblico di riferimento
- Ingegneri firmware embedded che desiderano adottare Rust
- Ingegneri software con esperienza in Rust che si stanno spostando verso sistemi a basso livello
- Responsabili tecnici che valutano Rust per lo sviluppo di prodotti embedded
Recensioni (5)
Risponde alle mie domande in modo molto chiaro e dettagliato.
Khaled Almarzooqi - Beamtrail
Corso - Circuits and Electronics Fundamentals
Traduzione automatica
Sean era un relatore dinamico e gli esercizi pratici erano molto interessanti. Posso vedere come saranno davvero applicabili.
Temira Koenig - Yeshiva University
Corso - Raspberry Pi for Beginners
Traduzione automatica
Che l'instruttore si adatti alle nostre esigenze
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Corso - The Yocto Project - An Overview - hands-on
Traduzione automatica
Il formatore era davvero gentile e competente, facendo uno sforzo in più per spiegare cose che non conoscevo
Felix - Microchip Technology Inc
Corso - Embedded C Application Design Principles for Automotive Professionals
Traduzione automatica
L'acquisizione di conoscenze utili e la chiarificazione di alcuni aspetti di cui non ero sicuro in precedenza.
Kenneth Mahoney - University of Glasgow
Corso - Arduino: Programming a Microcontroller for Beginners
Traduzione automatica