Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Простое PCI устройство корка pci32tlite_oc
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
Dmitry_D2
Уже давно хотел сделать простое PCI устройстово ввода-вывода для своих нужд.
Сделал тестовую плату. Нормальную корку так и не нашел.
В конце-концов попробовал http://www.opencores.org/projects.cgi/web/pci32tlite_oc
Отзовитесь, проверял кто-нибудь ?
В конце-концов вроде все заработало, target устройство нашлось и windows попросила драйвера...
Программист из меня не очень, но кое-как написал простенький драйвер, который может читать и писать данные по нужному адресу. Это, конечно хорошо, но для моих нужд очень бы еще хотелось чтобы прерывание было по чтению и по записи. Как только начинаю использовать прерывание в драйверах, машина сразу виснет.
Я честно так и не понял когда там сигнал INT должен генериться.
И что ко всем коркам, даже платным драйвера самим писать приходится ?
Может кто эту корку пользовал и может подсказать как с ней правильно работать?
DS
На прерывании может сидеть несколько устройств, поэтому Ваш обработчик должен по возможности быстро откликнуться на прерывание и его снять. А если прерывание не от Вашего устройство, корректно вернуть управление. А иначе, действительно, висяк.
vladec
Если у Вас трудности с программированием, используйте Windriver от Jungo. Это комплектный софт позволяющий программисту полнофункционально работать с PCI устройством из верхнего кольца программирования.
Dmitry_D2
Пробовал Windriver от Jungo, не понравился он мне совсем. Постоянно его библиотеки с собой таскать приходится плюс иногда выскакивает ошибка-какая-то (что-то там про память, которая не может быть read). Драйвера писал используя Driver Studio, хорошая как мне показалось вещь. Но с примерами там как-то не особо понятно, написано явно не для чайников. Как отлаживать драйвера не понятно совсем. нашел статью в интернете, там какой-то драйвер, кстати тоже для PCI писали, взял код за основу, плюс немного пофантазировал. Прерываний, к сожалению в примере не было crying.gif
Спасибо всем ответившим.
vol2003
Вообще-то если прерывание не обработать вовремя, то как правило ничего не виснет, просто перестают работать устройства, которые висят на этом же прерывании (их видно если в диспетчере устройств сказать "вид" -> "ресурсы по подключению"). Например, сетевая карта или USB (кстати, по этой причине клавиатура/мышь лучше PS держать а не USB smile.gif). То же касается случая, если вдруг что-то не правильно сделано в FPGA или сгорела нога у микросхемы и сигнал INTA всегда держится в нуле. Правда возможно это зависит от чипсета, так получилось, что у меня почти всегда на отладочной машине стояли разные атлоны и nforce.

Виснет часто если записал в чужую память (из драйвера), либо если как-то попортил шину PCI так что другие устройства не могут общаться. (например, сигналы арбитража)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.