Gdańsk Embedded Meetup powraca!

Wznawiamy spotkania Gdańskiego Meetupu Embedded. Pierwsze spotkanie po przerwie odbędzie się we wtorek 4 października o 18:00 w Sztuce Wyboru ul. Słowackiego 19, Gdańsk. Na wydarzenie można zapisać się na meetup.com.

W trakcie spotkania odbędą się dwie prezentacje:

  • 18.00 Szymon Jesionek – „Automotive Embedded Security”
  • 19.20 Krzysztof Malicki, Michał Szymański – „Druga strona medalu, czyli infrastruktura chmurowa do obsługi embedded i IoT”

Będzie też przerwa na pizzę, losowanie eval boardów (koniecznie zapisz się na meetup.com, aby wziąć udział w losowaniu) i przede wszystkim okazja aby spotkać się z programistami embedded z Trójmiasta i okolic.

Kolejne meetupy będą się odbywać w pierwsze wtorki miesiąca (chyba że wypadnie jakieś święto itp.).

A jeżeli chcesz zobaczyć jak wyglądały meetupy przed covidem – możesz sprawdzić:

  • Naszą meetupową grupę, gdzie znajdziesz poprzednie wydarzenia
  • Githuba, gdzie znajdziesz slajdy z poprzednich wydarzeń
  • Kanał YT, gdzie nagraliśmy kilka prezentacji (niestety mieliśmy problemy z dźwiękiem)

Darmowy ebook o TDD w Embedded

Stworzyłem ostatnio ebooka „Jak zacząć z Test Driven Development w systemach embedded”. Możesz go pobrać ze strony tddembedded.pl

Z ebooka dowiesz się między innymi:

  • O co chodzi w TDD i jak może pomóc Ci w codziennej pracy
  • Jaki framework testowy wybrać na początek
  • Jak dostosować TDD do systemów embedded

Opisałem tam również historię jednego projektu, gdzie programowałem sterowniki wentylatorów do klimatyzacji.

Tak więc zapraszam na tddembedded.pl i życzę przyjemnej lektury!

Podsumowanie roku 2021

Niedawno rozpoczął się nowy rok, więc tradycyjnie pora na podsumowanie wydarzeń z roku 2021 i planów na 2022. Podobne podsumowania robiłem też w 2017, 2018 i 2020. Podsumowanie z 2019 zagninęło w akcji 🙂

Zapraszam do lektury!

Continue reading

Obsługa zależności czasowych

Jakiś czas temu otrzymałem na maila takie pytanie:

Czy jest jakaś elegancka metoda, aby zarządzać zdarzeniami czasowymi w systemie?
Generalnie unikamy delay’ów i odnosimy się np. do zegara systemowego. Aby uruchomić daną komendę/operację/funkcję w konkretnym momencie czasowym używamy IF-ów. Sprawa się komplikuje jeśli chcemy powiązać czasowo różne zdarzenia w systemie.

Oto przykład: chcemy aby:
1. Zdarzenie X było realizowane co 2 sekundy,
2. Niezależne zdarzenie Y co 5 sekund
3. Zdarzenie Z 1 sekundę po zdarzeniu X.
 
Czy masz tu jakiś pomysł jak taki cel można zrealizować prościej, z wykorzystaniem jakiegoś tricku, aby kod stał się prostszy i bardziej czytelny?

W dzisiejszym wpisie omówię dwa podejścia do tego tematu – z RTOSem i bez.

Continue reading

Jak zaimplementować obsługę różnych języków w menu?

Czasami tak bywa, że sukces produktu niesie nowe wyzwania dla programistów. Jednym z takich wyzwań może być przetłumaczenie tekstów wyświetlanych w menu na inne języki i obsługa tego w prosty i niezawodny sposób. W dzisiejszym wpisie pokażę jak ustrukturyzować kod zawierający menu i jak łatwo zaimplementować tłumaczenia wykorzystując tablice.

Continue reading

Fragmenty live’ów na YouTube

