Skocz do zawartości

Jak zainstalować Linuxa na STM32?


Komentator

Pomocna odpowiedź

html_mig_img
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?

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Genialne!

Nie przypuszczałem że można postawić ubuntu na STM 🙂

Moje 2 pytania:

1) Czy da się w takim razie postawić na tym ROSa? Rozumiem, że ograniczeniem będzie głównie pamięć?

2) Czy dziedzicząc wady systemów operacyjnych, ten również nie będzie zapewniał operacji real-time?

Link do komentarza
Share on other sites

@Kurosz Do Ubuntu jeszcze daleko. Tam jest tylko bootloader (potrzebny do wczytania jądra), jądro Linux (specjalna wersja ucLinux, która działa na urządzeniach bez MMU) oraz busybox (lżejsza wersja podstawowych programów dostępnych w powłoce - ls, cp, mv, itd.).

Ad1) ROS z tego co wiem nie był projektowany na systemy embedded, tym bardziej na tak skromne zasoby. Dodatkowo nie był projektowany by spełniać wymogi systemów czasu rzeczywistego.

Ad2) To kwestia dodatkowych patchy na Linuksa (RT albo Xenomai). Pytanie czy są one kompatybilne z ucLinuksem.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Cześć,

fajny artykuł. Też nie spodziewałem się, że na STM32 uda się uruchomić Linux'a, i to na F4 - raczej myślałbym tu o F7. Mam tylko pytanie odnośnie kompilacji programów dla tego ucLinux'a: pewnie jest dostępny dla niego jakiś kompilator skrośny?

Pozdrawiam

Link do komentarza
Share on other sites

Ten artykuł jest już bardzo stary. ucLinux nie jest już wspierany, to stary i zapomniany projekt.

Ale co ciekawe stm32 jest wspierany bezpośrednio przez kernel Linux-a. Dzięki temu ucLinux nie jest już potrzebny i można użyć zwykłego, najnowszego jądra i uruchomić na F4 lub F7.

Jak chodzi o kompilację, to zwykły gcc (tzn. skrośny gcc) ma opcję generowania kodu na Cortex-M4. Problemem są za to biblioteki - więc najłatwiej samemu skompilować cały obraz systemu, np. używając buildroot-a (https://buildroot.org/). Wtedy dostaniemy system, kompilator, a nawet wtyczkę do Eclipse-a. Tylko na discovery nie ma portu ethernet, więc i tak zbyt wygodnie na tym nie popracujemy 😞

Edytowano przez Elvis
  • Lubię! 2
Link do komentarza
Share on other sites

Faktycznie Elvis! Jak zwykle coś przeoczę - podchwytliwa zagrywka! 😛 Dziękuję za korektę 🙂 Jeśli chodzi o Linuxa, to i sam bym spróbował, szczególnie jak zobaczyłem, że gość na tym zestawie Dooma odpala 😉 Może kiedyś i na nowszym jądrze. Dzięki za wskazówki!

Link do komentarza
Share on other sites

Ponieważ jak wspominałem artykuł jest bardzo stary, taki mały update.

Jądro linuksa ma wsparcie dla stm32f4 oraz stm32f7, dokładniej stm32f429, stm32f469, stm32f746, stm32f769, stm32h743 oraz stm32mp157. Ten ostatni to prawdopodobnie tajemniczy Cortex-A7, o którym STM na razie nie informuje.

Najłatwiej jest używać stm32f429, na tym modelu wszystko zostało najlepiej przetestowane. W przypadku buildroot-a, cała konfiguracja sprowadza się do wybrania stm32f429_disco_defconfig lub stm32f469_disco_defconfig.

Używanie stm32f429-discovery ma dwie wady. Po pierwsze pamięci RAM jest jednak mało - 8MB to w dzisiejszych czasach nic specjalnego (a wirtualnej nie ma). Drugi problem to brak wspomnianego portu ethernet.

Ale za to jest prosto i miło. Poniżej zrzut komunikatów startowych:

2019-01-25-160214_1916x1055_scrot.thumb.png.e7bb3d4b231e241e7d7cd8a27be82958.png

System startuje z wbudowanej pamięci, więc teraz wypadałoby dodać ciekawsze pakiety np. na pamięci flash USB.

Warto przy okazji zwrócić uwagę na czas uruchamiania - 1.2s... właśnie dlatego warto budować własny obraz systemu, domyślne dystrybucje raczej nie mają takich czasów 🙂

  • Lubię! 2
Link do komentarza
Share on other sites

Dziękuje za odpowiedź.

Bardzo ciekawy wynalazek.

Nie mogę się wczytać jak tam wygląda komunikacja między mikroprocesorem a mikrokontrolerem. Ciekawi mnie tez jak z dostępem do gpio bo chyba w większości są przypisane do mikroprocesora.(słabo znam angielski, o technicznym nie wspominając)

Wygląda na alternatywę dla raspbbery pi, w urządzenia iot i nie tylko.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.