Forum: Mikrocontroller und Digitale Elektronik Linux auf einem AVR-System?


von Jürgen Mayer (Gast)


Lesenswert?

hallo,

gibts AVR-Systeme auf denen ein Linux läuft?

hat da jemand schon Erfahrung gesammelt?

Jürgen

von Rahul D. (rahul)


Lesenswert?

JAVA läuft drauf..

von Rolf Magnus (Gast)


Lesenswert?

> gibts AVR-Systeme auf denen ein Linux läuft?

Nein. Linux ist für 32bit-Prozessoren, und es benötigt wesentlich mehr
RAM als ein AVR bietet. Außerdem steht die Harvard-Architektur der AVRs
da im Weg.

von Rahul D. (rahul)


Lesenswert?

@Rolf: das mit den 32Bit finde ich interessant.
Gab es die 1994 auch schon (für normalsterbliche PC-Nutzer)?
Meiner Meinung nach lief das schon auf einem 386er mit seinen 16Bit.

Aber du hast schon Recht, dass der AVR dafür einfach nicht geeignet und
eigentlich auch nicht gedacht ist.
Was soll man auch mit einem Multitasking und Multiuser-System in einer
Kaffee-Maschine?!
Mit nem AVR ist schon schwierig, USB ohne externe Bauteile zu machen
(Igor, verrückter Japaner lassen grüssen).
Wieso sollte man darauf Linux laufen lassen?

von Jürgen Mayer (Gast)


Lesenswert?

hallo,

danke für die Info. Ich glaube da wäre dann ein ARM sinnvoller ...

Jürgen

von Andre (Gast)


Lesenswert?

"386er mit seinen 16Bit."

Der 386er ist ein 32Bitter...

von Dirk D. (dirkd)


Lesenswert?

Hi,

@Rahul
Der 386er ist eine 32bit CPU.

Und ich kenne bisher keine 16 bit Portierung.

Gruß

     Dirk

von KoF (Gast)


Lesenswert?

@ Jürgen Mayer

aber bitte einer mit mmu und einem schönen interface für externen ram
;-)

von Werner B. (Gast)


Lesenswert?

"Minix", der "Urvater" von Linux lief auf 16 Bit 8088/86.
Es kann ja mal einer versuchen das auf einen AVR zu portieren ;)
Quellen hier:
http://www.minix.org

von Rahul D. (rahul)


Lesenswert?

stimmt! Der SX hatte extern nur 16Bit.
Auf dem 286er lief es aber auch...und der war wirklich nur 16Bit breit.

von Rolf Magnus (Gast)


Lesenswert?

@KoF:

> aber bitte einer mit mmu und einem schönen interface für externen
> ram ;-)

Es gibt auch Linux-Ports, die ohne MMU auskommen, natürlich mit der
Einschränkung, daß die Prozesse sich mit dem Kernel einen Adressraum
teilen müssen.

@Rahul:
> Auf dem 286er lief es aber auch...und der war wirklich nur 16Bit
> breit.

Das war aber nicht Linux, sondern das schon erwähnte Minix.

Übrigens, wem's noch nicht aufgefallen ist: Ein AVR ist nicht
16bittig. :-)

von Thomas K. (thomas_k)


Lesenswert?

@Rahul Ghose:

>Mit nem AVR ist schon schwierig, USB ohne externe Bauteile zu machen
>(Igor, verrückter Japaner lassen grüssen).

Du glaubst doch nicht ernsthaft, dass Igor Cesko ein Japaner ist, oder?

von Andre (Gast)


Lesenswert?

"Du glaubst doch nicht ernsthaft, dass Igor Cesko ein Japaner ist,
oder?"


Er glaubt auch, daß ein 386er ein 16Bit-Prozessor ist...

von Rahul D. (rahul)


Lesenswert?

Igor, verrückter Japaner lassen grüssen (also 2 Personen!)
Hätte ich gemeint, dass Igor ein Japaner ist, hätte ich geschrieben
"Igor, verrückter Japaner lässt grüssen."
Das nur am Rande.

Dass ich mit dem 386er daneben lag, hab ich inzwischen eingesehen.
Asche auf mein Haupt.

Wenn Linux nur auf einem 32bitter arbeitet, dann wird es wohl erst
recht nicht auch einem AVR laufen. Minix vielleicht.

von Thomas K. (thomas_k)


Lesenswert?

Tut mir leid aber bei "verrückter Japaner lassen grüssen" muss man
sich entscheiden was der Fehler ist. Entweder "verrückte Japaner
lassen grüßen" oder "verrückter Japaner lässt grüßen". Aber den
Fehler hast du anscheinend noch immer nicht bemerkt :/

von Rahul D. (rahul)


Lesenswert?

"Igor und der verrückte Japaner lassen grüssen"
Besser so?
Igor hat einen USB-Stack auf einem AVR realiesert.
Der verrückte Japaner (einfach mal hier im Forum danach suchen) hat
eine USB-Maus an einen AVR gehängt.
Es handelt sich also immer noch um 2 Personen.
Und 2 Personen lassen grüssen. Man könnte auch sagen: "Die Gruppe
aus Igor und dem verrückten Japaner lässt grüssen."

von Rahul D. (rahul)


Lesenswert?

inzwischen habe ich den Fehler auch endlgültig gesehen:
Ich hätte mal wieder meine Klappe halten sollen.

von Thomas K. (thomas_k)


Lesenswert?

Hehehe

von Dirk D. (dirkd)


Lesenswert?

Wobei man vielleicht noch zum Thema Linux sagen sollte, daß weder 32bit
noch MMU eine Voraussetzung für Linux sind.

Auch ist die Unterscheidung 16 Bitter / 32 Bitter sehr wage. Ein
68000er wird z. B. oft als 16/32 Bitter bezeichnet (Für den gibt es
auch ein Linux [damit hätte ich mir jetzt selbst widersprochen])

Es ist eher so, daß 32-Bit-CPUs meist mit einer entsprechenden
Leistungsklasse einher gehen (also RAM, ROM/Flash, MHz), die für Linux
notwendig ist.

Auch wenn es Linux für ARM-CPUs gibt, wirst Du es (vermutlich) nicht
schaffen es auf eine Philips LPC Platform oder auf der ARM7 SAM
Platform aus dem Shop zu portieren.

Andere Systeme sind dafür besser geeignet. z. B. Ecos, OSEK,
FreeRTOS...

Gruß

     Dirk

von Andre (Gast)


Lesenswert?

"Wobei man vielleicht noch zum Thema Linux sagen sollte, daß weder
32bit
noch MMU eine Voraussetzung für Linux sind.

Auch ist die Unterscheidung 16 Bitter / 32 Bitter sehr wage. Ein
68000er wird z. B. oft als 16/32 Bitter bezeichnet (Für den gibt es
auch ein Linux [damit hätte ich mir jetzt selbst widersprochen])"


Das ist so nicht richtig.
Erstens ist natürlich die interne Datenbreite entscheidend, zweitens
braucht das "echte" Linux sehr wohl eine MMU.
Daß im nachhinein ein ucLinux aus dem Linux entwickelt wurde, welches
die MMU durch Software ersetzt, ist ein anderes Ding.


"Es ist eher so, daß 32-Bit-CPUs meist mit einer entsprechenden
Leistungsklasse einher gehen (also RAM, ROM/Flash, MHz), die für Linux
notwendig ist."


MHz sind Wurst für Linux, das läuft auch mit 1Hz. Ist natürlich nicht
sehr sinnvoll.


"Auch wenn es Linux für ARM-CPUs gibt, wirst Du es (vermutlich) nicht
schaffen es auf eine Philips LPC Platform oder auf der ARM7 SAM
Platform aus dem Shop zu portieren."


Auf dem LPC läuft ucLinux doch, wo ist da das Problem?


"Andere Systeme sind dafür besser geeignet. z. B. Ecos, OSEK,
FreeRTOS... "

Das sei mal dahingestellt und muss jeder wissen.

von Dirk D. (dirkd)


Lesenswert?

@Andre

> Erstens ist natürlich die interne Datenbreite entscheidend,
Meinst Du jetzt für Linux oder für die Unterscheidung 16 / 32 bit. Zur
letzteren gibt es sehr viele Meinung wann eine CPU eine 32 bit CPU ist
und wann nicht.

>Daß im nachhinein ein ucLinux aus dem Linux entwickelt wurde,
> welches die MMU durch Software ersetzt, ist ein anderes Ding.

Na ja, eigentlich setzte ich ucLinux und Linux gleich (daher ist
natürlich meine Aussage bzgl. Atmek SAM und LPC etwas unüberlegt
gewesen).

> MHz sind Wurst für Linux, das läuft auch mit 1Hz. Ist natürlich
> nicht sehr sinnvoll.

ok, technisch nicht notwendig. Geb ich zu. Minimalkonfigurationen für
PC-Spiele gibt es auch. Trotzdem sind dann schnellere CPUs und bessere
Grafikkarten öfters "notwendig".

von Andre (Gast)


