Hallo! Ich habe hier register, dass ich gerne nutzen möchte (siehe Anhang). Was ich nicht verstehe ist das Setzen der Bits, um eine bestimmte Konfiguration zu ersetzen. Ist das eine Art Sicherung? Betrifft read, als auch write. Vielen Dank und Grüße!
Ist eine etwas seltsame (aber einfache) Umsetzung in der Hardwarelogic. Sieht so aus, als ob die bits im oberen Byte zum setzen des Flipflops (Irq_enable register) und im unteren zum zurücksetzen genutzt wird. Read betrifft es übrigens nicht, da sind nur die unteren 8bit benutzt.
Der Vorteil der verwendeten Schreiblogik liegt darin, dass man mit einem einzigen Schreibzugriff jedes der sechs Bits wahlweise setzen, löschen oder beibehalten kann. Bei einem "gewöhnlichen" I/O-Register müsste man erst den Inhalt lesen, mit einer UND-Operation die zu löschenden Bits löschen, mit einer ODER-Operation die zu setzenden Bits setzen und schließlich das Ergebnis wieder ins Register schreiben.
Ah, interessant! Mir erschließt sich jedoch noch nicht der eigentliche Grund oder Zweck dieses Verfahrens. Dient es dazu, bestimmte Zustände z.B. bei Interrups zu vermeiden? Vielen Dank und Grüße
Dein letzter Post ist zwar schon ein paar Tage her, aber vielleicht ist die Antwort immer noch von Nutzen: > Mir erschließt sich jedoch noch nicht der eigentliche Grund oder Zweck > dieses Verfahrens. Diese spezielle Schreiblogik dient wohl in erster Linie der Ausführungs- geschwindigkeit. Man ersetzt damit bis zu vier Befehle durch einen oder zwei. Dabei wird zusätzlich Programmspeicher eingespart. > Dient es dazu, bestimmte Zustände z.B. bei Interrups zu vermeiden? Als angenehmer Nebeneffekt sind die Bitmanipulationen auf Registern atomar, können also nicht durch einen Interrupt unterbrochen werden. Wenn sowhl im Interrupthandler als auch im Hauptprogramm Bits desselben Registers geändert werden, müssen somit keine besonderen Vorkehrungen zur Kollisionsvermeidung getroffen werden, was die Reaktionszeit auf Interrupts verringert und etwas zusätzliche Rechenzeit und Programmgröße einspart.
@yalu: Ich würde da Haupt- und Nebeneffekt andersherum sehen. Und seltsam ist das überhaupt nicht. I/O-Register sollte man nicht als normalen Speicher ansehen, die Zugriffe sind Kommandos an die Hardware, etwas zu tun. Jürgen
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.