Autor Thema: Neustart nach GDT setup  (Gelesen 1733 mal)

SplittyDev

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« am: 21. July 2014, 12:51 »
Moin leute,
ich hab mich jetzt auch mal bisschen mit OS dev beschäftigt und hab mir da nen kleinen Kernel geschrieben.

Zuerst die Konsole implementiert mit allem was man braucht, funktioniert auch super.
Jetzt bin ich am GDT angelangt und habe leider das Problem, dass mein Kernel nach dem
neuladen der segment register neustartet.

Ich habe meinen code ca. 2 Stunden lang angestarrt und habe immernoch keine Idee,
weshalb der Triple Fault passiert..

Meine gdt.h und gdt.c habe ich im anhang verlinkt,
der Assembler Teil sieht so aus:

gdt_reload_segments:
mov $0x10, %ax
mov %ax, %ds
mov %ax, %es
mov %ax, %fs
mov %ax, %gs
mov %ax, %ss
ljmp $0x8, $.1

.1:
ret

Wäre nett, wenn da jemand nen kurzen Blick drauf werfen könnte.
Grüße, Splitty

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 21. July 2014, 13:15 »
Du hast schlecht abgetippt. Das "limit" im gdtp ist ein uint16_t, kein uint64_t.

SplittyDev

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 21. July 2014, 13:50 »
oh.. :')
Vielen Dank.. ich glaub das wär mir niemals aufgefallen ^^

 

Einloggen