Zapraszamy do udziału w kolejnych linuksowych warsztatach organizowanych przez SoMLabs i Elhurt! 

Uczestnicy będą mieli możliwość poznać w praktyce m.in. podstawy tworzenia sterowników dla nowych urządzeń w Linuksie na bazie praktycznych przykładów. Przykłady będą uruchamiane na platformie sprzętowej StarCB-6ULL/StarSOM-6ULL opracowanej i produkowanej przez SoMLabs.

Cel szkolenia

Podczas warsztatów uczestnicy będą mieli możliwość napisania przykładowego kodu sterowników dla urządzeń podłączonych do magistrali I2C.

Poszczególne ćwiczenia zostały przygotowane, tak aby stanowiły kolejne etapy projektu rozwijając obsługę urządzeń o dodatkowe funkcje.

Każdy ze sterowników będzie kompilowany i uruchamiany na platformie StarSOM-6ULL jako moduł jądra, co pozwoli na dynamiczną modyfikację obsługi każdego z urządzeń.

Ćwiczenia będzie można wykonać modyfikując własnoręcznie źródła lub używając gotowych plików zawierających niezbędne zmiany.

 

Warsztaty są przeznaczone dla inżynierów chcących poznać:

  • podstawy pisania sterowników w systemie Linux,
  • sposoby dostępu do urządzenia z kontekstu użytkownika,
  • metody komunikacji z urządzeniem z poziomu aplikacji użytkownika,
  • możliwości modyfikacji device tree dla nowych urządzeń.

Przykłady przygotowane na warsztaty przygotowano z myślą o konstruktorach i programistach chcących pisać własne sterowniki dla urządzeń działających pod kontrolą systemu Linux i modyfikować system na potrzeby tworzenia własnych rozwiązań sprzętowych i programowych.

Udział w warsztatach da inżynierom szansę na pracę ze sprzętem. Będzie można wykonać wiele działań samodzielnie, w praktyce wypróbować konkretne rozwiązania. Warsztaty to też dobra okazja do tego, aby porozmawiać z osobami, które doskonale znają system Yocto. Spotkanie się ze specjalistami, ale też prawdziwymi pasjonatami będzie z pewnością bardzo owocne.”

– Andrzej Moczulski, Starszy Inżynier Aplikacyjny w Elhurt

 

Sprzęt wykorzystywany podczas szkolenia

Warsztaty zostaną przeprowadzone na platformie sprzętowej firmy SoMLabs bazującej na mikroprocesorze NXP i.MX6ULL. Jest to zestaw sprzętowy składający się z:

  • StarSOM-6ULL – moduł SoM z mikroprocesorem i.MX6ULL, pamięcią Flash eMMC, pamięcią RAM DDR3L, interfejsem kablowym Ethernet oraz (opcjonalnie) zintegrowanym modułem radiowym WiFI/BT-BLE,
  • StarCB-6ULL-STD – płyta bazowa (carrier board) zaprojektowana do ewaluacji podstawowych możliwości modułu SoM i zastosowanego w nim mikroprocesora.

Rolę urządzeń peryferyjnych będą spełniać moduły KAmod z interfejsami I2C, wyposażone w: sensor temperatury i sterownik LED. Będą one dołączane do StarCB-6ULL-STD za pomocą przewodów.

Sprzęt niezbędny do wykonania ćwiczeń udostępnią uczestnikom organizatorzy.

 

 

Lokalizacje:

Gdańsk – 3.10.2022

Warszawa – 4.10.2022

Poznań – 5.10.2022

Wrocław – 6.10.2022

Kraków – 7.10.2022

W przypadku dużej liczby zgłoszeń organizatorzy zastrzegają sobie prawo wyboru spośród zgłoszeń osób zapraszanych na warsztaty. W poprzednich latach listy uczestników zapełniały się w bardzo szybkim tempie i niestety nie wszyscy zainteresowani mogli się z nami spotkać.

O wynikach rekrutacji organizator poinformuje kandydatów drogą elektroniczną. Dodatkowe informacje i materiały zostaną przesłane po zakończeniu naboru.

Osoby, które nie zakwalifikują się w pierwszym naborze do udziału w szkoleniu, zostaną umieszczone na liście rezerwowej.

Warsztaty odbędą się w godz. 9.00-15.00 (z przerwami kawowymi i lunchem).

W przypadku ogłoszenia pandemicznych restrykcji warsztaty mogą zostać odwołane lub może zostać zmniejszona liczba uczestników.

Agenda

  1. Wprowadzenie

Podstawy Yocto

  • generacja systemu dla urządzeń SoMLabs
  • omówienie zmian na potrzeby warsztatów
  • programowanie modułu StarSOM

Modyfikacje device tree

  • dodawanie urządzenia do device tree
  • kompilacja plików device tree na platformie StarSOM-6ULL

Sterowniki urządzeń

  • kompilacja i dodawanie modułów jądra
  • tworzenie nowej klasy urządzeń
  • dodawanie nowego urządzenia
  • zapis i odczyt pliku sterownika
  • implementacja wywołań ioctl
  • dostęp do urządzenia z aplikacji użytkownika
  • tworzenie atrybutów sysfs
  • obsługa przerwań GPIO
  • powiadamianie aplikacji za pomocą mechanizmu poll
  1. Warsztaty

Lab #0

  • Kompilacja modułów jądra w systemie Linux.
  • Ładowanie i usuwanie modułów jądra.
  • Instalacja modułów jądra.

Lab #1

  • Tworzenie nowej klasy urządzeń z domyślnymi atrybutami sysfs.

Lab #2

  • Implementacja sterownika urządzenia KAmodPCA9533.
  • Dekompilacja pliku dtb i dodawanie nowego urządzenia w device tree.

Lab #3

  • Implementacja operacji zapisu i odczytu pliku urządzenia.

Lab #4

  • Implementacja wywołania IOCTL dla nowego urządzenia.
  • Używanie wywołań IOCTL w aplikacji użytkownika.

Lab #5

  • Implementacja sterownika urządzenia KAmodLM75A.
  • Implementacja atrybutów sysfs dla urządzenia.
  • Dodawanie nowego urządzenia w device tree.

Lab #6

  • Implementacja przerwania GPIO w sterowniku urządzenia.
  • Implementacja atrybutu sysfs dla wywołania POLL.
  • Konfiguracja przerwania GPIO w device tree.
  • Używanie wywołań POLL w aplikacji użytkownika.

Serdecznie zapraszamy do zapisywania się na wydarzenie!