Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аппаратные прерывания в dos, :::::::::::::::::::::::::::::::::::::::: 
V
    Опции темы
SABROG
Дата 11.1.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: нет
Всего: 91



Да нет, все 2 контроллера врятли используются на полную. Т.е. есть свободные IRQ на которых не висит пока ничего. Как узнать человеку, что IRQ свободен ? Опрашивать вручную все известные порты ?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
xach
Дата 11.1.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



ух...получил я зачёт...достало это СПО, из-за него нормальным и интересным ни чем не заняться =(...но вот теперь-то можно будет вернуться к теме music in dos!.. smile 

Всем спасибо за помощь!
PM MAIL   Вверх
Akina
Дата 11.1.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(SABROG @  11.1.2008,  14:08 Найти цитируемый пост)
Как узнать человеку, что IRQ свободен ? 

Сведения о выделении аппаратных прерываний находятся в таблицах БИОС - ведь эта инфа, об использовании распределяемых IRQ, выводится таблицей при старте компа... в принципе надо сканировать DMI, но уж больно гиморно и реализационно-зависимо.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SABROG
Дата 11.1.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: нет
Всего: 91



Цитата(Akina @ 11.1.2008,  18:41)
Цитата(SABROG @  11.1.2008,  14:08 Найти цитируемый пост)
Как узнать человеку, что IRQ свободен ? 

Сведения о выделении аппаратных прерываний находятся в таблицах БИОС - ведь эта инфа, об использовании распределяемых IRQ, выводится таблицей при старте компа... в принципе надо сканировать DMI, но уж больно гиморно и реализационно-зависимо.

Ну вот я потому и говорю, подобные задачи на дипломные работы скорее тянут, чем на курсовые smile


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
xach
Дата 11.1.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



SABROG, это не курсовая, а дополнительное задание к лабораторным.
PM MAIL   Вверх
SABROG
Дата 12.1.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: нет
Всего: 91



Тем более, тут достаточно человеку рассказать почему не получилось определить, какие попытки предпринимались и что мешало, после такого доклада не только зачет бы поставили, да еще бы похвалили и поставили другим в пример  smile 


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
MAKCim
Дата 12.1.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(SABROG @  11.1.2008,  13:08 Найти цитируемый пост)
Как узнать человеку, что IRQ свободен ?

просмотреть таблицу перенаправлений APIC
все, что замаскировано, то не используется


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
SABROG
Дата 12.1.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: нет
Всего: 91



Я думал об этом, но не был уверен (да и сейчас не уверен), к тому же мало ли кто замаскировал прерывание.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
MAKCim
Дата 12.1.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(SABROG @  12.1.2008,  15:59 Найти цитируемый пост)
к тому же мало ли кто замаскировал прерывание.

да, такая ситуация возможна
линия IRQ может быть замаскирована если она не используется или активен обработчик соответствующего прерывания
можно попробовать просканировать таблицу несколько раз через некоторые промежутки времени


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
xach
Дата 12.1.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



MAKCim, если обработчик активен, то твоя прога не активна и нестыковки не произойдёт...
c unix.ginras.ru:
Функция APIC предоставила возможность без конфликтов работать двум устройствам на одном IRQ. Работая в паре, эти две опции прекрасно дополняют друг друга и "разводят" конфликлы оборудования на почве IRQ. НО! Процесс этот закрыт и на него нет специфической документации.

Основное при работе ACPI и APIC - это таблица DSDT, определяющая правила их работы. Она имеется в любой прошивке BIOS в бинарном виде. Intel открыла спецификацию на свои материнские платы и на алгоритм работы ACPI и APIC. Остальные производители - нет.
eof

а как эту таблицу DSDT посмотреть и где она лежит?
PM MAIL   Вверх
MAKCim
Дата 12.1.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(xach @  12.1.2008,  16:41 Найти цитируемый пост)
если обработчик активен, то твоя прога не активна и нестыковки не произойдёт...

неа
чисто гипотетически
допустим в обработчике происходит исключение и управление передается на другой участок кода
в котором идет проверка APIC
т. к обработчик прерывания не завершен, то и соответствующая линия IRQ может быть замаскирована
Цитата(xach @  12.1.2008,  16:41 Найти цитируемый пост)
Функция APIC предоставила возможность без конфликтов работать двум устройствам на одном IRQ.

да, и что?
Цитата(xach @  12.1.2008,  16:41 Найти цитируемый пост)
это таблица DSDT, определяющая правила их работы. Она имеется в любой прошивке BIOS в бинарном виде.

только в BIOS, который поддерживает ACPI
кроме того
DSDT ничего не определяет
в ней содержится AML код, интерпретируемый AML-интерпретатором ядра (в случае если система является ACPI-совместимой)
возможно, вы имели в виду MADT (Multiple APIC Description Table)

Добавлено через 6 минут и 7 секунд
Цитата(xach @  12.1.2008,  16:41 Найти цитируемый пост)
а как эту таблицу DSDT посмотреть и где она лежит? 

Цитата

OSPM finds the Root System Description Pointer (RSDP) structure by searching physical memory ranges
on 16-byte boundaries for a valid Root System Description Pointer structure signature and checksum match
as follows:
• The first 1 KB of the Extended BIOS Data Area (EBDA). For EISA or MCA systems, the EBDA can
     be found in the two-byte location 40:0Eh on the BIOS data area.
• The BIOS read-only memory space between 0E0000h and 0FFFFFh.

RSDP содержит указатель на RSDT
RSDT содержит адреса других таблиц, в том числе и DSDT

Это сообщение отредактировал(а) MAKCim - 12.1.2008, 17:31


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
xach
Дата 12.1.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



Цитата(MAKCim @  12.1.2008,  17:29 Найти цитируемый пост)
Цитата(xach @  12.1.2008,  16:41 Найти цитируемый пост)
Функция APIC предоставила возможность без конфликтов работать двум устройствам на одном IRQ.

да, и что?

это я для полноты описания.


Цитата(MAKCim @  12.1.2008,  17:29 Найти цитируемый пост)
возможно, вы имели в виду MADT (Multiple APIC Description Table)

возможно...как я понял есть таблица в которой прописано какие устройства присутствуют, а какие - нет. точнее на какие из них нужно генерировать прерывание, а на какие - нет.
PM MAIL   Вверх
MAKCim
Дата 12.1.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(xach @  12.1.2008,  17:38 Найти цитируемый пост)
возможно...как я понял есть таблица в которой прописано какие устройства присутствуют, а какие - нет. точнее на какие из них нужно генерировать прерывание, а на какие - нет. 

нет
она описывает APIC-и (Local APIC, I/O APIC, Local SAPIC, I/O SAPIC)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
xach
Дата 12.1.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



т.е. по адресу 40:0Eh лежит 2-х байтовый RSDP, по какому-то смещению лежит RSDT, который укажывает на таблицу в которой тоже по какому-то смещению лежит DSDT?..

а при использовании 2-х байтного указателя юзать так: 0:ptr?
т.е. сегмент=0, а смещение этому 2-х байтному указателю?
PM MAIL   Вверх
MAKCim
Дата 12.1.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(xach @  12.1.2008,  17:56 Найти цитируемый пост)
т.е. по адресу 40:0Eh лежит 2-х байтовый RSDP

нет
вот код поиска RSDP
Код

rsdp:
    mov ax, 0xE000
    push ds
    mov ds, ax
    xor bx, bx
start:
    cmp dword [bx], 0x20445352 ; первая часть сигнатуры RSDP
    jnz @F
    cmp dword [bx + 4], 0x20525450 ; вторая часть сигнатуры RSDP
    jz exit
@@:
    add bx, 8
    jnz start
; RSDP нет
...
exit:
; RSDP есть по адресу ds:bx
...


Это сообщение отредактировал(а) MAKCim - 12.1.2008, 18:10


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.1128 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.