Autor Thema: Paging Fehler: Bit 31 in cr0  (Gelesen 8618 mal)

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #20 am: 25. June 2008, 12:35 »
also der fehler tritt direct beim einschalten vom Paging ein.
und zwar gibt dein highmem_alloc() keinesfalls werte über 16MB aus, sonder werte wie 0x18000, das liegt möglicher weise daran das BootInfo->mem_{high,low} werte in KB angeben.
Vermutlich sollte es bei dir also so aussehen:
highmem_init(0x1000000, BootInformation->mem_high+BootInformation->mem_low)*1024-0x1000000);
[edit]
deine memset funktion hat nen fehler:
du benutzt edi sicherst aber das esi register
[/edit]

[edit]
deine GetCR2 funktio ist ne kopie von GetCR0
und der beim aufruf in der isrs.c solltest du noch ( ) dranhängen, du wilst ja nicht die adresse der funktion ausgeben, oder ;)
das behebt zwar noch nicht alle fehler, aber es sollte schon mal helfen die restlichen zu finden
[/edit]
« Letzte Änderung: 25. June 2008, 14:13 von MNemo »
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

Sapphire

  • Beiträge: 16
    • Profil anzeigen
Gespeichert
« Antwort #21 am: 25. June 2008, 16:33 »
Ok danke. Werde das ganze jetz mal Testen mit den Tips die ihr mir gegeben habt. Wenn ich selbst jetzt nichts mehr finde werde ich mcih nochmal melden.

[EDIT]
Die memset Funktion ist die hier aus dem Forum aus dem Resourcen Teil. Vll sollte die Dort auch berichtigt werden.
[/EDIT]
« Letzte Änderung: 25. June 2008, 16:41 von Sapphire »

Sapphire

  • Beiträge: 16
    • Profil anzeigen
Gespeichert
« Antwort #22 am: 25. June 2008, 19:26 »
OK. Läuft nun alles.

Nach noch einem kleinen Fehler der mir eine Page-Fault bei 0xFFFFFFFF angezeigt hat, funktioniert nun alles.
(Wen es interesiert: Der Fehler liegt in der Timer-Funktion die jede Sekunde etwas auf den Bildschrim schreibt.)

Danke an alle nochmal.

 

Einloggen