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
Iniziare con Rust per Embedded
- Panoramica sull'ecosistema Rust no_std, core e embedded.
- Scelta del target e comprensione delle triple di destinazione.
- Configurazione di rustup, cargo e toolchain per il target.
Tooling, Build e Workflow di Debug
- Utilizzo di cargo, cargo-embed, probe-run e OpenOCD.
- Flashing e debug con probe hardware (ST-Link, JLink).
- Considerazioni CI per la creazione di firmware Rust embedded.
Astrazione Hardware e Accesso alle Periferiche
- Comprensione dei trait embedded-hal e dei pattern di driver.
- Crates di accesso alle periferiche (PAC) e crates di dispositivo (svd2rust).
- Scrittura e utilizzo di driver HAL e crates di supporto alla scheda (BSC).
Sicurezza della Memoria, Concorrenza e Tempo Reale
- Pattern sicuri per lo stato condiviso e i riferimenti mutabili negli interrupt.
- RTIC e altri modelli di concorrenza per sistemi in tempo reale.
- Uso dell'heap rispetto allo stack, allocatori ed evitare l'allocazione dinamica.
Gestione degli Errori, Testing e Affidabilità
- Pattern di gestione degli errori in ambienti con risorse limitate.
- Unit test sull'host vs. test di integrazione sull'hardware.
- Analisi dei fault, logging e strategie post-mortem.
Prestazioni, Energia e Ottimizzazione delle Risorse
- Benchmark, misurazione e ottimizzazione dei percorsi critici.
- Tecniche di riduzione della dimensione del codice e script del linker.
- Strategie di gestione dell'energia e pattern di progettazione per basso consumo.
Deploy, Sicurezza e Best Practices dell'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.
Riassunto e Prossimi Passi
Requisiti
- Comprensione dei concetti fondamentali di Rust: ownership, borrowing e lifetimes.
- Esperienza nella scrittura di programmi Rust non banali (Rust intermedio).
- Conoscenza dei concetti embedded: I/O mappato in memoria, interrupt e periferiche.
Partecipanti ideali
- Ingegneri firmware embedded che intendono adottare Rust.
- Ingegneri software con esperienza in Rust che vogliono passare a sistemi a basso livello.
- Capiprogetto tecnici che valutano 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