Ostatnio na swój kanał YouTube zacząłem wrzucać fragmenty live’ów pocięte na krótsze – około 10-minutowe – filmiki. Każde nagranie skupia się na jednym zagadnieniu. Dzięki temu łatwiej będzie po czasie znaleźć interesujące fragmenty bez przeszukiwania całego dwugodzinnego nagrania.

Zapraszam również do zapisu na newsletter, gdzie poza tego typu nagraniami otrzymacie również linki do dodatkowych materiałów i różne opowieści z moich projektów.

Czytelność kodu w embedded

Dlaczego mój kod nie działa?

Książki dla programisty embedded – live na YT

Dzisiaj o 20:00 zapraszam na YT na live o książkach dla programisty embedded:

A w nim odpowiedzi na pytania:

  • Jakie książki wybrać do początkowej nauki?
  • Jakie książki polecam na później?
  • Jakie książki polecam o testach, architekturze, prowadzeniu projektów itd.
  • Jakie do C? A jakie do C++?
  • Jakie o elektronice?
  • Z czego sam się uczyłem?
  • Czy trzeba czytać książki od deski do deski?

Większość książek programistycznych pomija kwestie sprzętowe, a o samym embedded literatura jest dużo uboższa. Dlatego będzie też o tym jak odnosić informacje w książkach do naszej konkretnej sytuacji.

Migracja projektu z STM32 Cube IDE do CMake – live na YT

Problemy z konfiguracją IDE to prawdziwa zmora. Mogą objawiać się na różne sposoby – na przykład:

  • Wiesz jak coś ma działać, ale nie umiesz wyklikać tego w wizardzie.
  • Przenosisz projekt na inny komputer i się nie kompiluje.
  • Chcesz uruchomić kompilację bez instalowania IDE i nie wiesz jak.

Narzędzia się zmieniają, ale problemy pozostają te same. Musimy umieć sobie z nimi radzić.

Dlatego właśnie dzisiaj o 20:00 zapraszam na live na YouTube. Tematem będzie Migracja projektu z STM32 Cube IDE do CMake. A przy okazji pokażę co IDE robią pod maską.

Continue reading

Jak dodać analizę statyczną w CMake?

Języki takie jak C i C++ zakładają, że programista wie co robi i pozwalają mu na wiele. Są bardzo konserwatywne w zgłaszaniu błędów i warningów. Nieraz obraca się to przeciwko programiście, dlatego sami aktywujemy dodatkowe flagi warningów podczas kompilacji i używamy różnych narzędzi do analizy kodu.

Ale do narzędzi takich jak cppcheck czy clang-tidy musimy podać te same pliki źródłowe, include, define co w głównym buildzie. Konfiguracja jest dosyć trudna. Na szczęście system budowania może nam w tym pomóc. W końcu posiada wszystkie informacje przekazywane kompilatorowi. Dzisiaj zobaczymy jak skonfigurować analizę statyczną w CMake.

Continue reading

CMake – automatyczna obsługa podprojektów z gita

W poprzednim odcinku skonfigurowaliśmy sobie większy projekt. Mieliśmy oddzielne targety na poszczególne podprojekty. Dzięki temu dało się na przykład utworzyć bibliotekę statyczną, czy dodać bibliotekę header only. Dzięki odpowiedniej konfiguracji byliśmy w stanie raz skompilować podprojekt i używać go w wielu targetach. Teraz pójdziemy o krok dalej. Nasze podprojekty będą automatycznie ściągane z własnych repozytoriów.

W przykładzie użyje repo na GitHubie, ale równie dobrze można użyć innych systemów kontroli wersji, serwerów, czy nawet lokalnych plików. Zalety takiego rozwiązania w większych projektach są nieocenione. Po pierwsze możemy sensownie zarządzać aktualizacjami zewnętrznych bibliotek, a po drugie możemy tworzyć własne reużywalne biblioteki z aktualizacjami propagowanymi na wszystkie projekty.

Continue reading

© 2022 ucgosu.pl

Theme by Anders NorénUp ↑