Tack för att du skickade din fråga! En av våra teammedlemmar kontaktar dig snart.
Tack för att du skickade din bokning! En av våra teammedlemmar kontaktar dig snart.
Varaktighet 14 timmar
Kursplan
Kom igång med inbäddad Rust
- Översikt över no_std, core och ekosystemet för inbäddad Rust.
- Välja mål och förstå måltripler.
- Sätta upp rustup, cargo och målverktygskedjor.
Verktyg, bygge & felsökningssarbetsflöden
- Användning av cargo, cargo-embed, probe-run och OpenOCD-flöden.
- Blåsa in och felsöka med hjälp av hårdvaruprot (ST-Link, JLink).
- Överväganden för CI när det gäller att bygga inbäddad Rust-programvara.
Hårdvaruabstraktion och periferitillgång
- Förstå egenskaper i embedded-hal och drivrutinmönster.
- Krat för periferitillgång (PACs) och enhetskrat (svd2rust).
- Skriva och använda HAL-drivrutiner och boardsupport-krat (BSCs).
Minnessäkerhet, konkurrens & realtid
- Säkra mönster för delat tillstånd och muterbara referenser i avbrott.
- RTIC och andra konkurrensmodeller för realtidssystem.
- Heap vs stack-användning, allocator och undvikande av dynamisk tilldelning.
Felhantering, testning & tillförlitlighet
- Felhanteringsmönster i begränsade miljöer.
- Enhetstest på värdmaskin vs integrationstest på hårdvara.
- Felanalys, loggning och strategier för dödskick.
Prestanda, ström & resursoptimering
- Benchmarkning, mätning och optimering av het vägar.
- Tekniker för att minska kodstorlek och länkskripter.
- Strategier för strömhantering och mönster för lågströmsdesign.
Deployment, säkerhet & bästa praxis inom ekosystemet
- Säker start, signering av programvara och uppdateringsstrategier.
- Överväganden för leveranskedjan och hantering av beroenden.
- Översikt över hur man migrerar C-programvara till Rust och gemenskapsresurser.
Sammanfattning och nästa steg
Krav
- En förståelse för Rusts kärnkoncept: ägande, lån och livstider.
- Erfarenhet av att skriva icke-triviala Rust-program (mellannivå Rust).
- Van vid inbäddade koncept: minnesmappad in-/utmatning, avbrott och periferier.
Målgrupp
- Ingenjörer för inbäddad programvara som vill anta Rust.
- Mjukvaruutvecklare med Rust-erfarenhet som övergår till lågnivåsystem.
- Tekniska ledare som utvärderar Rust för utveckling av inbäddade produkter.
Vittnesmål (1)
Att kunna begära avancerade ämnen även om de inte var planerade från början.
Gabriel Chouinard - Spark Microsystems
Kurs - FreeRTOS: Programming for Real Time Operating Systems
Maskintolkat