Вопрос АРМвода по USB OHCI стеку (трабл при передаче пакетов INT)

Выбор и настройка HardWare

Модератор: Модераторы разделов

Kenat
Сообщения: 1
ОС: uCOS

Вопрос АРМвода по USB OHCI стеку

Сообщение Kenat »

усб орг форум молчит как рыба об лёд.
Реализуем усб стек для uCOS за основу был взят стек из ядра 2.4 заткнулся на ISO INT пакетах


,
1 HCCA.InterruptTable очищаю (as in linux 2.2 2.4 2.6 )
2 записываю ED для INT запроса

Код: Выделить всё

-I- Open keyboard
-I- submitUSBRequest after ED_Submit()
   UHP_HccaInterruptTable[0] = ED list
   -- 0x20526220 >0x00085083 CRL[ FA:3 EN:1 D:IN S:Full K:SKIP F:GDT MPS:8] TailP:0x20527090 HeadP:0x205262D0 Halted:No Toggle:0 NextEd:0x00000000
    ->TD Queue
      0x205262D0 CRL:[  R:1 DP:2 DI:0 T:2 EC:0 CC:F] CBP:0x20525080 BE:0x20525087 nextTD:0x20527090


*skip временно на процесс логирования

далее OHCI отрабатывает и возвращает репорт

Код: Выделить всё

-I- dl_done_list returnUSBR (PIPE_INTERRUPT)
-I- returnUSBR HCCA before ED_Submit()
   UHP_HccaInterruptTable[0] =
-D- ED list
   -- 0x20526220 >0x00081083 CRL[ FA:3 EN:1 D:IN S:Full K: F:GDT MPS:8] TailP:0x20527090 HeadP:0x20527090 Halted:No Toggle:1 NextEd:0x00000000
    -> No TD Queue
-D- hid_irq: report (size 8) (unnumbered) =  00 00 00 00 00 00 00 00



зашибись, теперь к этому ED линкуем новый TD для полседующего запроса к функции

Код: Выделить всё

UHP_HccaInterruptTable[0] =
-D- ED list
   -- 0x20526220 >0x00085083 CRL[ FA:3 EN:1 D:IN S:Full K:SKIP F:GDT MPS:8] TailP:0x205262D0 HeadP:0x20527090 Halted:No Toggle:1 NextEd:0x00000000
    ->TD Queue
      0x20527090 CRL:[  R:1 DP:2 DI:0 T:0 EC:0 CC:F] CBP:0x20525080 BE:0x20525087 nextTD:0x205262D0


*skip временно на процесс логирования
Всё , больше этот ендпоинт дескриптор не обрабатывается , если я добавляю ещё один [1] то он обрабатывается , также один раз..

смотрим UHP_HccaInterruptTable

и видим

Код: Выделить всё

I- HCCAInterrupt
   UHP_HccaInterruptTable[0] =
-D- ED list
   -- 0x20526220 >0x00081083 CRL[ FA:3 EN:1 D:IN S:Full K: F:GDT MPS:8] TailP:0x205262D0 HeadP:0x20527090 Halted:No Toggle:1 NextEd:0x00000000
    ->TD Queue
      0x20527090 CRL:[  R:1 DP:2 DI:0 T:0 EC:0 CC:F] CBP:0x20525080 BE:0x20525087 nextTD:0x205262D0


как стоял так и стоит гад ... не отправляется

всю голову сломал...

вот статус контроллера

Код: Выделить всё

UHP_HcInterruptStatus: 0x00000000
UHP_HcInterruptEnable: 0x80000057 MIE RHSC UE SF WDH SO
UHP_HcInterruptDisable: 0x80000057 MIE RHSC UE SF WDH SO
UHP_HcFmInterval  0x2EDF
UHP_HcPeriodicStart 0x2A2F
hcca frame #00A6


ничего уже не понимаю (((( где ошибка моя ?
Спасибо сказали: