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
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.
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.