Hallo,
ich habe mich mal wieder hingesetzt und versucht einen Tastaturtreiber zu entwerfen, damit man auch was machen kann...
Leider wird ständig ein Reboot ausgeführt.
Meine Tastatur-Initialisierung:
Kommentiere ich die while-Schleife und send_command in keyboard_init() aus funktioniert alles normal.
Ich vermute, dass es an inb() und outb() liegt.
Hier mein Code für inb() und outb():
Der Compiler zeigt keine Fehler an.
Weiß jemand was das Problem ist und wie ich es beheben kann?
Schonmal Danke
MrTom3715
ich habe mich mal wieder hingesetzt und versucht einen Tastaturtreiber zu entwerfen, damit man auch was machen kann...
Leider wird ständig ein Reboot ausgeführt.
Meine Tastatur-Initialisierung:
Code: [Auswählen]
void keyboard_init(void)
{
while ((inb(0x64) & 0x1)) {}
// Tastatur aktivieren
send_command(0xF4);
kprintf("Tastatur initialisiert!");
}
void send_command(uint8_t command)
{
while ((inb(0x64) & 0x2)) {}
outb(0x60, command);
}Kommentiere ich die while-Schleife und send_command in keyboard_init() aus funktioniert alles normal.
Ich vermute, dass es an inb() und outb() liegt.
Hier mein Code für inb() und outb():
Code: [Auswählen]
void outb(unsigned short _port, unsigned char _data)
{
__asm__ ("outb %0, %1" : : "a" (_data), "Nd" (_port));
}
unsigned char inb(unsigned short _port)
{
unsigned char result;
__asm__ ("inb %1, %0" : "=a" (result) : "Nd" (_port));
return result;
}Der Compiler zeigt keine Fehler an.
Weiß jemand was das Problem ist und wie ich es beheben kann?
Schonmal Danke

MrTom3715

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert