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
 14 ore

Numărul de participanți


Pret per participant

Mărturii (5)

Cursuri viitoare

Categorii înrudite