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