Interrupt-Handling
-
@Quiche-Lorraine
Sind Interrupts hier fraglich? Ja und nein. Ich weiss nicht was der OP eigentlich will. Aber er hat erstmal primär nach Interrupts gefragt und dann zusätzlich die Tastatur erwähnt.Jetzt gibt es drei Möglichkeiten:
- Er kennt sich gut genug aus um zu wissen dass er Interrupts braucht
- Er kennt sich so schlecht aus dass ihn der von mir gepostete Link ausreichend demotiviert und er es aufgibt
- Irgendwas dazwischen
Bei 1 und 2 passt der Link. Und bei 3 hat er einfach Pech gehabt. Die Frage hab ich trotzdem beantwortet. Mehr oder weniger - Beispielcode hab ich ihm keinen gegeben. Hätte ich schnell welchen gefunden, hätte ich auch das getan. Trotz der (grossen) Gefahr dass der Code auf seinen Anwendungsfall dann gar nicht passt (real mode vs. protected mode vs. USB-ohne-legacy-BIOS etc.). Wäre mir dann aber Schnuppe gewesen. Weil: er soll halt auch mal lernen richtig Fragen zu stellen.
Und gerade bei Leuten die sporadisch bis gar nicht zurückschreiben wenn man ihnen antwortet, ist mir meine Zeit zu schade als dass ich versuchen würde es aus ihm herauszufragen was er nun eigentlich will.
-
@Mechanics Ja, ich find's bei Boost Libraries immer ulkig dass Google hier grundsätzlich die Doku zu (z.T. sehr) alten Versionen als erstes listet.
-
PrettyOS verfügt über einen Keyboardtreiber: https://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/kernel/hid/
Dort findet man die wesentlichen Elemente in konkreter Form.
-
@Erhard-Henkes ich habe da mal eine frage. in der keyboard.c steht z.b. folgendes:
static void keyboard_updateLED(void) { outportb(0x60, 0xED); inportb(0x60); outportb(0x60, LED); inportb(0x60); }
sind die ports eigentlich irgendwie genormt oder so? woher weißt du, dass die led über 0x60 angesteuert wird?
-
@Wade1234 IBM PS/2 ... https://wiki.osdev.org/PS/2_Keyboard
-
@Swordfish also ohne das jetzt ausprobiert zu haben: ich kann auf meinem experimentierrechner mit freebsd die tastatur-led blinken lassen, indem ich /dev/port öffne und die entsprechenden werte an die entsprechenden stellen schreibe? also vorausgesetzt, das board ist "ibm-kompatibel"?
-
@Wade1234 https://stackoverflow.com/a/219154/10735411
OpenBSD machts doch selbst nicht anders: https://github.com/openbsd/src/blob/master/sys/dev/pckbc/pckbdreg.h
-
@Swordfish also ich sags mal so: ich weiß, dass ich mir unter unix diese ganze geschichte mit gerätetreibern usw. eigentlich sparen kann, indem ich direkt in die ports oder in den speicher schreibe. aber es gehörte irgendwie immer zu meinen ungelösten problemen, welche ports und welche speicheradressen das im endeffekt sind, weil mir niemand diese fragen beantworten konnte.
-
@Wade1234 sagte in Interrupt-Handling:
ich weiß, dass ich mir unter unix diese ganze geschichte mit gerätetreibern usw. eigentlich sparen kann
Im Protected Mode als User in Ring 3? Echt?
-
@Swordfish als user nicht, aber root darf ja.
-
Lol.
Was für ein Dreckssystem für ein elendiges
-
@Wade1234 sagte in Interrupt-Handling:
@Swordfish als user nicht, aber root darf ja.
https://www.google.com/?q=x86%20privilege%20level%20architecture
-
@Wade1234 sagte in Interrupt-Handling:
@Erhard-Henkes ich habe da mal eine frage. in der keyboard.c steht z.b. folgendes:
static void keyboard_updateLED(void) { outportb(0x60, 0xED); inportb(0x60); outportb(0x60, LED); inportb(0x60); }
sind die ports eigentlich irgendwie genormt oder so? woher weißt du, dass die led über 0x60 angesteuert wird?
-
Dieser Beitrag wurde gelöscht!