HILFE!!!
Mein Paging bricht immer bei der Funktion "switch_page_directory()" ab.
Es bleibt immer bei der ersten Anweisung in dieser Funktion hängen.
void switch_page_directory(page_directory_t *dir)
{
current_directory = dir;
#ifdef DEBUG
puts("switch_page_directory(): asm volatile(mov %0, %%cr3:: r(dir->physicalAddr));\n");
#endif
asm volatile("mov %0, %%cr3":: "r"(dir->physicalAddr));
uint32_t cr0;
#ifdef DEBUG
puts("switch_page_directory(): asm volatile(mov %%cr0, %0: =r(cr0));\n");
#endif
asm volatile("mov %%cr0, %0": "=r"(cr0));
#ifdef DEBUG
puts("switch_page_directory(): cr0 |= 0x80000000;\n");
#endif
cr0 |= 0x80000000; // Paging aktivieren
#ifdef DEBUG
puts("switch_page_directory(): asm volatile(mov %0, %%cr0:: r(cr0));\n");
#endif
asm volatile("mov %0, %%cr0":: "r"(cr0));
#ifdef DEBUG
puts("switch_page_directory(): done. Jump to initialise_paging()...\n\n");
#endif
}
Danke für alle Antworten.