Mi kell a Linux fordításához az Arduino-n, ha egyáltalán lehetséges?

Lehetséges Linux futtatása Arduinón? Ha igen, milyen lépéseket és korlátozásokat kell figyelembe venni? Ha nem, milyen korlátozások akadályozzák ezt?

Megjegyzések

Válasz

A Linux nagyon összetett operációs rendszer, de képes lehet arra, hogy elférjen Arduino-n. Fontos szempontok:

  • A forráskódnak nincs aktuális AVR-portja.
  • Nem lenne grafikája, ehelyett az UART-on keresztül érheti el a terminált. li> A fájlrendszer illesztőprogramját át kell írni, hogy hozzáférjen a belső flash-hez vagy egy külső SD-kártyához.
  • rendkívül lassú lenne! Az ATmega328 16 MHz-en, vagy max. 20 MHz-en (túlhajtva) működne. A legtöbb Linux-gép legalább 400 MHz-en, és még több grafikusan fut.
  • Valószínűleg szükséged lenne némi extra RAM-ra, valószínűleg jó ötlet egy ATmega2650 (a Megában lévő) használatához, amelynek 16 -szorozza az Uno RAM-ját. Használhatna egy Due-t is (6x olyan gyorsan, mint az Uno, több RAM).
  • Előfordulhat, hogy speciális USB-illesztőprogramokat kell írnia az OTG (az Due miatt) vagy a MAX3421EE (Mega ADK, USB host pajzs) számára. .

Röviden: sok időt és erőfeszítést igényel, és valószínűleg túl lassú lenne a mindennapi használathoz. Ha nagyon szeretné az Arduino Linuxot, nézze meg a Yúnt.

Megjegyzések

  • Nem tenné ” valószínűleg ” szükségel extra ramra, te szükséged van extra ramra. A Linuxhoz 1 MB + ram szükséges. Ezenkívül az MMU hiánya azt jelentené, hogy ‘ meg kell találnod, hogyan kell utánozni egyet (vagy futtatni az ucLinux-ot). Reálisan a legjobb esetben ‘ d képesebb processzort emulálni az atmega-ban, ami nagyságrenddel lassabb lenne, mint a natív kód. Még az esedékes arduino is ‘ nincs a kívánt ram közelében.
  • Az ATmega328P-nek is van 2 KB SRAM-ja, az ATmega2560P-nek pedig csak 8 KB. Ez csak négyszer nagyobb a RAM-nál, nem 16-szoros.

Válasz

Csak nincs elég RAM. Meg kell tanítani azt is, hogy flash memóriából indítson, ami a rendszerbetöltő átírását jelentené.

Ehelyett használhat egy Arduino Yun vagy egy PCDuino ; Bár nem “szokásos” Arduinos, ezek támogatják az Arduino pajzsokat és futtatják a Linuxot.

Vagy mindig ott van a Raspberry Pi .

Megjegyzések

  • Miért mondod, hogy Yun nem ” szabványos ” Arduino? Egyetértek azzal, hogy lehet, hogy nem ez a leggyakoribb, de valóban Arduino.
  • @jfpoilpret A legtöbb Arduino olyan atmega tábla, amely lefordított C ++ programot futtat az avr-gcc-n keresztül, és rendelkezik USB-s kezelőchippel. különböző formájúak / méretűek / teljesítményűek, de ‘ lényegében ugyanazok (Mega félretéve). Nagyon nyilvánvalónak tűnt, hogy az OP ezekről beszél, és nem a Yun / etc-ről, ezért a megkülönböztetés.
  • Ott ‘ s a hamarosan megjelenő Arduino Tre , legalábbis én ‘ m remélem, hogy hamarosan ‘ s 😉

Válasz

A rövid válasz nem.

Alapvető y, SOKKAL több ramra lenne szükséged, akkor még a legnagyobb ATmegának is natív módon kell lennie.

Elméletileg lehetséges külső hardver hozzáadása és az ATmega programozása egy erősebb CPU utánzásához, és futtasd a linuxot azon. Egy sima arduino-n azonban ez nem lehetséges.

Sokkal reálisabb lenne linuxot futtatni Arduino Due-n, amely alapvetően egy AT91SAM3X8E CPU. Azonban még mindig hozzá kell adnia további SRAM-ot és tárhelyet.

Vannak olyan dolgok, mint az Arduino Yun, de ez valójában egy teljesen különálló linux modul ugyanazon a NYÁK-on, mint egy ATmega32U4, ezért nem teszem lehetővé. “Nem tudom, valóban számíthat-e arduino-nak.


Esetleg releváns: Mi kell a beágyazott linux futtatásához?

Válasz

