Forum: Mikrocontroller und Digitale Elektronik Embedded Linux oder AVR/ARM


von Hotspott (Gast)


Lesenswert?

Guten Abend,

Ich stehe momentan vor der Frage ob ich für ein neues Projekt, welches 
später durchaus kommerziell werden soll, ein Embedded Linux System 
benutzen soll oder doch lieber ein Atmel AVR/ARM.

Ich beschreibe mal die Anforderungen:
 - Großes (>=24 Zoll) Display
 - Internet Anbindung (Datenabfrage)
 - Tasten, Sensoren
 - evtl. Kamera für Geschichtserkennung
 - evtl. Datenbank auf dem System gespeichert

Die meisten werden sich jetzt denken bis zu den "evtl." Punkten reicht 
ein normaler ATmega, natürlich der Meinung bin ich auch. Doch stellt 
sich mir hier nicht die Frage ob ein Embedded System nicht zu 
übertrieben ist.

Punkte die für eine Embedded Lösung sprechen sind vor allem, das nicht 
von 0 Angefangen werden muss. Ich habe mir mit Spannung den 
Beitrag "Embedded Systems - Die nächsten zehn Jahre" durchgelesen. Und ich 
verstehe das man gegen die Lösung mit Embedded System ist, wenn diese 
wie in meinem Fall übertrieben scheint. Doch bei vielen Projekten bei 
denen ich schon von wirklich Null angefangen habe, und dabei auch nicht 
von Fehlern gelernt habe die andere schon gemacht haben, bekam ich 
gesagt das dies völliger Schwachsinn wäre. Jemand sagte mir mal "Lieber 
auf die Schultern des Riesen klettern. Das ist einfacher, als selber zum 
Riesen zu werden.".

Ich müsste ja viele Netzwerk Protokolle erst selber implementieren, und 
und und. Und das ist am Ende auch eine Frage der Entwicklungszeit, man 
denke daran – Zeit ist Geld. Ich denke das ist ein Punkt der in dieser 
Diskussion noch nicht betrachtet wurde.

Auch sehe ich das wie W.S.
W.S. schrieb:
> nicht kapiert und ziemlich große Scheuklappen auf. Braucht meine Nichte
> einen Prozessor oder ein Gigabyte RAM? Nö, braucht sie nicht. Aber ein
> Mobiltelefon und ne Flatrate braucht sie, wo sie mit ihren Freundinnen
> sinnloses Geschwätz führen kann, DAS BRAUCHT SIE. Natürlich könnte sie
> sich ja mit denen zum Tee treffen, aber das ist ja nicht Mode. Aber ob
> in ihrem Telefon ein Prozessor oder ein grünes Marsmännchen werkelt, ist
> ihr und dem Rest der Welt völlig schnurz.
>
> Versteht ihr jetzt, warum das Innenleben all der tollen Geräte nur
> zweitrangig ist?
Den Leuten ist es am Ende egal was in der Kiste steckt.


Eine Kostenfrage stellt sich ja heute auch nichtmehr, beide Lösungen 
werden wahrscheinlich am Ende auf die gleiche Summe kommen.

Einzig was mich beunruhigt ist, das ich mich und mein Projekt natürlich 
von Linux Abhängig mache, mein Projekt erbt ja quasi alle Bugs und 
Sicherheitslücken von Linux, und was mache ich wenn ein Kunde anruft 
weil Linux abgeschmiert ist.

Wahrscheinlich gibt es auch noch viele Punkte die mir noch gar nicht in 
den Sinne gekommen sind um eine Entscheidung zu treffen. Daher bitte ich 
um euren Rat.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Hotspott schrieb:
> mein Projekt erbt ja quasi alle Bugs und
> Sicherheitslücken von Linux, und was mache ich wenn ein Kunde anruft
> weil Linux abgeschmiert ist.

Auch bei von Dir selbst geschrieben Programmen werden sicherlich Bugs 
und Sicherheitslücken vorhanden sein. Linux und die dafür existierenden 
Programme werden von zigtausenden Leuten geschrieben und überwacht.

von Leser (Gast)


Lesenswert?

Hotspott schrieb:
> Ich beschreibe mal die Anforderungen:
>  - Großes (>=24 Zoll) Display
>  - Internet Anbindung (Datenabfrage)
>  - Tasten, Sensoren
>  - evtl. Kamera für Geschichtserkennung
>  - evtl. Datenbank auf dem System gespeichert
>
> Die meisten werden sich jetzt denken bis zu den "evtl." Punkten reicht
> ein normaler ATmega, natürlich der Meinung bin ich auch.

Wie genau wird denn das große 24 Zoll Display an den ATMega 
angeschlossen?

Reicht die Rechenleistung einer 8 Bit CPU für Gesichtserkennung?

von Hotspott (Gast)


Lesenswert?

Natürlich schreibt man auch selber Fehler in sein Programm, das stimmt. 
Doch auch hier dauert es wieder bis Fehler im Kernel angepasst sind, und 
dann noch mal bis diese auf ein Embedded System gebracht werden.

Die Grafik müsste natürlich auf andere Leistungsstärkere Chips 
exportiert werden, welche man per z.B. SPI anspricht. Aber in der Phase, 
dass ich dafür schon konkrete Pläne habe bin ich noch gar nicht.

Über eine Gesichtserkennung habe ich mir noch keine Gedanken gemacht, 
wenn müsste auch dieser natürlich ausgelagert werden, für Linux gibt es 
eine OpenSource Library. Aber das ist ja auch noch ein eventuell Punkt, 
ich denke der kann erst ein mal ausgelassen werden.

Das alles ist gar nicht böse gemeint, sondern nur Ideen meinerseits. 
Erstmal Danke für die weiteren Ideen über die ich mir selber noch keine 
Gedanken gemacht habe.

von Bernd K. (prof7bit)


Lesenswert?

Hotspott schrieb:

> Einzig was mich beunruhigt ist, das ich mich und mein Projekt natürlich
> von Linux Abhängig mache, mein Projekt erbt ja quasi alle Bugs und
> Sicherheitslücken von Linux, und was mache ich wenn ein Kunde anruft
> weil Linux abgeschmiert ist.

Ist das ein getarnter Trollversuch?

von Peter S. (psavr)


Lesenswert?

Bei Deinen Anforderungen würde ich mindestens mit einem "Raspberry Pi 2 
mit Quad-Core ARM Cortex A7, 1 GB RAM" starten, mid Display und 
Gesichtserkennung kommst mit dem 8 Bit AVR nirgens hin. (auch nicht für 
ernsthafte Ethernet-Anwendungen)

Für was soll der AVR dann noch gut sein, wenn Du eh alles auslagern 
musst? Kannst ihn höchstens noch zum ein- und ausschalten der Speisungen 
und als Tastatur-Interface brauchen.

von W.S. (Gast)


Lesenswert?

Hotspott schrieb:
> Ich beschreibe mal die Anforderungen:
>  - Großes (>=24 Zoll) Display
>  - Internet Anbindung (Datenabfrage)
>  - Tasten, Sensoren
>  - evtl. Kamera für Geschichtserkennung
>  - evtl. Datenbank auf dem System gespeichert

und

Hotspott schrieb:
> Die meisten werden sich jetzt denken bis zu den "evtl." Punkten reicht
> ein normaler ATmega, natürlich der Meinung bin ich auch.

Ah ja. Erinnert mich an's Krümelmonster: Willst du jetzt nun alle 
Schätze der Welt oder nen Keks?... "KEKS!"

Und nochwas: Ein großer Bildschirm ist nicht alles, man sollte ihn auch 
füllen können und da erhebt sich erstens die Frage "wer?" und zweitens 
"wie?". Einen ATmega kanst du für sowas knicken und für ein Linux und 
dessen relative Lahmarschigkeit in grafischen Sachen brauchst du eher 
eine MALI Gpu und den doppelten Systemtakt im Vergleich zu einem System 
mit nem WinCe.

Naja, ob nun Tauben füttern im Park oder Trolle füttern im Forum, kommt 
wohl auf's Gleiche raus.

W.S.

von Hotspott (Gast)


Lesenswert?

Ich denke nicht, das es unmöglich ist das Projekt auf AVR Basis zu 
basteln. Der ATmega würde natürlich nur die Datenströme der 
ausgelagerten Chips steuern. Per VGA kann auch relativ einfach ein 
Display angesprochen werden, da ich keine Videos abspielen muss, sondern 
nur ab und zu mal ein paar Pixel änder, hauptsächlich Schrift, kann auch 
ein kleiner zweiter ATmega mit 20Mhz herhalten.

Die Gesichtserkennung wird auf der Basis sehr wahrscheinlich nicht 
möglich sein, das ist mir klar.

Der Internetdatenstrom ist auch kein Problem mit einem ENC28J60, es 
werden nur ein paar mal am Tag ein paar HTML Requests los geschickt. Die 
Response steigt dabei nicht über ein parr kb.

Ich versteh nicht wieso das ein getarnter Trollversuch sein soll, finde 
ich schade das man das so sieht. Sollte wohl mal lieber wieder auf hören 
im Internet nach Rat zu suchen.

von Linksammler (Gast)


Lesenswert?

Anders gefragt: Was für einen Vorteil bietet dir eine Lösung aus 
AVR+AVR+ENC+XXX?

Zum halben Preis kriegst du einen ARM, der all das ersetzt, und 
ebenfalls mit dem GCC programmiert werden kann, aber viel viel mehr 
Reserven hat.

Muss ja nicht gleich ein Quad-Core mit Linux drauf sein.

von Leser (Gast)


Lesenswert?

Hotspott schrieb:
> Per VGA kann auch relativ einfach ein
> Display angesprochen werden

Aber nur für kleine Auflösungen! (VGA-Auflösung 640x480 oder noch 
kleiner)

Ein 24 Zoll Display steuert man sinnvollerweise mit seiner nativen 
Auflösung an (in dem Fall wahrscheinlich Full HD oder größer). Das kann 
der ATMega nicht!

von Helmut S. (helmuts)


Lesenswert?

>Ich versteh nicht wieso das ein getarnter Trollversuch sein soll,

Hotspott?

Endweder Rechtschreibschwäche und kein Trollversuch oder keine 
Rechtschreinschwäche, aber dann ist es garantiert ein Trollversuch. 
Keiner der eine ernsthafte Antwort erwartet wird das Wort Spott in 
seinen Namen einfügen.

von Hotspott (Gast)


Lesenswert?

Seit wann müssen denn Benutzernamen der deutschen oder hier englischen 
Rechtschreibung entsprechen. Hotspott ist ein Synonym das ich schon 
lange im Internet benutze. Über das Spott werde ich mir allerdings jetzt 
erst klar. Das ist natürlich blöd.

Wie dem auch sei, ich denke ich werde dann doch auf ARM bzw. Embedded 
setzen. Das war von Anfang an auch meine Wahl, dachte nur nach dem ich 
den anderen Beitrag gelesen habe, das vlt doch mehr für AVR spricht.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

AVRs halte ich auch für zu schwachbrüstig für die geforderten 
Leistungen.

Es muss aber nicht immer Linux sein.

Wir setzen bspw. NuttX als RTOS ein. Das hat alles an Bord, was man 
benötigt, ist POSIX-konform, bleibt aber trotzdem sehr schlank und steht 
unter einer BSD-Lizenz!

Je nach geforderter Bildschirmauflösung könntest Du mit einem STM32F429 
und dessen internem LTDC auskommen.

Vielleicht schaust Du Dir das mal an: www.nuttx.org

von operator (Gast)


Lesenswert?

Hallo Chris D.
Kennst du ein gutes Tutorial zum Nuttx? Vor allem die POSIX konformität 
gefällt mir, doch ist ein Einstieg bisweilen noch schwierig. Oder muss 
man sich nunmal durch die READMEs durchhangeln?

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

operator schrieb:
> Hallo Chris D.
> Kennst du ein gutes Tutorial zum Nuttx? Vor allem die POSIX konformität
> gefällt mir, doch ist ein Einstieg bisweilen noch schwierig. Oder muss
> man sich nunmal durch die READMEs durchhangeln?

Leider gibt es kein wirkliches Tutorial dazu - allerdings sind die 
Beispiele reichhaltig und gut dokumentiert (unter apps/examples).

Gregory ist übrigens sehr hilfsbereit und übernimmt bspw. auch das 
Einpflegen neuer Boards in den Baum, wenn man ihm ein Muster schickt.

Ansonsten ist der Aufwand bis zur ersten NuttShell, über die man dann 
auf dem System arbeiten kann, überschaubar: man wählt das passende Board 
aus (bspw. ein STM32F4 Discovery) mit den gewünschten Optionen aus (das 
geht zum Beispiel über menuconfig ähnlich wie beim Linux-Kernel) und 
compiliert. Dann noch rüberschieben und schon meldet sich die Shell im 
Terminal :-)

Schön ist an NuttX auch, dass man es auch direkt für einen Linux-PC 
compilieren kann und über ein X11-Fenster die Grafikausgabe sieht. Das 
gestattet (bis auf die Echtzeitgeschichten natürlich) zumindest die 
Entwicklung der kompletten grafischen Oberfläche direkt auf dem PC ganz 
ohne Zielsystem. Die Maus emuliert dann quasi den Touchscreen etc.

P.S.: Vielleicht für andere: NuttX läuft auch recht gut auf AVRs.

: Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.