ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
9 мая
30264 Топик полностью
Саня (23.05.2005 00:41, просмотров: 1) ответил DASM на стоп, принимаемый пакет должен идти в OUT endpoint и надо ЗАБИРАТЬ с FIFO, а то что надо выдать в комп - писать в IN FIFO. Ну и драйвер пишет - читает конечно в разные номера endpoint - старший бит в номере определяет направление
Ну я так и делаю Происходит прерывание USB. Читаю регистры прерываний. Если установлен какой-то флаг OUT, читаю FIFO соответствующей ENDPOINT и соответственно обрабатываю. Флаг IN должен установиться после того как хост забрал данные из IN FIFO. Перед этим я записываю в FIFO свои данные и устанавливаю флаг готовности этих данных. Но флаги прерываний IN для ENDPOINT1...ENDPOINT3 не устанавливаются никогда. Я делаю ReadFile, хочу получить данные из устройства, а в контроллере происходит прерывание OUT, как будто хост мне передает данные. Причем количество переданных байт соответствует тому, что я запросил в ReadFile. Для ENDPOINT0 все работает нормально. Такое впечатление, что в драйвере что-то не то. Но трудно там разбираться.