W poprzednim artykule (wydanie numer 6/2018 (73)) opisałem podstawowe instrukcje arytmetyczne, logiczne oraz warunkowe realizowane przez rdzeń Cortex-M0. Przedstawiłem także sposób uruchamiania wybranych peryferiów oraz konfigurację środowiska programistycznego. Dzisiaj chciałbym bardziej skupić się na samym rdzeniu i omówić implementację stosu oraz działanie podprogramów i przerwań. Opisane eksperymenty, tak jak poprzednio, mogą być wykonane na platformie Nucleo-F031K6.
Tym razem chciałbym wraz z czytelnikami zabawić się w „full-stack developera”. Zaczniemy od znalezienia odpowiednich części, a następnie zaprojektujemy i wykonamy własne urządzenie podłączane do portu USB. Krok po kroku skomunikujemy się ze sterownikiem za pomocą podstawowych programów dostępnych w konsoli Linuxa, a na końcu stworzymy minimalistyczny, ale funkcjonalny graficzny interfejs użytkownika w języku Python.
W poprzednich artykułach (numery 6/2018 (73) i 7/2018 (74)) opisałem działanie mikrokontrolerów z rdzeniem ARM Cortex-M0 oraz przedstawiłem sposób ich programowania w asemblerze. Jednak tworzenie większych projektów w tym języku jest raczej mało praktyczne, dlatego postanowiłem przedstawić krok po kroku, w jaki sposób skompilować i uruchomić programy napisane w języku C. Opisane eksperymenty, tak jak poprzednio, mogą być wykonane na platformie Nucleo-F031K6.
EtherCAT nie pochodzi od angielskiej nazwy bardzo popularnego w sieci stworzenia, czyli kota domowego (łac. felis catus), ale jest rozwinięciem angielskiego skrótu Ethernet for Control Automation Technology, co można przetłumaczyć jako „Ethernet dla technologii sterowania i automatyzacji”. Jest to sprytna modyfikacja protokołu Ethernet dostosowująca go do potrzeb sieci przemysłowych. Chciałbym przedstawić kilka eksperymentów, które pozwolą czytelnikom zapoznać się z podstawowymi zasadami jego działania.
Sieć Ethernet stanowi obecnie jeden z najbardziej popularnych sposobów przesyłania danych. W tym artykule przyjrzymy się połączeniu pomiędzy warstwą fizyczną a warstwą łącza danych, wykorzystując do eksperymentów układ FPGA. Najpierw za pomocą wbudowanego w środowisko programistyczne analizatora stanów logicznych zaobserwujemy przebiegi na magistrali RMII, a następnie, korzystając z wcześniejszych obserwacji, zaimplementujemy własną obsługę połączenia z prędkością 100 Mb/s.
Układy FPGA zyskują coraz większą popularność. W poniższym artykule zapoznamy się z ich wewnętrzną budową, a także zastanowimy, do jakich zastosowań mogą być przydatne. Ponadto przyjrzymy się przykładowemu urządzeniu, w których układy te zostały wykorzystane.
ARM Cortex-M0 jest najmniejszym mikrokontrolerem z rodziny ARM. Jego główne obszary zastosowania to drobna elektronika użytkowa oraz czujniki dla internetu rzeczy. Postaram się przedstawić trzy przykładowe programy, które powinny pomóc rozpocząć zabawą z tym sprzętem. Aby poznać go bliżej, programy przygotowano w języku asembler. Z tego powodu tekst może okazać się także interesujący dla osób, które chciałyby przyjrzeć się trochę dokładniej, jak działają współczesne mikrokontrolery.
Utarło się, iż za przetwarzanie pakietów odpowiedzialny jest stos sieciowy będący częścią systemu operacyjnego. Jednak istnieje też alternatywne rozwiązanie, polegające na obsłudze ruchu w przestrzeni użytkownika. Jednym z narzędzi służącym do tego celu jest framework DPDK. W artykule postaram się przedstawić sposób uruchomienia demonstracyjnej aplikacji test-pmd i generatora pakietów pktgen-dpdk oraz tworzenie własnego programu realizującego dekapsulację tunelu IP.
Najszybszym i najprostszym sposobem rozpoczęcia przygody z Raspberry Pi jest uruchomienie gotowego obrazu karty SD, który można pobrać ze strony producenta. Ponieważ jednak nie dla wszystkich komputerów wbudowanych taka opcja jest dostępna, warto zobaczyć, w jaki sposób można utworzyć swoją dystrybucję. Pozwoli to na lepsze zrozumienie działania systemu operacyjnego.