|
|
  |
Работа с прерываниями на WIN машинах..., Кто работал и с какой freq прерываний ? |
|
|
|
Jun 27 2005, 08:05
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901

|
Стоит задача обслуживать PCI устройство на Windows-машине. Рассматриваемая плата представляет собой некоторое многоканальное устройство цифровой обработки сигнала, рабоющее пока (на стадии отработки всего программно-алгоритмического обеспечения) под управлением ПК. Устройство генерирует ~500 мкс прерывания. Обслуживание заключается в чтении данных с устройства и запись управляющих воздействий, вычисленных на базе считанных данных, обратно в устройство (Схемы сопровождения за фазой несущей сигнала и задержкой прихода, замыкаемые через процессор). Размер считываемых данных со всех каналов на каждом прерывании порядка 3 Кб. Пропуск одного прерывания равносилен потере работы всего устройства (срыв сопровождения сигнала). ТО есть за 500 мкс нужно гарантированно считать данные, их обработать и замкнуть обратную связь, послав в устройство величины ошибок, полученных в дискриминаторе, реализованном программно. Пытался найти какой-либо материал по работе с прерываниями на WIN машинах, на подобие: (п. 4.2) http://www.cniil.org/QNX_NEUTRINO_RTOS_V6_2_0.html#4_2 , но пока безрезультатно. Возможно кто-то обладает таким опытом (написания драйверов для устройств подобного класса). Буду благодарен за любую информацию (литературу, материалы) по данному вопросу.
|
|
|
|
|
Jun 27 2005, 09:02
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901

|
Цитата(v_mirgorodsky @ Jun 27 2005, 11:22) Время отклика Win сильно зависит от факта работы CD/DVD-ROM приводов, общей загрузки системы пользовательскими приложениями и т.п. Как результат, ваше устройство может периодически пропускать прерывания и сбиваться. Соверешенно верно. Именно понимая всю теоретическую недетерминированность Win хотелось бы послушать, если удастся, тех кто непосредственно проверял данное обстоятельство Win машин на практике. На этапе разработки выбор на Вин падает в виду наличия большого количества собственно инструментов для разработки. Большого и уже в какой-то мере так или иначе изученного аппарата представления и визуализации результатов работы устройств.
|
|
|
|
|
Jun 27 2005, 23:55
|
Частый гость
 
Группа: Свой
Сообщений: 133
Регистрация: 27-05-05
Пользователь №: 5 445

|
Цитата(Dsurkov @ Jun 27 2005, 12:02) Цитата(v_mirgorodsky @ Jun 27 2005, 11:22) Время отклика Win сильно зависит от факта работы CD/DVD-ROM приводов, общей загрузки системы пользовательскими приложениями и т.п. Как результат, ваше устройство может периодически пропускать прерывания и сбиваться. Соверешенно верно. Именно понимая всю теоретическую недетерминированность Win хотелось бы послушать, если удастся, тех кто непосредственно проверял данное обстоятельство Win машин на практике. На этапе разработки выбор на Вин падает в виду наличия большого количества собственно инструментов для разработки. Большого и уже в какой-то мере так или иначе изученного аппарата представления и визуализации результатов работы устройств. Огромное количество устройств успешно работает под WINxx с куда более частыми прерываниями, однако только до тех пор, пока что-либо не случится  Практический опыт: 4096 в секунду под 95 на 486. При этом параллельно запускался Word и что-то набивалось. Надеюсь, убедительно. Поэтому, если срыв "срыв сопровождения" из-за непредвиденных обстоятельств (например, порчи HDD) не приведет к какому-либо существенному ущеребу, может оказаться вполне достаточно лишь обеспечить такие условия, при коих машина не "впадает в ступор" из-за дисков/сети и пр.
--------------------
Зачем скоту свобода мысли?
|
|
|
|
|
Jun 28 2005, 09:14
|
Местный
  
Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675

|
Цитата(Dsurkov @ Jun 27 2005, 12:05) Стоит задача обслуживать PCI устройство на Windows-машине Ну не пользуйтесь "отложенными прерываниями", а делайте свою математику в обработчике прерывания, только есс-но все остальные прерывания будут на это время подвисать.
|
|
|
|
|
Jun 28 2005, 17:38
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901

|
Цитата(Andrew2000 @ Jun 28 2005, 12:14) Цитата(Dsurkov @ Jun 27 2005, 12:05) Стоит задача обслуживать PCI устройство на Windows-машине Ну не пользуйтесь "отложенными прерываниями", а делайте свою математику в обработчике прерывания, только есс-но все остальные прерывания будут на это время подвисать.  Ну спасибо за глубокое пожелание. То есть Вы таким образом уже пробовали очень сильно насыщать код ISR да еще на высоких IRQL да еще с плавающей точкой, т.е. задействовать сопроцессор и особо все это не откладывая для DpcForIsr()... и так не менее 2000 раз в секунду? Буду очень признателен, если сочтете возможным поделиться подобным опытом, своими впечатлениями или наблюдениями, какими-то подводными камнями.
|
|
|
|
|
Jun 29 2005, 13:30
|
Местный
  
Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675

|
Цитата(Dsurkov @ Jun 28 2005, 21:38)  Ну спасибо за глубокое пожелание. То есть Вы таким образом уже пробовали очень сильно насыщать код ISR да еще на высоких IRQL ... Пробовал, но не сильно  , была задача, где от PCI карточки сыпались прерывания (кажется 1ms), в ISR небольшая математика, а если что-то шло не так - тогда в отложенные прер. Я думаю все это можно опытным путем (объем Вашей математики я не знаю), да и от мощи проца это сильно будет зависеть.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|