mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fragen zur ARM architektur


Autor: Toto Loto (Firma: totoloto AG ;)) (totoloto133)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Nachdem ich die Doku zum ARM7TDMI prozessor core gelesen habe, stellen 
sich noch ein paar Fragen.
Und zwar ist ein ganzes Kapitel den "Operating modes" gewitmet.
Dort werden die verschiedenes Modis vom user, über dem fastinterrupt zum 
System modus und deren Verfügbarkeit an den Register erklärt.
Was für ein Nutzen soll das denn haben ?
Wenn ich mich richtig erinnere habe ich sowas ähnliches von der 
Computerarchitekturen gehört damit das Betriebsystem Multiuserfähig ist.
Hat das einen Sinn bei 256 KB flash und 64 KB ram ?
Ich blicke da nicht durch.

Was ist mit den Gleitkommazahlen (float)?
Leider ist da nicht die rede von einem Coprozessor oder sowas.
Da muss ich wohl ausgehen das die per software errechnet werden müssen.
Oder ?

Danke im vorraus

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Toto Loto wrote:

> Was für ein Nutzen soll das denn haben ?

In anderen Architekturen werden Programmzähler und Statusregister auf 
dem Stack gesichert. In ARM wird das anders gehandhabt, und daher 
existieren die Schattenregister, die der Sinn dieser Modi sind.

Die in ARM verwendete Technik der Schattenregister für Interrupts ist 
gleichzeitig die grösste Schwachstelle dieser Architektur, weil sie 
verschachtelte Interrupts unnötig erschwert.

> Wenn ich mich richtig erinnere habe ich sowas ähnliches von der
> Computerarchitekturen gehört damit das Betriebsystem Multiuserfähig ist.

Hat damit rein garnichts zu tun.

> Leider ist da nicht die rede von einem Coprozessor oder sowas.
> Da muss ich wohl ausgehen das die per software errechnet werden müssen.

Korrekt. Wer pfeilschnelle Fliesskommarechung benötigt, nimmt andere 
Prozessoren.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu Operating Modes:
Die vom ARM7TDMI eingesetzt ARMv4 Befehlssatzarchitektur wird ja nicht 
nur im ARM7TDMI, sondern auch von anderen Prozessoren (auch mit support 
für externen speicher und mmu) eingesetzt. Deswegen ist sowas enthalten. 
aber auch für ein schmales RTOS kann es sinnvoll sein mehrere Modes zu 
haben. Und der Interrupt Mode macht schon in sofern sinn, dass man 
während interrupts auf ein eigenes Stack Register zugreifen kann.

Floats:
Der ARM7TDMI enthält standardmäßig keine FPU. Allerdings kann diese als 
Coprozessor von einem Prozessorhersteller dazugebaut werden.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was den USER Modus angeht: Dessen Nutzen ist bei Controllern der 
ARM7-Klasse umstritten. Indes wurde die ARM Architektur für einen 
Rechner mit augewachsenem Betriebssystem konzipiert. Und da war das 
sinnvoll. Die Verwendung in embedded systems kam später.

Autor: Toto Loto (Firma: totoloto AG ;)) (totoloto133)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin schon etwas klüger.
danke

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Toto Loto wrote:
> Hallo,
> Und zwar ist ein ganzes Kapitel den "Operating modes" gewitmet.
> Was für ein Nutzen soll das denn haben ?
bei einem groesseren Betriebssystem ist es nuetzlich, den Enduser im 
Usermode davon abzuhalten die Routinen, die z.B. im Supervisor mode 
laufen, das waere oft das Betriebssystem aubzuschiessen.

> Hat das einen Sinn bei 256 KB flash und 64 KB ram ?
Nicht wirklich fuer einen SAM7 braucht man das nicht. Trotzdem kann ein 
kleiner RTOS Kernel sehr nuetzlich sein und der verwendet dann evtl. 
solche Modi.

> Was ist mit den Gleitkommazahlen (float)?
Die Float Coprozessoren kommen erst bei recht fetten Prozessoren oder 
Spezialanwendungen ins Spiel. Trotzdem ist Floating Point ein Gebiet, 
bei dem ein ARM die 8- und die meisten 16-bit Prozessoren WEIT hinter 
sich laesst. Die Bestandtteile einer Float Zahl werden eben in 32-bit 
Haeppchen verarbeiet und nicht in 8-bit Haeppchen. Um ein Gefuelh dafuer 
zu bekommen brauchts nicht mal Hardware, z.B. bei Keil den ARM Compiler 
runterladen mit 16k Evaluierungslizenz, den Simulatir benutzen und mal 
ein paar kleine Berechnungen mit Stoppuhr durchfuehren. Das dann mit dem 
Prozessor vergelichen, den Du jetzt einsetzt.

Bin mir nicht 100% sicher ob Float in der Eval Lizenz nicht gesperrt 
ist??

Robert

Autor: Toto Loto (Firma: totoloto AG ;)) (totoloto133)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke ...
mal sehe was man damit anstellen kann ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.