Autor Thema: P-Mode --> Restart  (Gelesen 3418 mal)

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« am: 09. March 2004, 17:20 »
Also, zuerst mal ein Hallo;) ich lese das Magazin seit Anfang an und ihr seid schuld das ich wieder mit dem "Mist" angefangen hab *g*

So, nun mal zu dem Problem das ich hab.
Also, mein Bootloader lädt erstmal alles notwendige über den BIOS-Interrupt 13h, also den Kernel, die GDT und die IDT, alles soweit vollständig. Dann springt es logischerweise zum Kernel der als erstes die IRQ's 0h-0Fh nach nach 20h-2Fh kaskadiert damit ich nicht alle 18,2 Sekunden 'ne Double-Fault-Exception bekomm.
Dann werden die Adressen der GDT+IDT geladen (lgdt & lidt), die Interrupte vorher natürlich aus erstmal. Daraufhin wird das PE-Bit gesetzt worauf der Far-Jump folgen soll. Dann ist man (theoretisch) im PM, wo ich dann SS und die restlichen Seg-Register mit entsprechenden Selektoren bestücke. Dann soll er sich in ner schönen Endlosschleife verfangen*g*. Problem: Irgendwann nach dem Laden der GDT und IDT Adressen startet das ganze neu, wo genau lässt sich nicht feststellen. Ich vermute die CPU wird Triple-Faulted(is meines Wissens nach das einzige das die CPU zu solch einem Blödsinn treibt*g*). Hat jemand ne Idee woran's liegen könnte? Bin seit 2 Wochen an dem Problem...total am verzweifeln...rettet mich:'(

___tHx Roshl

PS: bin kein Nub und hab den Mist selbstgeschrieben nachdem ich mir das soweit selbst verklickert hab, nur um dem Geschrei vorzubeugen;)
PPS: wer Rechtschreibfehler findet muss einen ausgeben:D
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 am: 09. March 2004, 17:49 »
Auch dir soll geholfen werden. Ich hatte genau das selbe Problem bei meinen ersten Gehversuchen im PMode. Da muss nur ein Bit falsch sein und alles ist im Eimer.

Im Resource Center hab ich eine knappe Anleitung geschrieben wie man den Debug-Modus von Bochs benutzt. Damit kannst du deine Anweisungen Schrittweise ablaufen lassen und zu jedem Zeitpunkt den Inhalt der Register einsehen. Mir hat das geholfen den Fehler zu finden.

Wenn du Probleme mit dem Umgang des Debuggers hast, dann melde dich bei mir im ICQ.

mfg
TeeJay
----------------------
Redakteur bei LowLevel

mastermesh

  • Beiträge: 341
    • Profil anzeigen
    • http://www.kostenloser-laptop.de/
Gespeichert
« Antwort #2 am: 12. March 2004, 20:11 »
Ähhm, mal so ne Frage nebenbei:

hat jemand ne Ahnung, wie man den Rechner im PMode SICHER rebootet? Weil ich hah nämlich keine einzige Methode, die wirklich gut funktioniert... ein Triple Fault ist auch nicht gut, weil der nur eine bestimmte Bus Condition erzeugt, und auf die reagiert jedes Mainboard anders...

 

Einloggen