Lesenswert?

"Meinst Du jetzt für Linux oder für die Unterscheidung 16 / 32 bit.
Zur
letzteren gibt es sehr viele Meinung wann eine CPU eine 32 bit CPU ist
und wann nicht. "


Natürlich Linux.
Deshalb gibt es das ucLinux ja auch für viele 32bit-Controller (auch
auf dem (externen) 8bitter 68008 sollte das laufen).
Was die Meinungen angeht, so ist das sicherlich richtig, wenngleich
auch die wenigsten das am Adressbus ausmachen.

Meines Wissens gab es aber mal ein Projekt, welches zumindest Teile von
Linux auch auf die 16bit-x86er portiert hat. Ist aber sicherlich mangels
Bedarf eingeschlafen.

von Unbekannter (Gast)


Lesenswert?

Es ist sehr wohl eindeutig festzustellen, ob nun ein Prozessor ein 16
oder 32 oder noch mehr Bit Prozessor ist.

Das hängt einfach davon ab, wie groß die Register sind mit denen
gerechnet wird. Also im einfachsten Fall der Akku. Bei Prozessoren ohne
dedizierten Akku eben die Datenregister.

Und der 68000er war noch nie ein "16/32 Bit-Prozessor", sondern war
schon immer ein 32-Bit-Prozessor.

Weiter hat die Breite des externen Datenbusses eines Prozessors auch
nicht viel damit zu tun, mit welcher Breite er intern rechnet. So gab
es am Anfang viele 32-Bitter, die nur einen extern 16-Bit-Datenbus
haben und heute gibt es 32-Bit-Prozessoren die eine 64-Bit oder gar 128
Bit breiten Datenbus haben.

Und der Dritte Punkt, der Adressbus ist auch unabhängig von der
"Rechen-Breite" des Prozessors. Der (extern) Adressbus bestimmt
lediglich, wieviel (externer) Speicher adressiert werden kann.

von Dirk D. (dirkd)


Lesenswert?

> Es ist sehr wohl eindeutig festzustellen,

Und wer legt diese Definition fest?

> Und der 68000er war noch nie ein "16/32 Bit-Prozessor", sondern
war
> schon immer ein 32-Bit-Prozessor.

Die Bezeichnung 16 /32 Bit Prozessor findest Du für den 68000er sehr
häufig. Die entsprechenden Computer (Amiga, ST) galten aber als 16Bit
Rechner.

Deine Definition ist durchaus plausibel und ich würde mich ihr auch
anschließen, aber ich habe auch schon viele andere Meinungen dazu
gehört.

Daher kann von "eindeutig" keine Rede sein.

von Andre (Gast)


Lesenswert?

"Es ist sehr wohl eindeutig festzustellen, ob nun ein Prozessor ein 16
oder 32 oder noch mehr Bit Prozessor ist.

Das hängt einfach davon ab, wie groß die Register sind mit denen
gerechnet wird. Also im einfachsten Fall der Akku. Bei Prozessoren
ohne
dedizierten Akku eben die Datenregister."


Also dem kann ich mich nun wirklich nicht anschließen.
Es gibt ja etliche MCs/MPs, deren Akku 16Bit hat, die aber sonst nur
8Bit verarbeiten.
Ebenso andersrum, einige 16Bit Register, dazu einen 8Bit Akku.

Sind die jetzt 12Bit?

von Dirk D. (dirkd)


Lesenswert?

<Klugscheißermode>
Was meint den Motorola dazu.

Ich zitiere aus dem Programmers Manual:
MC68000         16 / 32 bit Microprocessor
MC68EC000       16 / 32 bit Embedded Controller
...
MC68008         16 bit Microprocessor with 8 bit data bus


Oder aus dem User Manual
1.1 MC 68000
The MC 68000 is the first implementation of the M68000 16/-32 bit
microprocessor architecture.
</Klugscheißermode>

Soviel vom Erfinder der 68000er.

von Markus Maussner (Gast)


Lesenswert?

Hmm nur mal angemerkt

es gibt Elks eine Portierung von linux auf den 80286 was aber nie
wirklich weit gekommen ist.

Auf dem 80286 liefen auch "Unix-Systeme" wie

- Coherent
- SCO Xenix
- Microsoft Xenix (ist das nicht das gleiche)
- Minix (das habe ich auch auf einem 8086 gesehen)

alles sogar mit Netzwerk und Multiuser/Multitasking Fähigkeiten.

Auch gibts einen "Unix/Linux"-Clone sogar für den C64 usw.

Naja ich komme vom Thema ab.

gruss

Markus

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.