OSDev

для всех
Текущее время: 01 мар 2021, 19:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 25 ноя 2013, 17:28 

Зарегистрирован: 23 окт 2013, 22:26
Сообщения: 13
Код:
[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)); // вот на этой строке
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 ноя 2013, 17:53 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1125
Прерывания включи. И посмотри какое именно происходит первым и ещё раз сверь место прерывания, а то оно может измениться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 ноя 2013, 19:53 

Зарегистрирован: 23 окт 2013, 22:26
Сообщения: 13
Хотел сказать, что они итак включены, просто ничего не идёт в консоль, а потом вспомнил, что вначале кода стоит asm volatile("cli"); вот я олень...
Сейчас посмотрю, большое спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 ноя 2013, 21:57 

Зарегистрирован: 23 окт 2013, 22:26
Сообщения: 13
Не.. всё равно падает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 ноя 2013, 05:26 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1125
Так какое прерывание исключение происходит?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 ноя 2013, 14:04 

Зарегистрирован: 23 окт 2013, 22:26
Сообщения: 13
Извиняюсь, не так выразился. Я имел ввиду, что прерывание не происходит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 ноя 2013, 05:14 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1125
Значит не судьба. Прямым текстом в верху написано ошибка эмулятора. Попробуй сменить эмулятор. Или пробуй менять код пока не заработает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 ноя 2013, 10:59 

Зарегистрирован: 23 окт 2013, 22:26
Сообщения: 13
Проблема решена!!!!
Огромное спасибо, что всё же пытались мне помочь!
Дело было в том, что страницы были все не(как сказать align по-русски), поэтому процессор падал, а так как я толком с бошем разобраться нормально не смог(юзаю qemu), всё решено!!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 ноя 2013, 12:11 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1405
Align -- выравнивание, mapping -- отображение и т.д.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB