USB

0 views
Skip to first unread message

Nickita A Startcev

unread,
Nov 4, 2004, 10:31:18 AM11/4/04
to
Привет, ALL !


USB, OHCI. Кто умеет c ним камасутриться?
Ковыряю (адаптирую) чужие исходники для работы с очень сомастийным USB
устройством. На всех машинах с OHCI оно работает направильно.
(на машинах с uhci работает другой код, он работает правильно)

Ткните, пожалуйста, носом в то место, где я делаю неправильно.

Последовательность действий:

================
if(ohci_int_get(HCCPControl,HCInterruptRouting) == HCInterruptRouting)
{
ohci_int_set(HCCPCommandStatus,HCOwnershipChangeRequest);
delay_ms(100);
}
ohci_int_set(HCCPInterruptDisable, 0xFFFFFFFF);

//обнуляем весь control
ohci_int_unset(HCCPControl,0xFFFFFFFF);
ohci_int_set(HCCPCommandStatus,HCReset);
delay_ms(100);

//перевод контроллера в Operational:
ohci_int_unset(HCCPControl, HCFunctionalStateResume);
// _!!!!!!!!!!!!!!!!_
delay_ms(100);
if (ohci_int_get(HCCPControl, HCFunctionalStateSuspend) ==
HCFunctionalStateOper)
{
// установим адрес буфера для приема данных
ohci_int_set(HCMPHCCA, far_to_long(m_pHCCA));
}

ohci_hc_poweron();

if (ohci_int_get(HCCPControl, HCFunctionalStateSuspend) !=
HCFunctionalStateOper)
{
return FALSE;
}
return TRUE;
===============
в месте помеченном как _!!!!!!!!!!!!!!!!_ контроллер начинает гадить память по
адресу 0х00000080

ps: Посмотрел usb-ohci.c и usb-ohci.h - вроде бы там та же последовательность
действий.

pps: Функция ohci_int_unset сбрасывает те биты указанного регистра, которые в
параметре установлены в 1.

. С уважением, Hикита.

Reply all
Reply to author
Forward
0 new messages