Czy można uruchomić Linuksa na Arduino? Jeśli tak, jakie kroki i ograniczenia należy wziąć pod uwagę? Jeśli nie, jakie ograniczenia temu zapobiegają?
Czy można uruchomić Linuksa na Arduino? Jeśli tak, jakie kroki i ograniczenia należy wziąć pod uwagę? Jeśli nie, jakie ograniczenia temu zapobiegają?
Odpowiedzi:
Linux jest bardzo złożonym systemem operacyjnym, ale może być w stanie zmieścić się na Arduino. Rzeczy do rozważenia:
Krótko mówiąc, zajęłoby to dużo czasu i wysiłku i prawdopodobnie byłoby zbyt wolne do codziennego użytku. Jeśli naprawdę chcesz Arduino Linux, sprawdź Yún.
Po prostu nie ma wystarczającej ilości pamięci RAM. Musisz także nauczyć go uruchamiania z pamięci flash, co wiązałoby się z przepisaniem bootloadera.
Zamiast tego możesz użyć Arduino Yun lub PCDuino ; chociaż nie są „standardowymi” Arduino, obsługują one tarcze Arduino i działają pod Linuksem.
Lub zawsze jest Raspberry Pi .
Krótka odpowiedź brzmi: nie.
Zasadniczo potrzebujesz DUŻO więcej pamięci RAM niż natywnie nawet największa ATmega.
Jest to teoretycznie możliwe dodanie urządzeń zewnętrznych i zaprogramować ATmega naśladować mocniejszy procesor i uruchomić Linuksa na tym. Jednak na zwykłym arduino nie jest to możliwe.
O wiele bardziej realistyczne byłoby uruchomienie Linuksa na Arduino Due, który jest w zasadzie procesorem AT91SAM3X8E. Jednak nadal będziesz musiał dodać trochę dodatkowej pamięci SRAM i pamięci.
Są rzeczy takie jak Arduino Yun, ale tak naprawdę jest to całkowicie oddzielny moduł linux na tej samej płytce drukowanej co ATmega32U4, więc nie wiem, czy naprawdę można to zaliczyć do arduino.
Być może istotne: czego potrzeba, aby uruchomić wbudowany system Linux?
Istnieje płyta o nazwie pcDuino, która może obsługiwać wiele wariantów Linuxa, takich jak Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (aby wymienić tylko kilka). Ta płyta nie jest natywnym Arduino, a raczej Arduino AtHeart , i jest wykonana przez LinkSprite .
Arduino ma kilka płyt, które obsługują wersję Linuksa o nazwie Linino :
Ma to kilka lat, ale może bardziej istotne, ponieważ Arduinos mają więcej pamięci RAM i 32-bitowe AVR ATMega itp. Istnieje oczywisty problem, szczególnie nie w najpopularniejszej odpowiedzi tutaj. Arduino korzysta z MIKROKONTROLERA AVR, a nie MIKROPROCESOR. Jest to główny powód, dla którego nie ma portu w systemie Linux. Mikrokontrolery są zaprojektowane do wykonywania określonych zadań, w aplikacjach, w których związek wejścia i wyjścia jest dobrze zdefiniowany. Mikroprocesory są zaprojektowane do uruchamiania różnych aplikacji w systemach operacyjnych. Pamiętaj, że od samego początku Linux potrzebował jednostki zarządzania pamięcią i nie mógł działać na komputerach 8088 lub 286. Potem był μClinux, który pierwotnie był skierowany do rodziny wbudowanych procesorów 688 Motorola DragonBall dla Palm Pilots. Nigdy nie był szczególnie udany. Możesz mieć więcej sukcesów w przenoszeniu FreeDOS lub nawet Minixa niż Linux, może coś w asemblerze, ale kompilacja systemu operacyjnego na mikrokontrolerze jest bardzo niepraktyczna. Być może jest to trudny problem akademicki,
Jest to możliwe, ale byłby to problem, ponieważ musiałbyś napisać go w C. (nie wspominając o dodatkowym sprzęcie potrzebnym, takim jak osłona karty SD i dodatkowe układy pamięci). Coś jak Ontas, jądro, w którym napisałem C dla arduino, pomogłoby, ponieważ ma obsługę dodawania sterowników, kosztem spowolnienia powtarzania funkcji pętli próżni. (To nie jest tak wielka okazja, jak mogłoby się wydawać) (Ontas jest wciąż w fazie rozwoju i ciągle dodawane są nowe funkcje)
Kliknij tutaj, aby uzyskać link do pliku .ino i towarzyszących mu plików .h