Van egy tábla, amelynek neve: pcDuino amely képes futtatni a Linux több változatát, például Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (csak néhányat említve). Ez a tábla nem natív Arduino, inkább Arduino AtHeart , és a LinkSprite készíti.
pcDuino

Az Arduinóban van néhány tábla, amely támogatja a változat futtatását Linino nevű Linux verziója:

  • Az Arduino Yún az ATmega32u4 és az Atheros AR9331 alapú mikrokontroller kártya.Az Atheros processzor támogatja az OpenWrt alapú Linux disztribúciót, a Linino OS nevet. A kártya beépített Ethernet és WiFi támogatással rendelkezik, USB-A porttal, micro-SD kártya foglalattal, 20 digitális bemeneti / kimeneti tűvel (ezek közül 7 használható PWM kimenetként, 12 pedig analóg bemenetként), 16 MHz-es kristályval oszcillátor, mikro USB csatlakozás, ICSP fejléc és 3 reset gomb.
  • Az új Arduino Tian táblát az Atmel SAMD21 MCU hajtja, 32 bites ARM Cortex® M0 + maggal és Qualcomm Atheros AR9342-vel. , amely egy nagyon integrált MIPS processzor, amely 533 MHz-es frekvencián működik, és funkciókban gazdag IEEE802.11n 2×2 2,4 / 5 GHz kétsávos WiFi modul. A Qualcomm Atheros MIPS egy Linux disztribúciót támogat, amely Linino nevű OpenWRT-n alapul. Az Arduino Tian beépített 4 GB-os eMMC memóriát is tartalmaz, amely hasznos lehet a projektek felépítéséhez. Az energiafogyasztás csökkentése érdekében be lehet kapcsolni a Linux portot az MCU-ból.
  • Az Arduino Industrial 101 egy kiértékelő tábla Arduino 101 LGA modulhoz. Az ATmega32u4 mikrovezérlő az alaplapba van integrálva. A modul támogatja a Linux disztribúciót, amely LininoOS nevű OpenWRT alapú. A kártya beépített WiFi-vel rendelkezik (IEEE 802.11b / g / n műveletek 150Mbps-ig 1×1 2,4 GHz-ig), 3 GPIO-val (ebből 2 PWM kimenetként használható), 4 analóg bemenettel, 1 USB-vel, 1 Ethernet jellel a tűn fejlécek és beépített DC / DC átalakító. Nézze meg az összeszerelési útmutatót, és a kezdéshez egyszerűen csatlakoztassa a táblát a számítógéphez egy mikro-USB-kábellel.

Válasz

Ez több éves, de talán relevánsabb, mivel az Arduinos több RAM-ot és 32 bites ATMega-t kap AVR-k stb. Van egy nyilvánvaló probléma, nevezetesen nem a legnépszerűbb válaszban. Az Arduino egy AVR MICROCONTROLLER , nem pedig mikroprocesszor. Ez egy fő oka annak, hogy nincs linux-os port. A mikrovezérlőket egy speciális feladat végrehajtására tervezték, olyan alkalmazásokra, ahol a bemenet és a kimenet kapcsolata jól meghatározott. A mikroprocesszorokat futásra tervezték sokféle alkalmazás az operációs rendszereken. Ne feledje, hogy a kezdetektől fogva a Linuxnak memóriakezelő egységre volt szüksége, és nem tudott futtatni 8088 vagy 286 PC-n. Ezután volt egy μClinux, amely eredetileg a Motorola DragonBall beágyazott 68k-os processzorait célozta meg a Palm Pilots számára Soha nem volt különösebben sikeres. Lehet, hogy nagyobb sikert arat a FreeDOS vagy akár a Minix hordozásában, mint a Linux, talán valami az assemblerben, de az operációs rendszer mikroprocesszoron történő megküldése nagyon nem praktikus. Talán ez egy kihívást jelentő tudományos probléma, de kifejezetten ellentmond annak a célnak, hogy mikroprocesszor helyett mikrokontrollert használjon.

Válasz

Lehetséges, azonban fájdalmat okozna, mert C-be kell írnia (nem beszélve a szükséges extra hardverekről, mint például az SD-kártya pajzsáról és az extra memóriachipekről). Valami, mint Ontas, egy kern, amibe írtam Az arduino C-je segítene, mivel támogatja az illesztőprogramok hozzáadását, azzal a költséggel, hogy a void loop funkció lassabban ismétlődjön. (Ez nem olyan nagy üzlet, mint gondolnád) (Ontas még fejlesztés alatt áll, és új funkciókat folyamatosan hozzáadunk)

Kattintson ide az .ino és a kísérő .h fájlok linkjéhez

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük