OSDev

для всех
Текущее время: 27 апр 2024, 22:11

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Измерение времени в ОС
СообщениеДобавлено: 14 сен 2013, 14:16 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Понял одну свою проблему - я отображал страницу для MMIO APIC на физические адреса, определяемые моим менеджером физической памяти, а надо было один в один, то есть вот так
Код:
void* apic_base_vaddr = (void*) get_apic_base(); /* Эта функция возвращает базовый адрес БЕЗ ФЛАГОВ */

   map_pages(KERNEL_PAGE_TABLE,
           apic_base_vaddr,                      /* Адрес в ВАП ядра */
           (physaddr_t) apic_base_vaddr,   /*  Физический адрес - начало MMIO APIC */
           1,                                         /*  одна страница */
           0x13);        /* Атрибуты: present, writeable, uncacheable */

а если не один в один, то варьировать можно было виртуальный адрес (загрузив его потом в MSR 0x1B), но не физический MMIO
Теперь посмотрел содержимое регистров, после включения питания оно таково
Изображение
Регистр с версией содержит 0x50011 что я полагаю верное значение.
Счетчик теперь тикает, однако прерывание не происходит. Разбираюсь дальше


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерение времени в ОС
СообщениеДобавлено: 15 сен 2013, 20:36 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
После того кода настройки, должно быть ещё вот это
Код:
   //Set LVT LINT0 Register
   UINT LVT0 = *(volatile UINT*)0xFEE00350;
   LVT0 &= 0xFFFE58FF; //Set Delivery Mode = Fixed
   *(volatile UINT*)0xFEE00350 = LVT0;
   //Set LVT LINT1 Register
   UINT LVT1 = *(volatile UINT*)0xFEE00360;
   LVT1 &= 0xFFFE58FF;
   LVT1 |= 0x400; //Set Delivery Mode = NMI
   *(volatile UINT*)0xFEE00360 = LVT1;

Хотя может работать и без него. Но я таймер LAPIC не использовал, поэтому всякое может быть.


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

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


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

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


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

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