OSDev http://osdev.su/ |
|
Посоветуйте русскую документацию http://osdev.su/viewtopic.php?f=6&t=326 |
Страница 1 из 3 |
Автор: | KIV [ 22 июн 2010, 16:32 ] |
Заголовок сообщения: | Посоветуйте русскую документацию |
Меня интересует русская документация/примеры про программирования следующих вещей: 1) ACPI 2) IO APIC и Local APIC 3) Виртуальный режим в длинном режиме (или это возможно только в 32-битном режиме?). |
Автор: | SII [ 22 июн 2010, 16:41 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
1 и 2 -- русская документация в природе отсутствует. Отдельные статьи найти, наверное, можно, но в любом случае придётся вникать в английские оригиналы. 3 -- документация Интел абсолютно чётко говорит: режим V86 поддерживается только в обычном 32-разрядном защищённом режиме. В 64-разрядном V86 отсутствует в принципе, как отсутствуют сегментация и аппаратная многозадачность. |
Автор: | KIV [ 22 июн 2010, 18:04 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
Про 3 ясно. Я английским владею не достаточно хорошо. То есть прочитать пару страниц и понять какой формат какого-нибудь дескриптора и что в нём для чего я ещё могу, но переварить целый том документации - нет. Я пытался разбираться в спецификации ACPI - мало что понял. Мне бы не помешала статья, где будет рассказаны основные принципы. Причём желательно с упором на практику, потому что в официальной спецификации я не увидел никаких конкретных значений (может просто плохо смотрел). Про APIC я ещё английскую документацию не читал, но тоже хотелось бы найти где-нибудь русскую статью. Чтобы там рассказывалось про основные принципы и как прочитать какое-нибудь значение и какого-нибудь регистра и т. п. А уже за более продвинутыми функциями я буду лезть в английскую литературу. |
Автор: | SII [ 22 июн 2010, 19:37 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
А Вы просто разбирайтесь, и всё. Понимание языка само приходит с практикой. Школу я закончил, имея по английскому 4, но нихрена его не знал (просто зазубрил к экзамену наизусть топики да кой-какую грамматику, и всё). С тех пор никаких курсов-занятий не посещал, да и целенаправленным самообразованием не занимался, однако доку читаю свободно, художественную -- зависит от богатства языка автора (Гарри Поттера -- без особых проблем, а вот того же Айвенго -- фигвам, без конца в словарь смотреть приходится); могу понятно писать на английском (с ошибками, но англоамерикосы понимают без проблем). Всё достигнуто постоянной работой с документацией :) Статей не посоветую -- не встречал (правда, и не искал). Что касается спецификации ACPI, то она действительно довольно тяжело читается, пока не врубишься в основные принципы. Полноценную поддержку сделать достаточно тяжело, поскольку для этого нужно реализовать виртуальную машину -- интерпретатор байт-кода ACPI, с помощью которого и выполняются основные функции. Собсно говоря, половина спецификации -- это описание этого самого кода :) |
Автор: | phantom-84 [ 23 июн 2010, 10:29 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
Описание AML - раздел 18. Общие принципы вроде бы понятны, но я пока не понимаю, как интерпретатор должен выполнять байт-код для управления аппаратурой. Если есть желание, можем скооперироваться и разобраться с ACPI окончательно. Я пока хожу вокруг, да около, но никак не могу взяться за это основательно. |
Автор: | phantom-84 [ 23 июн 2010, 17:29 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
я писал(а): Описание AML - раздел 18. Раздел 19 в ревизии 4.0a. Сегодня скачал.я писал(а): Общие принципы вроде бы понятны, но я пока не понимаю, как интерпретатор должен выполнять байт-код для управления аппаратурой. Уже понятно.Цитата: > ACPI registers can be: * PCI conguration registers; * Memory-mapped registers; * Programmed IO registers. > They're dened by the OperationRegion statement: OperationRegion(FOO, PCI_Config, Address [...]) OperationRegion(FOO, SystemIO, Address [...]) > Fields of the register can be named with the Field statement. Код: Name (RegionSpace Keyword) Value SystemMemory 0 SystemIO 1 PCI_Config 2 ... ... Посмотреть на байт-код в живую можно после компиляции ASL-исходника (компиляторы asl - майкрософт, iasl - интел), можно взять и из таблиц (оба компилятора могут получать таблицы в различном виде, в том числе и виде листинга). |
Автор: | phantom-84 [ 24 июн 2010, 17:44 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
Чистые ASL-исходники и листинги с байт-кодом вместе с оригинальным бинарником DSDT от моего компьютера: acpidata.zip |
Автор: | Himik [ 29 июн 2010, 23:29 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
KIV, по IO APIC и Local APIC у меня русской доки нет, но есть опыт их использования. Спрашивай, на отдельные вопросы смогу ответить. Для начала советую ознакомиться с электрической схемой их соединения между собой. Она есть в интеловской мультипроцессорной спецификации http://www.intel.com/design/archives/pr ... 242016.htm на страницах 5-3 и 5-5. Основное отличие в разводке IOAPIC от PIC в том, что к IRQ0 вместо системного таймера подключен PIC, а системный таймер подключен к IRQ2. Соответственно, IRQ0 лучше замаскировать, чтобы прерывания не дублировались с PIC. В настройке векторов прерываний IRQ от 0 до 15 (прерывания ISA) все биты атрибутов установить в 0, что означает срабатывание по высокому фронту. Для IRQ от 16 и выше (прерывания PCI) установить биты A000, что означает срабатывание по низкому уровню. Сигнал конца обработки прерывания (EOI) делается через Local APIC записью 32-битного нуля в оперативную память FEE000B0. При использовании страничного режима памяти, страницы для FEC00000 и FEE00000 должны быть с атрибутом PCD (10h) "Cache disabled". |
Автор: | phantom-84 [ 30 июн 2010, 12:34 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
Возвращаясь к ACPI... Я научился декодировать пакет \_S5 для выключения питания через ACPI. Если не считать включение режима ACPI и декодирование таблиц, то для выключения нужна одна единственная команда записи в порт PM1a_CNT (плюс вариативно еще одна дублирующая в порт PM1b_CNT). |
Автор: | KIV [ 30 июн 2010, 12:37 ] |
Заголовок сообщения: | Re: Посоветуйте русскую документацию |
Спасибо, chizh. Уж извините, что задам сейчас, наверное, совсем глупые вопросы (просто я сейчас не имею возможности скачать документацию из-за медленного и дорогого GPRS интернета), а разобраться и сделать поддержку в своей ОС хотелось бы побыстрее (не дожидаясь нормального интернета). Итак, во-первых, как включить IO APIC, во-вторых, как установить базовый вектор прерываний. Ответить можно любыми ссылками кроме Google. Ну или кодом. Или словесным описанием. Как удобнее... |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |