Mitä Linuxin kääntäminen Arduinoon edellyttää, jos se on mahdollista?

Voiko Linuxia ajaa Arduinolla? Jos kyllä, mitä vaiheita ja rajoituksia on harkittava? Jos ei, mitkä ovat rajoitukset, jotka estävät tämän?

Kommentit

Vastaa

Linux on hyvin monimutkainen käyttöjärjestelmä, mutta se voi mahtua Arduinoon. Huomioitavia asioita:

  • Lähdekoodilla ei ole nykyistä AVR-porttia.
  • Sinulla ei olisi grafiikkaa, vaan pääset päätelaitteeseen UART: n kautta.
  • Sisäisen flash-muistin tai ulkoisen SD-kortin käyttäminen edellyttää, että tiedostojärjestelmäohjain on kirjoitettu uudelleen.
  • Se olisi erittäin hidasta! ATmega328 toimisi taajuudella 16 MHz tai enintään noin 20 MHz (ylikellotettu). Suurin osa Linux-koneista toimii vähintään 400 MHz: llä ja enemmän grafiikalla.
  • Tarvitset todennäköisesti ylimääräistä RAM-muistia, luultavasti hyvä idea käyttää ATmega2650: tä (Megassa olevaa), jossa on 16 kertaa Unon RAM-muistin. Voit käyttää myös Due-korttia (6x yhtä nopeasti kuin Uno, enemmän RAM-muistia).
  • Saatat joutua kirjoittamaan erityisiä USB-ohjaimia OTG: lle (Due) tai MAX3421EE (Mega ADK, USB-isäntäkilpi). .

Lyhyesti sanottuna se vie paljon aikaa ja vaivaa, ja se olisi todennäköisesti liian hidasta jokapäiväiseen käyttöön. Jos todella haluat Arduino Linuxin, tutustu Yúniin.

Kommentit

  • Et ” todennäköisesti ” tarvitsee ylimääräistä ramia, sinä tarvitset ylimääräistä RAM-muistia. Linux vaatii 1 Mt + ram. MMU: n puuttuminen merkitsisi myös sitä, että ’ sinun on selvitettävä, kuinka yksi emuloidaan (tai suoritetaan ucLinux). Realistisesti parhaimmillaan ’ d lopetat jäljittelemällä entistä suorituskykyisemmän prosessorin atmegassa, mikä olisi suuruusluokkaa hitaampi kuin natiivikoodi. Jopa erääntyvällä arduinolla ’ ei ole läheskään vaadittavaa asemaa.
  • Myös ATmega328P: llä on 2 kt SRAM-muistia ja ATmega2560P: llä vain 8 kt. Se on vain nelinkertainen ram, ei 16x.

Vastaa

Siinä ei vain ole tarpeeksi RAM-muistia. Sinun on myös opetettava se käynnistämään flash-muistista, mikä edellyttää käynnistyslataimen uudelleenkirjoittamista.

Voit käyttää sen sijaan Arduino Yun tai PCDuino ; Vaikka ne eivät olekaan ”vakio” Arduinos, nämä tukevat Arduino-suojauksia ja käyttävät Linuxia.

Tai siellä on aina Vadelma Pi .

Kommentit

  • Miksi sanot, että Yun ei ole ” vakio ” Arduino? Olen samaa mieltä siitä, että se ei ehkä ole yleisin, mutta se on todellakin Arduino.
  • @jfpoilpret Useimmat Arduinot ovat atmega-kortteja, jotka käyttävät käännettyä C ++: ta avr-gcc: n kautta ja joilla on USB-siru. on erilaisia muotoja / kokoja / voimia, mutta ne ’ ovat olennaisilta osin samat (mega syrjään). Vaikuttaa ilmeiseltä, että OP puhui näistä eikä Yun / etc: stä, tästä syystä ero.
  • Siellä ’ s myös pian vapautuva Arduino Tre , ainakin minä ’ m toivon sen olevan ’ s pian 😉

Vastaus

Lyhyt vastaus on ei.

Perus y, tarvitset PALJON enemmän ramia, jopa edes suurimmalla ATmegalla.

Teoriassa on mahdollista lisätä ulkoista laitteistoa ja ohjelmoida ATmega jäljittelemään tehokkaampaa prosessoria, ja aja Linux. Tavallisella arduinolla se ei kuitenkaan ole mahdollista.

Olisi paljon realistisempaa käyttää linuxia Arduino Due -sovelluksessa, joka on pohjimmiltaan AT91SAM3X8E-suorittimen. Sinun on kuitenkin vielä lisättävä lisää SRAM-muistia ja tallennustilaa.

On joitain asioita, kuten Arduino Yun, mutta se on oikeastaan täysin erillinen Linux-moduuli samassa piirilevyssä kuin ATmega32U4, joten en aio ”En tiedä, voitko todella laskea sen arduinoksi.


Mahdollisesti osuvaa: Mitä upotetun linuxin suorittaminen vaatii?

Vastaa

