Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт май 23, 2017 1:52 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 33 сообщения ]  На страницу Пред. 1 2 3 След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 5:56 pm 
Не в сети

Зарегистрирован: Ср фев 21, 2007 3:03 pm
Сообщения: 188
Правильно.
Внимательней читай статью. Ты должен зарегистрировать сервис (в статье stdcall RegService, my_service, service_proc)
Вот тут я не знаю, что произойдет если не регистрировать сервис....

Кстати:
version dd 0x00030003
текущая 0x00050005!!!!!

и еще:
jmp $
насчет этого не уверен, некорректно как-то...


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 6:01 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Mihail

Значит твоя видеокарта не поддерживается. Драйвер работает на ATI 7500 - x800


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 6:25 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Драйвер должен зарегистрировать себя RegService и вернуть хэндл ядру в еах. Если еах=0 то ядро считает что усторойство не поддерживается или его не удаётся настроить и освобождает память которую драйвер занимает. Никаких дополнительных проверок хэндла не производится хотя надо их добавить.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 7:16 pm 
Не в сети

Зарегистрирован: Пт мар 03, 2006 1:53 pm
Сообщения: 42
k@sTIg@r писал(а):
Правильно.
Внимательней читай статью. Ты должен зарегистрировать сервис (в статье stdcall RegService, my_service, service_proc)

Я полагаю что START вообще не запускается.
Цитата:
version dd 0x00030003
текущая 0x00050005!!!!!

В http://kolibrios.org/files/download/k_0.6.5.0_src.7z
k_0.6.5.0_src\kernel\drivers
везде 00030003
Цитата:
и еще:
jmp $

Как я понимаю, возвав load_driver до
; START MULTITASKING
с jmp $ после START система должна зависнуть.
Но этого не происходит, работает как ни в чем не бывало.

Если не трудно пришли мне образ загрузочной дискеты
и исходники драйвера. fpauk@mail.ru


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 7:25 pm 
Не в сети

Зарегистрирован: Пт мар 03, 2006 1:53 pm
Сообщения: 42
Serge писал(а):
Mihail

Значит твоя видеокарта не поддерживается. Драйвер работает на ATI 7500 - x800


Я запускаю под Bochs-2.3

После
proc START stdcall, state:dword
в kernel\drivers\ati2d.asm
я вствил
jmp $
но система не зависла.

Похоже, что драйвер вообще не загружается.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 8:00 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Mihail

Проверил в Боше, зависла как и положено. Посмотри образ, может скопировал патченный драйвер в другую папку.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2007 11:16 am 
Не в сети

Зарегистрирован: Пт мар 03, 2006 1:53 pm
Сообщения: 42
Serge писал(а):
Mihail

Посмотри образ, может скопировал патченный драйвер в другую папку.


Это я могу. Но тем-же JMP $ я это проверил.
Или в другую в смылсле не в /rd/1/DRIVERS ?
Я использовал образ из http://kolibrios.org/files/download/k_0.6.5.0_ru.7z
и заменил в нем старый ati2d.obj на мой с jmp $
после
proc START stdcall, state:dword


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2007 1:30 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Mihail

Драйвер должен быть в папке /rd/1/DRIVERS. Если ты заменил драйвер то у тебя не запускается START. Вариантов три: ядро не может найти драйвер в /rd/1/DRIVERS, драйвер пытается импортировать несуществующие функции, версии драйверной модели не совпадают. Если ты брал оригинальный образ дистрибутива то исходники драйвера должны быть из дистриба или скачай последние версии исходников с SVN и замени ядро и все драйверы, а потом эксперементируй. Или протрассируй вызов load_driver в отладочном Боше.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2007 4:55 pm 
Не в сети

Зарегистрирован: Пт мар 03, 2006 1:53 pm
Сообщения: 42
Serge писал(а):
Mihail

Драйвер должен быть в папке /rd/1/DRIVERS. Если ты заменил драйвер то у тебя не запускается START. Вариантов три: ядро не может найти драйвер в /rd/1/DRIVERS, драйвер пытается импортировать несуществующие функции, версии драйверной модели не совпадают. Если ты брал оригинальный образ дистрибутива то исходники драйвера должны быть из дистриба или скачай последние версии исходников с SVN и замени ядро и все драйверы, а потом эксперементируй. Или протрассируй вызов load_driver в отладочном Боше.


В сочетании http://kolibrios.org/files/download/k_0.6.5.0_dbg.7z
с http://kolibrios.org/files/download/k_svn.488_ru.7z
работает.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2007 5:05 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Mihail

Что значит "работает" ?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2007 6:51 pm 
Не в сети

Зарегистрирован: Пт мар 03, 2006 1:53 pm
Сообщения: 42
Serge писал(а):
Mihail

Что значит "работает" ?


На данном этапе, я вывожу сообщение из своего драйвера на экран
(с помощью boot_log).


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб июн 23, 2007 3:24 pm 
Не в сети

Зарегистрирован: Пт мар 03, 2006 1:53 pm
Сообщения: 42
Драйвер FORTH исполняет исходный форт-текст в файле /sys/drivers/AUTOEXEC.F
http://fpauk.narod.ru/k_svn.549_src_f.rar
Теперь драйвера могут быть представлены в виде исходных текстов Форта.
Т.е. модифицироваться под Колибри.

Почемуто зависает srv_handler при том, что service_proc ничего не делает.


Вернуться к началу
 Заголовок сообщения: Re: Как писать драйвера
СообщениеДобавлено: Вт ноя 25, 2008 1:44 pm 
Не в сети

Зарегистрирован: Пт ноя 21, 2008 8:16 am
Сообщения: 180
diamond писал(а):
Вот, написал статью, демонстрирующую программирование драйвера.
http://diamondz.land.ru/writedrv.htm
Приведённый там пример может быть полезен и безотносительно к обучению - написан фильтр, показывающий все обращения программ к файловой системе.

Вопрос возник (fmon.asm#371):
Код:
        jz      @f
        push    str_skipped
        call    [con_printf]
@@:

Это я чего-то недопонял, или просто опечатка :?:


Вернуться к началу
 Заголовок сообщения: Re: Как писать драйвера
СообщениеДобавлено: Вт ноя 25, 2008 2:20 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн ноя 28, 2005 8:00 pm
Сообщения: 1601
Galkov писал(а):
Вопрос возник (fmon.asm#371):

В смысле, стек разбалансируется? Угу, ошибся, нужно дописать, к примеру, "pop ecx" после con_printf. (Правда, на практике это не сказывается - во-первых, на практике эта ситуация может возникнуть в совершенно исключительных случаях, во-вторых, небольшая разбалансированность стека в данной конкретной программе не мешает.)

_________________
Ушёл к умным, знающим и культурным людям.


Вернуться к началу
 Заголовок сообщения: Re: Как писать драйвера
СообщениеДобавлено: Вт ноя 25, 2008 3:14 pm 
Не в сети

Зарегистрирован: Пт ноя 21, 2008 8:16 am
Сообщения: 180
Да без проблем :)

Это я так: копаюсь, разбираюсь потихоньку, пытаюсь понять происходящее, уловить идеологию....
Не все пока понятно, конечно :(

В общем, в большей степени-то, я свое понимание пытаюсь контролировать


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

Часовой пояс: UTC+03:00


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

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


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

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