Schița de curs
Începerea cu Rust pentru dispozitive încorporate
- Prezentare a no_std, core și ecosistemului Rust pentru dispozitive încorporate
- Alegerea unei ținte și înțelegerea tripletelor de țintă
- Configurarea rustup, cargo și lanțurilor de unelți pentru ținte
Unelte, flux de lucru de compilare și depanare
- Utilizarea cargo, cargo-embed, probe-run și fluxurilor de lucru OpenOCD
- Flasharea și depanarea cu probe hardware (ST-Link, JLink)
- Considerente CI pentru compilarea firmware-ului Rust încorporat
Abstractizarea hardware-ului și accesul la periferice
- Înțelegerea trait-urilor embedded-hal și a modelor de driveri
- Pachetele de acces la periferice (PACs) și pachetele de dispozitiv (svd2rust)
- Scrierea și utilizarea driverilor HAL și a pachetelor de suport pentru plăci (BSCs)
Siguranța memoriei, concurența și sistemele în timp real
- Modele sigure pentru starea împărtășită și referințele mutabile în interrupții
- RTIC și alte modele de concurență pentru sistemele în timp real
- Utilizarea heap vs. stack, alocatoare și evitarea alocației dinamice
Gestionarea erorilor, testarea și fiabilitatea
- Modele de gestionare a erorilor în mediile cu resurse limitate
- Testarea unitară pe gazdă vs. testarea integrată pe hardware
- Analiza fault-urilor, logging și strategii post-mortem
Performanța, gestionarea energiei și optimizarea resurselor
- Benchmarking, măsurare și optimizarea căilor calde (hot paths)
- Tehnici de reducere a dimensiunii codului și scripturi de linker
- Strategii de gestionare a energiei și modele de design cu consum redus de energie
Implementarea, securitatea și cele mai bune practici ale ecosistemului
- Boot sigur, semnarea firmware-ului și strategii de actualizare
- Considerente privind lanțul de aprovizionare și gestionarea dependențelor
- Drumul pentru migrația firmware-ului C către Rust și resursele comunității
Rezumat și următorii pași
Cerințe
- O înțelegere a conceptelor de bază ale Rust: proprietate, împrumutare, perioade de viață
- Experiență în scrierea programelor Rust non-triviale (Rust intermediar)
- Familiarizarea cu conceptele imbedate: I/O mapată la memorie, interrupții, periferice
Audiență
- Ingineri de firmware imbedat care doresc să adopte Rust
- Ingineri software cu experiență în Rust care se orientează către sisteme la nivel low-level
- Conducători tehnici care evaluează Rust pentru dezvoltarea produselor imbedate
Mărturii (5)
El răspunde la întrebările mele foarte bine explicat.
Khaled Almarzooqi - Beamtrail
Curs - Circuits and Electronics Fundamentals
Tradus de catre o masina
Sean a fost un vorbitor dinamic și exercițiile cu aplicare directă au fost foarte interesante, iar eu pot vedea cum vor fi într-adevăr aplicabile.
Temira Koenig - Yeshiva University
Curs - Raspberry Pi for Beginners
Tradus de catre o masina
Ca instruCTORUL să se ADAPTEZE la nevoile noastre
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Curs - The Yocto Project - An Overview - hands-on
Tradus de catre o masina
Trainerul a fost foarte amabil și bine informat, mergând în plus pentru a explica lucruri pe care nu le știam.
Felix - Microchip Technology Inc
Curs - Embedded C Application Design Principles for Automotive Professionals
Tradus de catre o masina
Căutarea de cunoștințe utile și clarificarea unor lucruri despre care nu erau sigure anterior.
Kenneth Mahoney - University of Glasgow
Curs - Arduino: Programming a Microcontroller for Beginners
Tradus de catre o masina