On olemassa alusta nimeltä pcDuino joka pystyy käyttämään useita Linux-muunnelmia, kuten Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (vain muutama maininta). Tämä lauta ei ole natiivi Arduino, pikemminkin Arduino AtHeart , ja sen on laatinut LinkSprite .
pcDuino

Arduinolla on pari taulua, jotka tukevat variantin ajamista Linuxista nimeltä Linino :

  • Arduino Yún on mikrokontrollerikortti, joka perustuu ATmega32u4: ään ja Atheros AR9331: een.Atheros-prosessori tukee Linux-jakelua, joka perustuu OpenWrt: ään nimeltä Linino OS. Piirilevyssä on sisäänrakennettu Ethernet- ja WiFi-tuki, USB-A-portti, micro-SD-korttipaikka, 20 digitaalista tuloa / lähtöä (7 niistä voidaan käyttää PWM-lähtöinä ja 12 analogisena tulona), 16 MHz: n kristalli oskillaattori, mikro-USB-liitäntä, ICSP-otsikko ja 3 nollauspainiketta.
  • Uusi Arduino Tian -levy toimii Atmelin SAMD21 MCU: lla, jossa on 32-bittinen ARM Cortex® M0 + -ydin ja Qualcomm Atheros AR9342 , joka on erittäin integroitu MIPS-prosessori, joka toimii jopa 533 MHz: n taajuudella ja monipuolisella IEEE802.11n 2×2 2,4 / 5 GHz: n kaksikaistaisella WiFi-moduulilla. Qualcomm Atheros MIPS tukee Linux-jakelua, joka perustuu Linino-nimiseen OpenWRT: hen. Arduino Tianilla on myös sisäänrakennettu 4 Gt: n eMMC-muisti, josta voi olla apua projektien rakentamisessa. Linux-portti voidaan kytkeä päälle / pois päältä MCU: sta virrankulutuksen vähentämiseksi.
  • Arduino Industrial 101 on arviointilauta Arduino 101 LGA -moduulille. ATmega32u4-mikrokontrolleri on integroitu jalkalevyyn. Moduuli tukee Linux-jakelua, joka perustuu LininoOS-nimiseen OpenWRT: hen. Piirilevyssä on sisäänrakennettu WiFi (IEEE 802.11b / g / n -toiminnot jopa 150Mbps 1×1 2,4 GHz), 3 GPIO (joista 2 voidaan käyttää PWM-lähtöinä), 4 analogiatuloa, 1 USB, 1 Ethernet-signaali nastassa otsikot ja sisäänrakennettu DC / DC-muunnin. Tutustu kokoonpano-oppaaseen ja liitä alusta yksinkertaisesti tietokoneeseen mikro-USB-kaapelilla.

vastaus

Tämä on useita vuosia vanha, mutta ehkä asiaankuuluvampi, kun Arduinos saa enemmän RAM-muistia ja 32-bittistä ATMega AVR: t jne. On ilmeinen ongelma, etenkään tässä ei suosituimmassa vastauksessa. Arduino käyttää AVR MICROCONTROLLER , ei mikroprosessori. Tämä on tärkeä syy siihen, miksi linux-porttia ei ole. Mikrokontrollerit on suunniteltu suorittamaan tietty tehtävä, sovellukset, joissa tulon ja lähdön suhde on määritelty hyvin. Mikroprosessorit on suunniteltu toimimaan erilaisia sovelluksia käyttöjärjestelmissä. Muista, että Linux tarvitsi alusta alkaen muistinhallintayksikköä, eikä se voinut toimia 8088- tai 286-tietokoneilla. Sitten oli μClinux, joka alun perin kohdistettiin sulautettujen 68k-prosessorien Motorola DragonBall -perheeseen Palm Pilotsille. Se ei koskaan ollut erityisen onnistunut. Saatat olla enemmän menestystä FreeDOS: n tai jopa Minixin siirtämisessä kuin Linux, ehkä jotain kokoonpanossa, mutta käyttöjärjestelmän lähettäminen mikro-ohjaimelle on hyvin epäkäytännöllistä. Ehkä se on haastava akateeminen ongelma, mutta se on nimenomaan vastoin tarkoitusta käyttää mikro-ohjainta mikroprosessorin sijasta.

Vastaa

Se on mahdollista, mutta se olisi tuskaa, koska joudut kirjoittamaan sen C: hen (puhumattakaan tarvittavista ylimääräisistä laitteista, kuten SD-korttisuojasta ja ylimääräisistä muistisiruista) Jotain kuten Ontas, ydin, johon kirjoitin C arduinolle, auttaisi, koska sillä on tukea ohjaimien lisäämiseen sen kustannuksella, että void loop -toiminto toistuu hitaammin. (Tämä ei ole niin iso juttu kuin luulisi sen olevan) (Ontas on edelleen kehitteillä ja uusia ominaisuuksia lisätään koko ajan)

Napsauta tätä saadaksesi linkin .ino-tiedostoihin ja siihen liittyviin .h-tiedostoihin

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *