реклама на сайте
подробности

 
 
> Прерывание от PCI, раз через раз
Mavric84
сообщение Aug 29 2007, 12:25
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Собстна трабл,

Плата PCI_33_32 на спартане2, при подаче команды через внешнюю шину, на девайс , PCI девайс выставляет прерывание, собстна все так и происходит но до перврого раза....
Пример...

С внешней шины пришла команда-> PCI выставил прерывание-> прерывание отработало, (не трогая мышку и клаву) пытаемся еще раз передать команду на устройство, но теперь все затыкается.... причем не виснет(прерывание на PCI разъеме стоит) такое ощущение что обработчик прерываний его просто напросто не видит.... и стоит дотронуться до мышки и о ЧУДО прерывание срабатывает(увидело, распознало что свое и сбросило))

Кто что может сказать??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
line
сообщение Aug 29 2007, 13:21
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Прерывание драйвер Вашего устройства должен сбрасывать в обработчике прерывания. как сбрасывать - см. доку на контроллер пси Вашего устройства.
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Aug 29 2007, 13:39
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(line @ Aug 29 2007, 16:21) *
Прерывание драйвер Вашего устройства должен сбрасывать в обработчике прерывания. как сбрасывать - см. доку на контроллер пси Вашего устройства.


Контроллер своей разработки...(написал же вроде SPARTAN_2) драйвер просто не видит что выставленно прерывание...(сброс прерывания срабатывает.. исходя из того что первое прерывание отрабатывает..) стоит пошевелить мышкой и оно срабатывает...(причем тут мыша ума не приложу((м )

Сообщение отредактировал Mavric84 - Aug 29 2007, 13:41
Go to the top of the page
 
+Quote Post
line
сообщение Aug 29 2007, 13:58
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Цитата(Mavric84 @ Aug 29 2007, 17:39) *
Контроллер своей разработки...(написал же вроде SPARTAN_2) драйвер просто не видит что выставленно прерывание...(сброс прерывания срабатывает.. исходя из того что первое прерывание отрабатывает..) стоит пошевелить мышкой и оно срабатывает...(причем тут мыша ума не приложу((м )

Устройство пси ставит INTA низкий уровень, который так и стоит низкий до сброса обработчиком в драйвере этого устройства. Если прерывание формируется правильно (что сомнительно), то копайте в своем драйвере.
Причем тут мышка - сложно сказать.
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Aug 29 2007, 14:58
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(line @ Aug 29 2007, 16:58) *
Устройство пси ставит INTA низкий уровень, который так и стоит низкий до сброса обработчиком в драйвере этого устройства. Если прерывание формируется правильно (что сомнительно), то копайте в своем драйвере.
Причем тут мышка - сложно сказать.



Да устройство первый раз поставило прерывание, драйвер увидел, прочитал доп. регистр, понял что свое прерыванием сбросил его. ВСЕ. но если опять повторить такое то прерывание выставиться и будет стоять до тех пор пока я не пошевелю мышкой(((.... при следующем разе опять все норм пройдет(без шевеления мышки)... след. раз опять будет висеть до мышиного шевеления(или нажатия на клаву)

Цитата(I.S.A. @ Aug 29 2007, 17:03) *
А что делает драйвер по приходу прерывания? Xilinx подключен шиной к х86 процессору? Читаете ли Вы какой либо регистр или область памяти в Xilinx по приходу прерывания или нет?


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

Xilinx является мостом шина ввода\вывода to PCI )

Получается так. 1 прерывание проходит, 2 не проходит, 3 проходит 4 не проходит и.т.п. но если сделать вот так

1-е прерывание проходит,(пошевелил мышкой) 2-е проходит, 3-е проходит, пошевелил мышкой, 4-е проходит
Go to the top of the page
 
+Quote Post
I.S.A.
сообщение Aug 29 2007, 15:05
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 6-08-07
Из: Москва
Пользователь №: 29 583



Вы пользуетесь готовым контроллером PCI в Xilinx или сами писали?
Вопрос - где косяк? В железе или в драйвере?
Насколько я знаю, необходимо сделать чтения из Xilinx-а, что бы сбросить прерывание (Оно проходит?). Лучший способ - тест, типа чтения регистра по прерыванию. Осциллограф на шину, и каждые 2 сек генерить прерывание, а драйвер сбрасывает его. Тогда все видно будет (Мы лично так отлаживались).

А мышь - всего лишь событие (мне так кажется), которое заставляет софт шевелиться... Кто знает, что там в это время творится...

Сообщение отредактировал I.S.A. - Aug 29 2007, 15:08


--------------------
Зачем все делать просто, когда все можно усложнить?
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Aug 29 2007, 15:23
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(I.S.A. @ Aug 29 2007, 18:05) *
Вы пользуетесь готовым контроллером PCI в Xilinx или сами писали?
Вопрос - где косяк? В железе или в драйвере?
Насколько я знаю, необходимо сделать чтения из Xilinx-а, что бы сбросить прерывание (Оно проходит?). Лучший способ - тест, типа чтения регистра по прерыванию. Осциллограф на шину, и каждые 2 сек генерить прерывание, а драйвер сбрасывает его. Тогда все видно будет (Мы лично так отлаживались).

А мышь - всего лишь событие (мне так кажется), которое заставляет софт шевелиться... Кто знает, что там в это время творится...



Писали сами,

Простите но немного не понимаю про чтение из XILINX??? для чего чтение??? на втором разе даже в обработчик прерывания не попадает(в то время как прерывание выставлено)

для отладки добавлены две строки, первая после обработчика( что бы видеть что увидели прерывание), а вторая после строчек чтения регистра(определения свое или не свое прерывание)
Go to the top of the page
 
+Quote Post
I.S.A.
сообщение Aug 29 2007, 15:38
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 6-08-07
Из: Москва
Пользователь №: 29 583



Цитата(Mavric84 @ Aug 29 2007, 19:23) *
Писали сами,
....


А как определяется, что свое или нет? На Xilinx идет эксклюзивное прерывание (оно не шарится ни с одним внутренним прерыванием (Может как-раз они с мышью и шарятся))?
Не выходит из обработчика говорите, а как девайс узнает, что его прерывание отработано? Для этого надо прочитать (записать) соответствующий регистр девайса PCI.
Осциллографом смотрели, что на шине творится или нет? А еще лучше логический анализатор цепануть или на Xilinx-e его реализовать, если есть свободные выводы...


--------------------
Зачем все делать просто, когда все можно усложнить?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Mavric84   Прерывание от PCI   Aug 29 2007, 12:25
||- - Mavric84   Цитата(I.S.A. @ Aug 29 2007, 18:38) А как...   Aug 29 2007, 15:44
|- - gab   Цитата(Mavric84 @ Aug 29 2007, 18:58) Да ...   Sep 12 2007, 02:21
- - I.S.A.   А что делает драйвер по приходу прерывания? Xilinx...   Aug 29 2007, 14:03
- - Mavric84   Исходя из большого количества вопросов, попробую о...   Aug 29 2007, 19:04
- - Harbour   Дык, уже было сказано что прерывание в данной сист...   Aug 30 2007, 07:01
|- - Mavric84   Цитата(Harbour @ Aug 30 2007, 11:01) Дык,...   Aug 30 2007, 11:07
|- - 729   Цитата(Mavric84 @ Aug 30 2007, 15:07) Хм....   Aug 30 2007, 15:21
|- - Mavric84   Цитата(729 @ Aug 30 2007, 18:21) Вообще-т...   Aug 31 2007, 08:34
- - Mavric84   Хотелось бы услышать мысли, В моем устройстве не ...   Sep 3 2007, 19:31
- - Harbour   Могу ошибаться - но эта команда до спины, нужна ес...   Sep 4 2007, 05:18
- - yuri_d   А как выполняется обработка прерывания? Особенно и...   Sep 5 2007, 17:16
- - Mavric84   Цитата(yuri_d @ Sep 5 2007, 20:16) А как ...   Sep 6 2007, 07:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th August 2025 - 23:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01926 секунд с 7
ELECTRONIX ©2004-2016