|
|
 |
Ответов
|
Oct 29 2007, 19:53
|

Местный
  
Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276

|
Добрый день. После прочтения топика, хочется вставить свою лепту в истории  Юзаем исключительно EzUSB. Все реализованно на потоках и с использованем внутренних семафоров. Про запуск сначала вычитки до записи - сущая правда (иначе виснит, про ABORT PIPE помнится на третьй аборт в синий вылетает винда из-за драйвера. Так что лучший аборт для оного устройства - это все же вернуть данные в запрошенный пайп). Юзать рекомендую только по потокам (иначе подвесите всю систему как два пальца). Сейчас тестим всю систему на двухядерных машинах и быть может (повторю быть может) именно из-за второго ядра (вернее болльше одного) происходят глюки (иногда драйвер виснит, как будто в пайпе нет данных и соответственно виснит вся винда). До этого открутились несколько лет на одноядерных и с нашей DLL и прошивкой все работало нормально (параллельно я уже по этому поводу тут спрашивал). Кто-нибудь на двухядерных крутил дивайс??? По поводу EzUSB, натолкнулись на то что дебаговая версия жрет кучу процессорного времени (а оно на вес золота). По сему работаем исключительно с free. Вообще драйвером я доволен, а чего им быть не довольным - он ПРОСТОЙ. Все в ваших руках. У нас достаточно глубокая обратная связь в системе, по этому о латентности ничего сказать немогу. Единственное что интересно кто как решает проблему передачи?? Мне пришлось завести в железке таймер по которому в тото же пайп кидается спец пакет. Дабы не завесить поток на вычитку. Ну нехотел я заводить второй канал для проверки наличия данных да еще на интеррапт. Да и буфер у нас для сих вещей маловат. А входной поток большой (ну не дикий, но большой для такого буфера и всяких там паралельных задачь). А какой буфер используют господа?? Ну так чтобы данные не потерялись и при условии то данные на вход Cypress остановить нельзя. Вот пожалуй и все.  Удачи.
--------------------
Удачи.
|
|
|
|
|
Oct 30 2007, 10:10
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806

