OSDev

для всех
Текущее время: 29 апр 2024, 19:48

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 00:45 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
начал алокировать планировщик задач и сразу столкнулся с проблемами,
когда ставлю CR3 сразу перестаёт всё работать но если из переадресации выкинуть video ram и BIOS
то оно начинает работать дальше,
но дальше я включаю эту переадресацию, и сразу же пишется fatall error
где ошибка там не пишет.

и чего с этим делать,
на epromt и video ram нужно делать переадресацию иначе с этим делом ни как не поработаешь,
почему fatall error срабатывает не понятно,
изначально ставил виртуальную память такую же как и реальную, а потом собирался двигать страници.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 09:15 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Ничего не понял.
Кто пишет "fatall error"?
Цитата:
где ошибка там не пишет.

Цитата:
сразу перестаёт всё работать

Так сразу или место ошибки неизвестно? Пройдись пошагово посмотри где вылетает.

В каком режиме ядра работаешь и какой режим у страниц выставлен? И какой режим у каталога страниц?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 12:28 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
scuter писал(а):
начал алокировать планировщик задач и сразу столкнулся с проблемами,
когда ставлю CR3 сразу перестаёт всё работать но если из переадресации выкинуть video ram и BIOS
то оно начинает работать дальше

Как это "выкинуть"? Страничная трансляция действует на всё адресное пространство без исключений.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 19:07 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
Himik писал(а):
Как это "выкинуть"? Страничная трансляция действует на всё адресное пространство без исключений.

это значит там где раньше были epromt и video ram подставлена переадресация на другую область или поставлены нули в таблицах
pavia писал(а):
Так сразу или место ошибки неизвестно? Пройдись пошагово посмотри где вылетает.

да пива у тебя хорошие вопросы, VM выдаёт окошко на котором написано fatall error и выключается. (где и в чём была ошибка не пишет.
VM не знает от чего у него эпилепсия.
)

место где происходит первая ошиюка,
Код:
mov eax, [paging_dir]
mov cr3, eax


записи page directory entries выгледят так
Цитата:
00232003
00233003
00234003
00235003
00236003
00237003
00238003
00239003
0023A003

записи page table entries выгледят так
Цитата:
00000003
00001003
00002003
00003003
00004003
00005003
00006003



место где происходить вторая ошибка,
Код:
mov eax, cr0
or  eax, 0x80000001
mov cr0, eax


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 19:36 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 20:36 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
это в защищённом режиме такое происходит,
и прерывания в этот момент включены.
виртуальная машина даёт фатальную ошибку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 21:21 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
scuter, для поиска ошибок лучше использовать Bochs. В файл bochsout.txt записывается состояние регистров процессора на момент фатальной ошибки или выключения. Можно использовать и отладчик bochsdbg.


Последний раз редактировалось Himik 30 авг 2014, 21:33, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 21:27 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
я не дебагер спрашивал, а причину ошибки,
в каком месте ошибка я и так знаю и состояние регистров мне тоже известно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 30 авг 2014, 21:39 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Процессорные команды и приведённая часть таблицы страниц - рабочая. Если эта адресация идёт линейно до 0x100000 (1МБ), то ошибки не будет.

Если состояние регистров известно, то смотри cr2 - адрес страницы.

Фатальная ошибка в VM скорей всего от того, что твои обработчики General protection и Page fault не ловят исключения. Защищённый режим тем и интересен, что все ошибки программы можно закрыть внутри системы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mmu не работает с video ram
СообщениеДобавлено: 31 авг 2014, 09:38 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
scuter.
Падение виртуальной машины может быть только в двух случаях.
1. Не включены прерывания и мы имеем тройную ошибку.
2. Неправильное поведение виртуальной машиной.


1. Случай проверяться вручную надо быть внимательным.
2. Второй случай трудно отследить и понять. Подобное наблюдал в Boche ошибка происходила при выключенных прерываниях при переходи в защищенный режим. Но Bochs проглатывал и продолжал работать причем непредсказуемое число команд. Если я добавлял после включение страничной адресации он падал на ней.

Лично я думаю что место ошибки определено не верно. Скорее всего она где-то раньше и возможно связана не со страницами. А например с самим переходом в защищенный режим. Попробуй при переходи в защищенный режим не отключать прерывания.

Как вариант надо проверять весь код. Напиши простой пример выкинь всё лишнее оставь включение защищенного режима и страничную адресацию и потихоньку добавляй другие функции и процедуры.

Тоже у меня был баг долго искал. В реальном режиме у меня есть функция VirtualCopy которая использовала карту страниц для копирования с одного виртуального адреса в другую. Долго не знал что в ней баг. При определенных условиях срабатывал внутренний if. В одной из веток этого if к адресу не добавлялось смещение.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

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


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

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


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

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