OSDev http://osdev.su/ |
|
Вылет на смене страничной директории.(туториалы James Molloy http://osdev.su/viewtopic.php?f=6&t=826 |
Страница 1 из 1 |
Автор: | ByMsx [ 25 ноя 2013, 17:28 ] |
Заголовок сообщения: | Вылет на смене страничной директории.(туториалы James Molloy |
Код: [bymsx@bymsx-K53SM kernel]$ qemu-system-i386 -kernel myos.bin KVM internal error. Suberror: 1 emulation failure EAX=80000011 EBX=0010a000 ECX=00000001 EDX=00100e30 ESI=00000000 EDI=00109000 EBP=00000000 ESP=00006edc EIP=001011f7 EFL=00010086 [--S--P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0010 00000000 ffffffff 00c09300 DPL=0 DS [-WA] CS =0008 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA] SS =0010 00000000 ffffffff 00c09300 DPL=0 DS [-WA] DS =0010 00000000 ffffffff 00c09300 DPL=0 DS [-WA] FS =0010 00000000 ffffffff 00c09300 DPL=0 DS [-WA] GS =0010 00000000 ffffffff 00c09300 DPL=0 DS [-WA] LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy GDT= 00103000 00000027 IDT= 00103060 000007ff CR0=80000011 CR2=00000000 CR3=00108d10 CR4=00000000 DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 DR6=ffff0ff0 DR7=00000400 EFER=0000000000000000 Это ошибка... Код: void switch_page_directory(page_directory_t *dir)
{ current_directory = dir; asm volatile("mov %0, %%cr3":: "r"(dir->addresses)); u32int cr0; asm volatile("mov %%cr0, %0": "=r"(cr0)); cr0 |= 0x80000000; // Enable paging! asm volatile("mov %0, %%cr0":: "r"(cr0)); // вот на этой строке } |
Автор: | pavia [ 25 ноя 2013, 17:53 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Прерывания включи. И посмотри какое именно происходит первым и ещё раз сверь место прерывания, а то оно может измениться. |
Автор: | ByMsx [ 25 ноя 2013, 19:53 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Хотел сказать, что они итак включены, просто ничего не идёт в консоль, а потом вспомнил, что вначале кода стоит asm volatile("cli"); вот я олень... Сейчас посмотрю, большое спасибо! |
Автор: | ByMsx [ 25 ноя 2013, 21:57 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Не.. всё равно падает. |
Автор: | pavia [ 26 ноя 2013, 05:26 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Так какое прерывание исключение происходит? |
Автор: | ByMsx [ 26 ноя 2013, 14:04 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Извиняюсь, не так выразился. Я имел ввиду, что прерывание не происходит. |
Автор: | pavia [ 27 ноя 2013, 05:14 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Значит не судьба. Прямым текстом в верху написано ошибка эмулятора. Попробуй сменить эмулятор. Или пробуй менять код пока не заработает. |
Автор: | ByMsx [ 28 ноя 2013, 10:59 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Проблема решена!!!! Огромное спасибо, что всё же пытались мне помочь! Дело было в том, что страницы были все не(как сказать align по-русски), поэтому процессор падал, а так как я толком с бошем разобраться нормально не смог(юзаю qemu), всё решено!! |
Автор: | SII [ 28 ноя 2013, 12:11 ] |
Заголовок сообщения: | Re: Вылет на смене страничной директории.(туториалы James Mo |
Align -- выравнивание, mapping -- отображение и т.д. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |