OSDev http://osdev.su/ |
|
Ввод\вывод клавиатура. http://osdev.su/viewtopic.php?f=6&t=180 |
Страница 1 из 1 |
Автор: | Гость [ 18 авг 2008, 02:06 ] |
Заголовок сообщения: | Ввод\вывод клавиатура. |
Здаствуйте, делал по примеру из статей lowlevel osdev\ дошел до 11 урока и столкнулся с проблемой, после запуска бинарка на экран выводится текст,а вот когда набираю сам на клаве что-то то ничего на экране не появляется... С чем может быть связанно? |
Автор: | Гость [ 18 авг 2008, 10:59 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
"вызвать из функции kernel_main() функцию init_interrupts()" - это сделано? |
Автор: | diger [ 02 янв 2011, 16:14 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
люди , а где эти статьи находятся ? мне бы не помешало почитать |
Автор: | NElamer [ 04 фев 2011, 19:03 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
У меня 11 урок от туда вообще не компилируется, gcc ругается на irc_timer, &irq_timer и &irq_keyboard. Все привидущие уроки компилируются и работают нормально. Пробовал закоментировать и по всякому переделывать, но даже если компилировалось, работало не правильно. Кто-нибудь знает, как там правильно делается? |
Автор: | Himik [ 05 фев 2011, 04:01 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
Ты наверно пропустил объявление этого макроса (перечитай текст внимательней, или найди поиском по этому тексту) #define IRQ_HANDLER(func) void func (void);\ asm(#func ": pusha \n call _" #func " \n movb $0x20, %al \n outb %al, $0x20 \n popa \n iret \n");\ void _ ## func(void) |
Автор: | NElamer [ 05 фев 2011, 10:36 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
Цитата: Ты наверно пропустил объявление этого макроса Нет, макрос я добавлял. |
Автор: | Himik [ 05 фев 2011, 17:24 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
NElamer писал(а): Нет, макрос я добавлял. Проблема в именах функций. Некоторые версии gcc добавляют приставку подчёркивания, а некоторые нет. Поэтому в макросе надо поэкспериментировать с добавлением/убиранием символов _ (их там два). Например: #define IRQ_HANDLER(func) void func (void);\ asm(#func ": pusha \n call " #func " \n movb $0x20, %al \n outb %al, $0x20 \n popa \n iret \n");\ void ## func(void) А вообще надо смотреть ассемблерный код. Добавь параметры gcc -save-temps -fverbose-asm тогда при компиляции появится ассемблерный файл типа .s По нему надо будет проверить все имена функций. Ещё появится файл типа .ii это Си программа с развёрнутыми макросами, тоже полезно изучить. |
Автор: | qeos [ 05 фев 2011, 22:29 ] |
Заголовок сообщения: | Re: Ввод\вывод клавиатура. |
Имхо, к 11-тому уроку пора понять общий принцип создания и то, что эти уроки не имеют конечной рабочей версии. Мне как туториал нравится уроки James Molloy. Они описывают процесс до пользовательского режима, но по крайней мере это 100% рабочие вещи. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |