Mikrokontrolery stają się coraz potężniejsze. Każdy producent stara się wprowadzać nowe, lepsze i tańsze produkty do swojej oferty.
Efekt jest taki, że mikrokontroler może spełniać teraz zadania, które jeszcze niedawno dostępne były tylko dla rozbudowanych mikroprocesorów. Czy STM32 jest poradzi sobie z Linux-em?
Linux staje się coraz popularniejszy, szczególnie w systemach wbudowanych. Raspberry Pi sprawiło, że komputery jednopłytkowe stały się tanie i dostępne właściwie dla każdego. W rzeczywistości malinka to całkiem wydajny komputer, chociaż na małej płytce.
Mikrokontrolery kojarzą się raczej z dużo mniejszymi jednostkami. Przez wiele lat standardem był 8051 oraz jego pochodne, później (właściwie do dzisiaj) standardem stały się mikrokontrolery z rdzeniami AVR. Ostatnio coraz popularniejsze stają się ARM-y, jak chociażby STM32. Są to niewątpliwie mikrokontrolery, ale ich moc obliczeniowa jest naprawdę imponująca.
Pełny Linux do działania wymaga MMU, którego nie znajdziemy w mikrokontrolerach. Okazuje się jednak, że istnieje projekt ucLinux, czyli okrojona wersja Linuxa działająca na układach bez jednostki zarządzania pamięcią.
Jak łatwo się domyślić jej sercem jest mikrokontroler STM32F429. Posiada on aż 2MB pamięci Flash, a dodatkowo na płytce znajdziemy 8MB pamięci RAM, wyświetlacz o rozdzielczości 320x240 oraz trochę innych peryferiów.
Okazuje się że tak niewielka ilość pamięci jest wystarczająca
do uruchomienia okrojonej wersji Linuxa.
Na początek musimy pobrać i skompilować Linuxa. Tutaj wskazane jest abyśmy dysponowali komputerem PC również z Linuxem - będzie nam łatwiej. W repozytorium znajdziemy instrukcje oraz gotowe skrypty. Wystarczy postępować zgodnie z dostępnymi tam poradami.
W przypadku Ubuntu 14.04 można pominąć fragment dotyczący OpenOCD
(dostępna jest aktualna wersja).
Pozostałe etapy przebiegają bez problemu i po pewnym czasie niezbędnym na pobranie u-boota, jądra linuxa, busybox-a oraz ich kompilację możemy przystąpić do programowania płytki.
W tym celu podłączamy płytkę przez USB i wpisujemy make install. Po niecałej minucie zobaczymy ikonkę z pingwinem na ekranie.
Komunikaty są domyślnie wysyłane przez UART, więc potrzebny jest konwerter UART-USB aby rozpocząć zabawę z linuxem. Po jego podłączeniu powinniśmy zobaczyć następujacy rezultat:
Standardowo instalowana jest raptem podstawowa liczba programów - tylko to co niezbędne do działania systemu. Możemy jednak łatwo dodać ich więcej. Pamięci wbudowanej w mikrokontroler jest mało, ale przez USB można podłączyć pendriva, a na nim umieścić co tylko chcemy.
Poniżej przykładowy film z Doom-em działajacym na STM32:
Podsumowanie
Dzisiejsze mikrokontrolery mają imponujące możliwości. Ich moc obliczeniowa może być wręcz porównywana z komputerami PC - w końcu Doom działał kiedyś na komputerach stacjonarnych. Nic dziwnego, ze programowanie oraz biblioteki dostępne na mikrokontrolery są coraz bardziej skomplikowane.
Artykuł ten miał na celu jedynie przybliżenie tematu i pokazania dostępnych możliwości. Mieliście już okazję korzystać z takich rozwiązań? A może chcielibyście przeczytać więcej artykułów o podobnej tematyce? Czekam na Wasze komentarze!
Dołącz do 30 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
To nie koniec, sprawdź również
Przeczytaj powiązane artykuły oraz aktualnie popularne wpisy lub losuj inny artykuł »
Dołącz do 30 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...