Hi, angenommen auf einem 32bit-System ist ein 32bit-Port Read/Write, aber ein SubFeld darin, sagen wir 3 bits, kann nur ausgelesen werden, aber nicht beschrieben werden. Es gibt viele solcher Ports. Sie werden im Linux-Kernel mit readl() und writel() angesprochen. Hinter einem Port steckt doch nur eine RAM/ROM-Zelle, aber kein Code, oder? Wie wird dann so etwas wie das oben geschilderte (ReadOnly-SubFeld an einem R/W-Port) eigentlich realisiert in der Hardware?
:
Bearbeitet durch User
Mutluit M. schrieb: > Hinter einem Port steckt doch nur eine RAM/ROM-Zelle, aber kein Code, > oder? RAM/ROM sicherlich nicht, sondern eben ein I/O Port, der konfortablerweise über eine Memory-Addresse angesprochen werden kann. In vielen Fällen haben I/O Ports sog. Push-/Pull-Ausgangstreiber, die den Ausgang sowohl VCC als auch mit GND verbinden können. Wenn beide Treiber (high-side und low-side) inaktiv sind, "floatet" der Ausgang (auch High-Z oder tri-stated genannt). In diesem Zustand kann der I/O als Eingang verwendet werden und folgt der extern angelegten Spannung. Beim "write" wird also der Ausgangstreiber gesetzt, beim "read" der Zustand der Pins abgefragt. Ist ein Pin auf Eingang geschaltet (Maskierung), sorgt eine Logik dafür, dass der per "write" gesetzte Wert ignoriert wird und der Pin "tri-stated" bleibt.
Moin, Mutluit M. schrieb: > Hinter einem Port steckt doch nur eine RAM/ROM-Zelle, aber kein Code, > oder? Ja, so ungefaehr. Aber hinter jedem Bit des Ports steckt ja eine einzelne "RAM/ROM-Zelle". Also kann man die auch wild kombinieren. Und z.B. aus Spass an der Freud' ein Register bauen, in dem nur jedes 2. Bit beschreibbar ist. Hardware kann man durch Sprachen wie VHDL oder Verilog beschreiben. Also steckt da dann auch "Code" dahinter. Ginge aber auch mit einem Schaltplan mit z.B. TTL Chips. Gruss WK
Mutluit M. schrieb: > Wie wird dann so etwas wie das oben geschilderte (ReadOnly-SubFeld an > einem R/W-Port) eigentlich realisiert in der Hardware? Nur an write Ausgabeports steht hardwaretechnisch ein FlopFlop (RAM-bit) dahinter, deren Q-Ausgang mit dem Output-Pin verbunden ist An den nur read Eingabebits eben nicht, die leiten nur den Zustand am Pin beim Lesen weiter nach innen.
Jetzt ist alles klar :-) Herzlichen Dank & Grüsse an alle.
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.