Treiber Programmierung

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 14, 2008 7:33 pm

cloidnerux hat geschrieben:aslo wenn ich dort 0xFFFFFF angebe, dann muss ich nur regelmäßig kontrolliren ob dort irgendwas gesetzt wurde? oder?
Nein.

Du musst überhaupt nichts regelmäßig kontrollieren.
Du schreibst eine Funktion, die aufgerufen werden soll, wenn ein Interrupt ausgelöst wird.
Die Adresse zu dieser Funktion(en) schreibst du in die IDT.

Passiert dann ein Interrupt (der UNTERBRICHT, wie der Name schon sagt, deinen gerade ausgeführten Code, nichts mit nachgucken) wird zu dieser Funktion gesprungen und die Funktion wird ausgeführt.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Di Okt 14, 2008 7:34 pm

äh wie weiß ich wo diese funktion gespeichert ist?
ich mien, wie greift der Prozessor darauf zu?
Und wie bekomme ich die Adresse raus?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 14, 2008 7:34 pm

In dem du den "&" Operator davor setzt??
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Di Okt 14, 2008 7:39 pm

eine Funktion??????
ich mien, die ist doch im Programm intergriert.
Zweite frage, wenn der Prozessor das automtisch aufruft, dann könnte man doch in einer funktion auf ein zeichen warten, und wenn man eine taste betätigt, dann führt der Prozessor die funktoin aus, die wertet das zeichen aus und speichert es in einer variable. wäre das möglich??
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 14, 2008 7:51 pm

Natürlich ist die Funktion "im Programm integriert", aber das ändert doch nichts an der Tatsache, dass sie an einer gewissen Adresse im Speicher liegt?
Oder was meinst du, wo dein Code ist?
Der liegt mit all dem anderem Rest im Speicher und kann genauso wie eine Variable behandelt werden. Zumindest solange du als Kernelprogrammierer das nicht unterbindest.

Natürlich ist das möglich. Die Variable, von der du sprichst, würde ich als Buffer bezeichnen...
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Di Okt 14, 2008 7:53 pm

Ich meine folgendes: Funktion getstring() wartet bis sich in der variable buf was ändert. Durch eine while schleife.
buf wird durch den Interruptaufruf der tastaur gestartet und speichert den scancode oder das zeichen.
Eigentlich wärde das ja Polling oder?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 14, 2008 7:58 pm

cloidnerux hat geschrieben:Ich meine folgendes: Funktion getstring() wartet bis sich in der variable buf was ändert. Durch eine while schleife.
buf wird durch den Interruptaufruf der tastaur gestartet und speichert den scancode oder das zeichen.
Eigentlich wärde das ja Polling oder?
Das ja, wenn du mit einer while-Schleife wartest.
Du könntest auch die CPU davon abhalten, die Funktion weiterzubearbeiten, indem du irgendein Flag setzt.
So wie das "busy" (glaube ich) bei den Tasks (wie es im Endeffekt dann auch laufen sollte).

Heißt die CPU macht derweil was anderes.
Die muss ja nicht zusammen mit dem User warten, der gerade die Lösung zur gestellten Frage zusammenbastelt.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Di Okt 14, 2008 8:02 pm

Heißt soviel wie, wenn die whileschleife ausgeführt wird, dann wir kein interrupt ausgeführt?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 14, 2008 8:04 pm

cloidnerux hat geschrieben:Heißt soviel wie, wenn die whileschleife ausgeführt wird, dann wir kein interrupt ausgeführt?
Nein.
Wenn du die while Schleife ausführtst, macht der Prozessor nichts sinnvolles.
Er zählt praktisch Schäfchen.

Du kannst den Prozessor aber auch dazu bringen, während du auf eine Eingabe wartest etwas anderes zu tun. (einen anderen Task ausführen).
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Di Okt 14, 2008 8:06 pm

ich will ja nur, das er den interrupt auslöst. tut er das wärend der whilöe schleife?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten