Skocz do zawartości

[Wydarzenie] STM32 Development Ecosystem hands-on workshop - sprawozdanie


Pomocna odpowiedź

Napisano

22 i 23 listopada odbywało się w Krakowie bezpłatne szkolenie z podstaw ekosystemu STM32.

W ramach przygotowania otrzymałem około 2 tygodni wcześniej listę oprogramowania które będzie potrzebne i instrukcję instalacji (która podawała oczywiste kroki, ale nie wersję Javy która jest potrzebna xD).

Całe wydarzenie odbywało się w hotelu Qubus, około 10 minut tramwajem od centrum Krakowa. Plan dnia przedstawiał się następująco:

W praktyce było nieco inaczej, moim zdaniem bardziej sensownie.

Przy wejściu otrzymałem torbę z blokiem A4, ołówkiem i płytką Nucleo-L476RG. Pierwsze 30 minut było poświęcone na upewnienie się że każdy ma komplet narzędzi i pomoc w zainstalowaniu ich dla tych kilku którzy nie mieli. Następnie była prezentacja marketingowa czyli typowe "świat idzie do przodu i my też", w tym kilka ciekawych rzeczy, jak opis nadchodzącej serii H7 oraz integracji z protokołem komunikacji LoRa.

Pierwszym projektem było oczywiście miganie LEDem, zaczynając od utworzenia projektu w CubeMX z poprawnymi ustawieniami pinów, a następnie importowanie wygenerowanego kodu do SW4STM i dopisanie (dosłownie) 2 linii kodu. Ogólnie praktycznie tak samo jak byłoby to zrealizowane w Arduino. Uczestnicy zgadywali nazwy funkcji w zamian za gadżety (splitter do słuchawek mogący też być podstawką do telefonu).

Następnie była przerwa na kawę. Wtedy odpowiadali na wszystkie pytania niezwiązane z prezentacją, można było porozmawiać z innymi, zjeść świetne ciastka i wypić całkiem dobrą kawę.

Później zaczęła się właściwa część kursu, czyli wykorzystanie pełnego ekosystemu.

Najpierw trzeba było zaimportować do CubeMX przygotowany projekt skonfigurowany pod STM32L0 i podążając za instrukcjami przekształcić go do działania z STM32L476RGT6 na płytce. Proces ten jest zaskakująco przyjazny użytkownikowi, z czytelnymi informacjami o różnicach pomiędzy procesorami i napotkanych problemach.

Następnie wczytaliśmy projekt do SW4STM i napisaliśmy prosty kod który za pomocą DMA wysyłał zawartość predefiniowanego bufora do DAC i odczytywał wartość ADC spiętego z nim zworką. Następnie użyliśmy debugera do odczytania danych z tablicy.

Następnie pojawił się opis co dokładnie robi w tle wygenerowany przez CubeMX kod i w jakiej kolejności (bardzo podobne do Arduino IDE w sumie, tylko bardziej rozbudowane z oczywistych powodów).

"wskazówki" wymienione na liście to było "co należy naprawić w domyślnej konfiguracji Eclipse żeby praca była wygodniejsza", z obietnicą że te rzeczy wkrótce będą domyślne.

Następnie był lancz - tartinki i pyszna zupa krem. Kolejna okazja do socjalizacji i zadawania pytań.

Po tej przerwie wróciliśmy do poprzedniego programu generującego i odczytującego sinusa i nauczyliśmy się jak do niego podłączyć debugging w czasie rzeczywistym na dwa różne sposoby - STMStudio oraz SWO podpięte do printf().

Po kolejnej przerwie na kawę rozpoczęła się prezentacja bibliotek niskopoziomowych. W skrócie: nic wartego uwagi hobbystów, nie pełne pokrycie, jakieś dziwne działanie z CubeMX, ale jak już działa to daje bardzo duże zyski w wydajności i objętości kodu. Jak się jest hobbystą to zdecydowanie lepiej kupić szybszy procesor 😉

Następnie zmienili jedną z bibliotek w projekcie z HAL na LL żeby pokazać różnicę, faktycznie zużycie pamięci znacznie spadło.

