Jump to content

    

Mavric84

Участник
  • Content Count

    51
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Mavric84

  • Rank
    Участник

Контакты

  • ICQ
    Array
  1. Да это уже мне подсказали, спасибо. Но загвостка вся в том что, по словам программиста, записи по этим портам в 8259 производяться в ДОСе, а в МСВС это встроенно в систему (что исключает потребность производить данный операции с 8259)... но это мы еще проверим..
  2. Хотелось бы услышать мысли, В моем устройстве не задествована команда (0000) - подтверждения прерывания, может ли причина заключаться в этом?
  3. Стукнулся... Самое интересное что плата на PLX кирпиче работает с этим же самым драйвером нормально. Забыл ОС МСВС 3.0
  4. Хм... не понятно почему он даже к обработчику прерываний не обращается(( Будем думать... Спасибо за советы.
  5. Так и делал... ((( думал есть другой вариант(( все равно спасибо.
  6. Что то не пойму про буферы?? мне нужен вывод с О.К.... вы хотете сказать что двунаправленный буфер решит ситуацию?? :05:
  7. Исходя из большого количества вопросов, попробую описать ситуацию более подробнее(прошу прощения заболел, в связи с этим могу подтормаживать, сильно не пинать) Имеется плата PCI, построен на ПЛИСе SPARTANe II (своей разработки), на нем сделан PCI контроллер, сей девайс подключается к внешнему интерфесу ВВОДА-ВЫВОДА. Чтение, запись в канал ввода-вывода осуществляется через пространство I/O. Чтение, запись работают норм. При приходе из канала ввода-вывода некой команды, выставляется прерывание, INT#A опускается в 0, вызывается обработчик прерываний который, читает определенный регистр в котором отражено что прерывание выставило именно это устройство, прерывание сбрасывается и выполняется некая команда. Если через некоторое время из канала приедет опять команда... то мой контроллер опять выставит прерывание на линии но обработчик почему то не вызывается такое ощущение что он просто не видит его??? смотрю на контакт INT#A он в 0, ..... система не виснет... стоит пошевелить мышкой как прерывание обрабатывается и сбрасывается и команда проходит. Как узнаю что не входит в обработку прерывания? вывожу на экран строчку типа "прерывание пришло" и вторую строчку вывожу после того как прочитаю регистр подтверждения прерывания "мое прерывание"... прерывание без шевеления мышки или нажатия клавиш на клавиатуре срабатывают ровно через раз.... вот такая ситуация...
  8. Свое не свое определяется путем чтения регистра в пространстве и.о. А можно поподробнее про это ЭКСЛЮЗИВНОЕ ПРЕРЫВАНИЕ(первый раз слышу)...((( Не, не выходит...., а НЕ ВХОДИТ в обработчик!!! прерывание установленно и в регистре 6 записанно 0х01 когда обработчик прочитал этот регистр он увидел что записано 0х01(это означает что прерывание выставленно именно этим устройством) и сбрасывает прерывание и очищает этот регистр.
  9. Писали сами, Простите но немного не понимаю про чтение из XILINX??? для чего чтение??? на втором разе даже в обработчик прерывания не попадает(в то время как прерывание выставлено) для отладки добавлены две строки, первая после обработчика( что бы видеть что увидели прерывание), а вторая после строчек чтения регистра(определения свое или не свое прерывание)
  10. Да устройство первый раз поставило прерывание, драйвер увидел, прочитал доп. регистр, понял что свое прерыванием сбросил его. ВСЕ. но если опять повторить такое то прерывание выставиться и будет стоять до тех пор пока я не пошевелю мышкой(((.... при следующем разе опять все норм пройдет(без шевеления мышки)... след. раз опять будет висеть до мышиного шевеления(или нажатия на клаву) (К сожалению не я пишу программу) вызывается обработчик прерывания... читатет регистр, понимает что его прерывание, сбрасывает его... на след раз что бы прокатило... нужно пошевелить мышкой... а еще через раз опять все норм... Xilinx является мостом шина ввода\вывода to PCI ) Получается так. 1 прерывание проходит, 2 не проходит, 3 проходит 4 не проходит и.т.п. но если сделать вот так 1-е прерывание проходит,(пошевелил мышкой) 2-е проходит, 3-е проходит, пошевелил мышкой, 4-е проходит
  11. Контроллер своей разработки...(написал же вроде SPARTAN_2) драйвер просто не видит что выставленно прерывание...(сброс прерывания срабатывает.. исходя из того что первое прерывание отрабатывает..) стоит пошевелить мышкой и оно срабатывает...(причем тут мыша ума не приложу((м )
  12. Собстна интересует, а есть ли open-drain у xilinx? на пример как примитив у альтеры... если нет то какой выход?
  13. Собстна трабл, Плата PCI_33_32 на спартане2, при подаче команды через внешнюю шину, на девайс , PCI девайс выставляет прерывание, собстна все так и происходит но до перврого раза.... Пример... С внешней шины пришла команда-> PCI выставил прерывание-> прерывание отработало, (не трогая мышку и клаву) пытаемся еще раз передать команду на устройство, но теперь все затыкается.... причем не виснет(прерывание на PCI разъеме стоит) такое ощущение что обработчик прерываний его просто напросто не видит.... и стоит дотронуться до мышки и о ЧУДО прерывание срабатывает(увидело, распознало что свое и сбросило)) Кто что может сказать??
  14. Спасибо....... сейчас попробую...
  15. :) Бывает....... Да... Начиная от конфигурирования, заканчивая обращением к портам I/O, результаты моделирования вроде нормальные(не гуру... но все же)