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/