Ostatnim elementem było "co robimy żeby nasze biblioteki nie były tak złe jak kiedyś". Pokazali proces testowy, przedstawili używane narzędzia analizy statycznej oraz dynamicznej. Ciekawostka: biblioteki są testowane na fizycznych płytkach Nucleo.

Podsumowanie:

➕ Przystępnie podane podstawy

➕ Za darmo, włącznie z płytką

➕ Bardzo dobrze przygotowani i pomocni prelegenci

➕ Dobra organizacja, dodatkowa data ze względu na zainteresowanie

➕ Znacznie lepsze narzędzia niż kilka lat temu

➖ Slajdy w innej kolejności niż w materiałach xD

Jeśli ktoś chce link do materiałów proszę wysłać mi PM.

  • Lubię! 1

Dzięki za opisanie.

Jak byś oceniał przydatność szkolenia patrząc pod kątem np. kursu dostępnego na Forbocie (pomijając darmową płytkę 😉 )? Mam na myśli czy na szkoleniu pojawiły się jakieś dużo cenniejsze/obszerniejsze informacje niż na Forbotowym kursie?

Lukaszm, w sumie to kurs na szybko przeszedł pierwsze, powiedzmy, pięć części Forbotowego kursu F4. Było dużo mniej dogłębnie ale za to byli ludzie którzy na bieżąco pomagali i odpowiadali na pytania.

Tutejszy kurs jest dużo lepszy (nic dziwnego, szkolenie trwa łącznie 5h), ale nie ma ludzi do pomocy.

Moim zdaniem bardzo warto się wybrać, szczególnie biorąc pod uwagę że pewnie zrobią coś takiego na premierę H7, z bajerami jak grafika i świetną, drogą płytką (tak było z F7).

Poza tym można porozmawiać z innymi ludźmi zainteresowanymi tematem i całkiem ciekawie spędzić dzień 😉

Moim zdaniem bardzo warto się wybrać

Jasne, zgadzam się i chętnie wezmę udział przy najbliższej okazji.

Skąd dowiedziałeś się o szkoleniu? Strona ST czy jakaś lista mailowa?

  • 2 tygodnie później...

Również mogę się wypowiedzieć na temat tych szkoleń - są one na bardzo wysokim poziomie jeśli chodzi o przygotowanie prowadzących i przekazywanie wiedzy. Szkoda, że niektóre informacje o trochę poukrywanych opcjach w CubeMx i AC6 nie są jakoś łatwiej dostępne - o kilku rzeczach dowiedziałem się dopiero tam, mimo iż wcześniej już pracowałem z tymi programami. Co do tych nowych bibliotek mam mieszane uczucia - wiadomo, że HAL zrobili zamiast SPL głównie dlatego, że jest to uniwersalna ARMowa biblioteka, ludzie gdy napiszą kod w HALu na procki innej rodziny, a potem się skapną, że na tańszym STMie też zadziała to chętniej przejdą.

Przykład podmiany bibliotek o którym wspominał Chumanista był taki, że dla programu testowego zajmującego chyba 12kB w HALu podmieniliśmy tylko inicjalizację RCC na LL i zyskaliśmy 2 kB miejsca. Efekt powalający, ale LL jest pomiędzy rejestrami, a HALem. Bardziej warto nauczyć się full rejestrów lub samego HALa moim zdaniem.

Widzieliśmy też płytkę z prockiem H7 🙂

dambo, prawdę mówisz.

Ogólnie jak się robi coś profesjonalnie to LL na pewno ma sens.

Ale hobbystycznie szarpanie się z LL jak istnieje HAL i szybsze procesory to troszkę masochizm.

I jedna uwaga o której powiedzieli - HAL zdecydowanie odpada przy aplikacjach gdzie energooszczędność jest kluczowa. Za duży narzut instrukcji w funkcjach, czasy wykonywania itp. Wtedy wychodzi na to, że zalecają tylko na rejestrach, bo LL jest dopiero od niedawna i tylko dla L4 do tej pory.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...