ARM Multitasking ogne MMU

OP #347116
Lesenswert?
• ▲
▼
Ich habe gehört dass auf der ARM-Architektur sogar Linux läuft, es
jedoch keine MMU gibt, und deswegen jeder Prozess an jeder beliebigen
Stelle im Speicher lesen und schreiben kann.
Kann man trotzdem irgendwie Speicherschutz erhalten, Softwaremäßig?
Oder gibt es ARM-Varianten mit MMU?
Persönliche Seite #347117
Lesenswert?
• ▲
▼
Natürlich gibt es auch ARMe mit MMU (ARM9 und größer); ein
softwaremäßiger Speicherschutz wäre nur mit extremem Aufwand und
resultierend zu vernachlässigender Performance hinzubekommen.
Warum aber auch?
Multitasking-Betriebssysteme wurden über Jahre auf Maschinen ohne MMU
und ohne Speicherschutz betrieben, es bedarf halt ein wenig mehr
Disziplin beim Programmieren und gründlicheres Debuggen.
Gast #347119
Lesenswert?
• ▲
▼
Hi Micheal,

es auch einen ARM7 mit MMU. Schau mal bei ST nach einem STR720 (CAN,
USB, IDE, usw.). Der hat halt ein PQFP208-Gehäuse, aber ich denke bei
einem ARM9 (oder größer) wird es wohl mit dem Löten nicht einfacher
werden. Außer Spörle fällt mir aber leider niemand ein der den
anbietet. Vielleicht weiß jemand anderes wo es den gibt?

Gruß,
Sebastian
Gast #347120
Lesenswert?
• ▲
▼
Danke für die Info.
Weißt du ob der Linux Kernel auch davon Gebrauch machen kann? Ich habe
bisher ja nur den Port von uclinux.com für ARM gefunden, und der
scheint ja "für CPUs ohne MMU" zu sein.
Gast #347121
Lesenswert?
• ▲
▼
Ich gehe mal davon aus, das die meisten linux-distributionen eben nur
den Core unterstützt und nicht seine Periferie, die ja bei jedem
Hersteller oder Produkt anders sein kann und auch ist!

Eventuell hat man Glück und bekommt vom Hersteller etwas angepasstes,
oder man muss sich selber drum bemühen die Treiber zu schreiben.
#347123
Lesenswert?
• ▲
▼
Der Linux Kernel, so wie er von kernel.org zu bekommen ist, unterstützt
ARM cores mit MMU, also z.B. arm720t, arm920t, arm926ej-s, etc., mit
zusätzlichen Patches auch solche cores, die nur eine MPU (memory
protection unit) haben.
Ausserdem enthält er Support für einige SoC Lösungen, z.B. Atmel
AT91RM9200, Cirrus Logic EP93xx, Hynix/Magnachip HMS20C7202, XScale,
etc., und bietet auch board-spezifische Konfigurationen für komplette
Boards mit ARM Core, Peripherie und evtl. zusätzlicher Hardware.
Teilweise sind dafür noch Patches notwendig, wobei die Unterstützung
für fast alle SoCs auch upstream zu bekommen ist - der Code muss nur
die Anforderungen der Kernel Maintainer erfüllen.

Gruesse,

Dominic
Gast #347125
Lesenswert?
• ▲
▼
Es gibt ucLinux, welches auch auf einem beliebigen ARM7 läuft.

Ansonsten läuft Linux nur auf dem ARM926, der ARM946 hat nur eine MPU,
die für Linux nicht ausreicht. Der ARM966 hat  nicht einmal die.

Was den Speicherschutz angeht, dürfte das auf einem embedded System
ziemlich egal sein. Beim PC kann man das Programm ja wieder neu
starten, wenn es ins Nirvana gegangen ist, beim embedded System (man
denke an einen  Roboter) ist dann sowieso Booten angesagt. Da kann man
das auch mit einem Watchdog lösen.

Gruss
Axel

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.