Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - capstrovor

Seiten: [1]
1
Ich bin gerade dabei die GDT einzurichten. Ich arbeite mit GRUB, es ist
also schon eine GDT vorhanden, deshalb lade ich die Segmentregister neu.
Ich arbeite nach diesem(n) Tutorial(s):
speziell für GDT: http://www.lowlevel.eu/wiki/Global_Descriptor_Table
Hauptseite: http://www.lowlevel.eu/wiki/Teil_5_-_Interrupts

Sobald ich Segmentregister neu lade, wird ein reboot ausgeführt. Ich
habe schon eine Vermutung. Und zwar wird im Tutorial angegeben, das
jeder Eintrag in die GDT 8 Byte groß ist. Aber wenn ich den Prototyp der
Funktion, die für die Erstellung eines Eintrags zuständig ist, anschaue,
dann sind darin 2 unsigned und 1 normaler int enthalten. Das wären ja
dann 32bit*3 /8 = 12 Byte oder. Da ich ja in ein bestimmtes Register
Anfang und Endadresse der GDT schreiben muss, denke ich dass hier der
Fehler liegt. Wenn ich aber 12 Byte für die Länge benutze taucht der
selbe Fehler wieder auf. Kann jemand von euch den Fehler finden?

Im Anhang befinden sich meine c und Assemblerdateinen
2
Lowlevel-Coding / GDT laden - Problem:
« am: 21. April 2014, 20:01 »
Ich bin gerade bei Teil 5 des Lowleveltutorials und habe ein Problem.

Ich rufe in meiner init-Funktion die Funktion init_gdt() auf. In der werden die ganzen Einträge mit set_entry(..) eingetragen.
Dann wird im Tutorial die Funktion load_gdt() aufgerufen. Im Tutorial wird auf eine Beschreibung der GDT verlinkt. Auf dieser Seite ist auch ein Punkt "GDT laden".
Dort steht am Anfang folgender Code:
static uint64_t gdt [GDT_ENTRIES];
Aber diesen Datentyp gibt es ja gar nicht? Wie soll das funktionieren?
 
3
Hallo!
Ich bin gerade beim Hello World Teil des Lowlevel Tutorials und hänge schon  :|
Nach dem Befehl qemu -kernel kernel bekomme ich diese Fehlermeldung:
Error while fetching elf kernel from rom
Ich hab qemu so gebuildet wie es im Tutorial beschrieben ist.
Kennt jemand das Problem?

mfg
Seiten: [1]

Einloggen