W tym artykule zajmiemy się przygotowaniem modułu Linux „Hello World” na Raspberry Pi. Przy okazji przejdziemy przez proces kompilacji natywnej oraz kompilacji skrośnej. Jeśli jednak nie czytałeś wcześniej artykułu Programowanie sterowników urządzeń w Linux – jak zacząć?, a dopiero zaczynasz przygodę z programowaniem modułów/sterowników Linux to zacznij od niego.… Czytaj dalej
Programowanie sterowników urządzeń w Linux – jak zacząć?
Tym postem zaczynamy na blogu niemałą rewolucję 🙂 Dotychczas skupialiśmy się głównie na mikrokontrolerach, teraz przechodzimy na większe platformy i zaczynamy przygodę z Linuxem. Na pierwszy ogień weźmiemy zagadnienie programowania modułów i sterowników. W artykule przybliżę czym są sterowniki i moduły w Linux, jak można zacząć z ich programowaniem, a na końcu skompilujemy i uruchomimy pierwszy kernelowy „Hello World”!
… Czytaj dalej
Kurs FreeRTOS #6: obsługa przerwań
Programując systemy wbudowane bardzo często musimy reagować na jakieś zdarzenia – pojawienie się zbocza, zakończenie pomiaru czy nadejście danych. Można w tym celu zastosować pooling i ciągle sprawdzać występujące stany, ale tego staramy się unikać. Alternatywą jest wykorzystanie przerwań, co w embedded jest codziennością. Czas pokazać jak wygląda ich obsługa w systemie FreeRTOS 🙂 Przy okazji opiszę semafory zliczające i rozwinę temat semaforów binarnych – tym razem wykorzystamy je do synchronizacji zadań z przerwaniami.… Czytaj dalej
Kurs FreeRTOS #5: semafory
Dzisiaj zajmiemy się czymś zupełnie nowym – semaforami! 🙂 Możliwe, że już kiedyś obiło Ci się o uszy takie pojęcie. Jeśli tak to nic dziwnego. Semafory nie są narzędziem dostępnym tylko we FreeRTOSie. Znajdziesz je w każdym wielozadaniowym systemie operacyjnym. Potwierdza się to o czym mówiłem w pierwszym poście z tej serii – zdobytą w tym kursie wiedzę będziesz mógł łatwo przenieść na inne systemy, ponieważ wykorzystywane są w nich takie same mechanizmy 🙂 Dzisiejszy post ma rolę wprowadzającą do semaforów, rozwijany będzie jeszcze w kolejnych wpisach przy okazji opisywania innych zagadnień.… Czytaj dalej
Kurs FreeRTOS #4: zadania i priorytety – dodatkowe przykłady
W tym poście postaram się dokładnie zobrazować informacje przedstawione w poprzednim wpisie. Myślę, że ten artykuł rozwieje wszelkie wątpliwości. Utworzymy kilka zadań, zajmiemy się priorytetami, na przykładach zobaczymy jak wygląda przełączanie kontekstu oraz wykorzystamy funkcje typu Hook. Ponadto, nauczysz się jak przekazywać parametry do zadań oraz dowiesz się czym jest zagłodzenie zadania. Zahaczymy także o makra Trace Hook służące do śledzenia i analizy zachowania systemu FreeRTOS.… Czytaj dalej
Protokół MQTT #3: implementacja klienta
Przyszedł czas na implementację klienta MQTT, a dokładnie publishera. Jak wiadomo z poprzedniego wpisu wykorzystamy w tym celu bibliotekę Paho MQTT Client napisaną w języku C.… Czytaj dalej
Protokół MQTT #2: Paho Client
Jak wiadomo z poprzedniej części w modelu publish/subscribe występują dwa podstawowe elementy, pomiędzy którymi przesyłane są wiadomości. Są nimi klienci i broker. W naszym przypadku broker będzie zawsze gotowym rozwiązaniem, zainstalowanym gdzieś na komputerze albo udostępnionym w chmurze (np. Microsoft Azure, AWS), z którym będziemy się po prostu łączyli. Nie ma potrzeby i sensu stawiania go na niewielkim mikrokontrolerze. Z naszego punktu widzenia najbardziej interesujący jest klient i nim zajmiemy się w tym oraz następnych wpisach.… Czytaj dalej
Protokół MQTT #1: zasada działania
Tym wpisem rozpoczynamy serię na temat bardzo popularnego w IoT i M2M protokołu o nazwie MQTT. Jeśli interesujesz się koncepcją Internetu Rzeczy to pewnie już ta nazwa obiła Ci się kiedyś o uszy. Jeśli nie, to na pewno warto się z tym terminem zapoznać i teraz masz ku temu idealną okazję 🙂 Na początku przedstawię trochę teorii, a następnie wykorzystamy protokół w praktyce.… Czytaj dalej
Kurs FreeRTOS #3: zadania i priorytety
Dzisiaj stworzymy w końcu pierwsze zadanie i będziemy mieli naoczny efekt naszej pracy – mikrokontrolerowy „Hello World”, czyli migającą diodę. Zapowiada się bardzo dużo konkretnych i istotnych informacji, dlatego nie przedłużam – bierzemy się do pracy! 😉… Czytaj dalej
Kurs FreeRTOS #2: pierwszy pusty projekt
W tej części zajmiemy się stworzeniem pierwszego pustego projektu, na którym będziemy potem bazować. No to do dzieła 😉… Czytaj dalej