|
Цитата По поводу EzUSB, натолкнулись на то что дебаговая версия жрет кучу процессорного времени (а оно на вес золота). По сему работаем исключительно с free. Это для всех драйверов так. EzUsb - отличный пример драйвера c исходниками , тем более есть исходники для DriverStudio. Использовали при разработке своих. Цитата Сейчас тестим всю систему на двухядерных машинах и быть может (повторю быть может) именно из-за второго ядра (вернее болльше одного) происходят глюки (иногда драйвер виснит, как будто в пайпе нет данных и соответственно виснит вся винда). До этого открутились несколько лет на одноядерных и с нашей DLL и прошивкой все работало нормально (параллельно я уже по этому поводу тут спрашивал). Проблема еще та. Дело в том, что Microsoft довольно смутно ( даже мутно) документирует свой планировщик потоков. Для однопроцессорной системы некоторые вещи проходили - забыл поставить SpinLock на возможно разделяемых данных и черт с ним, на многопроцессорной системе это уже не прокатывает. Много ли было раньше у разработчиков драйверов доступных для для теста многопроцессорных машин? Цитата Единственное что интересно кто как решает проблему передачи?? Мне пришлось завести в железке таймер по которому в тото же пайп кидается спец пакет. Дабы не завесить поток на вычитку. Ну нехотел я заводить второй канал для проверки наличия данных да еще на интеррапт. Да и буфер у нас для сих вещей маловат. А входной поток большой (ну не дикий, но большой для такого буфера и всяких там паралельных задачь). Посмотрите в исходнике того же EzUsb (лучше из DriverStudio, в нем нагляднее) на реализацию поллинга Interrupt Ep. Сделайте похожее для считываения во внутренний буфер драйвера для Bulk. Буфер сделайте побольше. А из приложения через DeviceIoControl считывание данных из него (см. исходник serial.sys в том же DDK или DriverStudio). И не будете связываться с потоками. У вас получится постоянно готовый для приема из устройства канал передачи данных. Если есть данные - устройство пишет их в него, нет - пишет пакет нулевой длины.
Сообщение отредактировал Седой - Oct 30 2007, 10:11
|
|
|
|
Сообщений в этой теме
qqqqqq Время отклика USB-устройства.... Oct 16 2007, 10:26 VDG Цитата(qqqqqq @ Oct 16 2007, 14:26) Неуже... Oct 16 2007, 12:51 Oldring Цитата(qqqqqq @ Oct 16 2007, 14:26) Помер... Oct 16 2007, 13:10 qqqqqq Цитата(Oldring @ Oct 16 2007, 19:10) По м... Oct 16 2007, 14:08  Oldring Цитата(qqqqqq @ Oct 16 2007, 18:08) Менят... Oct 16 2007, 14:14   qqqqqq Цитата(Oldring @ Oct 16 2007, 20:14) inte... Oct 16 2007, 14:32  blackfin Цитата(qqqqqq @ Oct 16 2007, 18:08) Специ... Oct 20 2007, 15:13 qqqqqq Возникло у меня тут предположение одно....
Если п... Oct 17 2007, 15:22 oran-be Чего то как то совсем непонятно.... У шины время к... Oct 20 2007, 11:09 Oldring Цитата(oran-be @ Oct 20 2007, 15:09)... Oct 20 2007, 17:34  Седой Цитата(Oldring @ Oct 20 2007, 23:34) Вопр... Oct 21 2007, 10:59   Oldring Цитата(Седой @ Oct 21 2007, 14:59) Давайт... Oct 22 2007, 06:25    Седой Цитата(Oldring @ Oct 22 2007, 12:25) И ка... Oct 23 2007, 12:50     Oldring Цитата(Седой @ Oct 23 2007, 16:50) Я уже ... Oct 23 2007, 13:32      Седой Цитата(Oldring @ Oct 23 2007, 19:32) До с... Oct 23 2007, 13:48       Oldring Цитата(Седой @ Oct 23 2007, 17:48) Если в... Oct 23 2007, 14:20        Седой Цитата(Oldring @ Oct 23 2007, 20:20) помо... Oct 23 2007, 15:10 qqqqqq Цитата(oran-be @ Oct 20 2007, 17:09)... Oct 23 2007, 16:00  Седой Цитата(qqqqqq @ Oct 23 2007, 22:00) Получ... Oct 24 2007, 05:23   qqqqqq Цитата(Седой @ Oct 24 2007, 11:23) Все пр... Oct 24 2007, 07:03    Седой Цитата(qqqqqq @ Oct 24 2007, 13:03) Непон... Oct 24 2007, 08:33     qqqqqq Цитата(Седой @ Oct 24 2007, 14:33) PS. Ка... Oct 24 2007, 09:01      qqqqqq Цитата(qqqqqq @ Oct 24 2007, 15:01) Попро... Oct 26 2007, 09:45       Седой Цитата(qqqqqq @ Oct 26 2007, 15:45) Остал... Oct 26 2007, 09:56        qqqqqq Цитата(Седой @ Oct 26 2007, 15:56) Для Ez... Oct 26 2007, 14:10         Седой Цитата(qqqqqq @ Oct 26 2007, 20:10) Прове... Oct 26 2007, 15:43          qqqqqq Цитата(Седой @ Oct 26 2007, 21:43) Судя п... Oct 26 2007, 17:44           aaarrr Цитата(qqqqqq @ Oct 26 2007, 21:44) Я нав... Oct 26 2007, 17:51            Седой Цитата(aaarrr @ Oct 26 2007, 23:51) Да, в... Oct 27 2007, 04:31 Седой ЦитатаВообще при таких скоростях самая большая про... Oct 20 2007, 14:19 qqqqqq Цитата(AndreyS @ Oct 30 2007, 00:53) Юзае... Oct 31 2007, 20:51  Седой Цитата(qqqqqq @ Nov 1 2007, 01:51) И ещё ... Nov 1 2007, 15:11   AndreyS ЦитатаПытаюсь пока обходиться одним абортом - дабы... Nov 1 2007, 20:09    Седой Цитата(AndreyS @ Nov 2 2007, 01:09) А как... Nov 2 2007, 06:59    Oldring Цитата(AndreyS @ Nov 1 2007, 23:09) PS. А... Nov 2 2007, 11:46     AndreyS Цитата(Oldring @ Nov 2 2007, 15:46) ... Nov 4 2007, 19:14      Oldring Цитата(AndreyS @ Nov 4 2007, 22:14) Катас... Nov 4 2007, 20:26      Седой Цитата(AndreyS @ Nov 5 2007, 00:14) Спаси... Nov 5 2007, 10:06   qqqqqq Цитата(Седой @ Nov 1 2007, 20:11) IO-мана... Nov 4 2007, 19:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|