Dziękujemy za wysłanie zapytania! Jeden z członków naszego zespołu skontaktuje się z Państwem wkrótce.
Dziękujemy za wysłanie rezerwacji! Jeden z członków naszego zespołu skontaktuje się z Państwem wkrótce.
Plan Szkolenia
Wprowadzenie do Rusta dla systemów wbudowanych
- Przegląd no_std, core oraz ekosystemu Rusta dla systemów wbudowanych
- Wybór celu i zrozumienie potrójnych celów (target triples)
- Konfiguracja rustup, cargo oraz łańcuchów narzędzi dla celu
Narzędzia, proces budowania i debugowania
- Korzystanie z cargo, cargo-embed, probe-run oraz OpenOCD
- Programowanie i debugowanie z wykorzystaniem sprzętowych sond (ST-Link, JLink)
- Zagadnienia CI w kontekście budowania oprogramowania sprzętowego w Rust
Abstrakcja sprzętu i dostęp do peryferiów
- Zrozumienie cech embedded-hal oraz wzorców sterowników
- Pakiety dostępu do peryferiów (PACs) oraz pakiety urządzeń (svd2rust)
- Pisanie i wykorzystywanie sterowników HAL oraz pakietów wsparcia płyt (BSCs)
Bezpieczeństwo pamięci, współbieżność i czas rzeczywisty
- Bezpieczne wzorce dla współdzielonego stanu i mutowalnych referencji w przerwaniach
- RTIC oraz inne modele współbieżności dla systemów czasu rzeczywistego
- Użycie sterty a stosu, alokatory oraz unikanie dynamicznej alokacji
Obsługa błędów, testowanie i niezawodność
- Wzorce obsługi błędów w środowiskach o ograniczonych zasobach
- Testy jednostkowe na hoście a testy integracyjne na sprzęcie
- Analiza błędów, logowanie oraz strategie post-mortem
Wydajność, optymalizacja zasobów i energii
- Testy wydajnościowe, pomiary i optymalizacja krytycznych ścieżek
- Techniki redukcji rozmiaru kodu oraz skrypty linkera
- Strategie zarządzania energią i wzorce projektowe dla niskiego poboru mocy
Wdrażanie, bezpieczeństwo i najlepsze praktyki ekosystemu
- Bezpieczny rozruch, podpisywanie oprogramowania oraz strategie aktualizacji
- Zagadnienia łańcucha dostaw oraz zarządzanie zależnościami
- Plan migracji oprogramowania sprzętowego z C na Rust oraz zasoby społeczności
Podsumowanie i kolejne kroki
Wymagania
- Zrozumienie podstawowych koncepcji Rusta: własność, pożyczanie, czas życia
- Doświadczenie w pisaniu nietrywialnych programów w Rust (średniozaawansowany Rust)
- Znajomość koncepcji systemów wbudowanych: pamięć mapowana na I/O, przerwania, peryferia
Grupa docelowa
- Inżynierowie oprogramowania sprzętowego, którzy chcą zacząć korzystać z Rusta
- Programiści z doświadczeniem w Rust, przechodzący do systemów niskopoziomowych
- Kierownicy techniczni oceniający Rust w kontekście rozwoju produktów wbudowanych
14 godzin
Opinie uczestników (1)
Możliwość zadawania pytań na temat zaawansowanych przedmiotów, nawet jeśli nie były one początkowo planowane.
Gabriel Chouinard - Spark Microsystems
Szkolenie - FreeRTOS: Programming for Real Time Operating Systems
Przetłumaczone przez sztuczną inteligencję