UHC

Тема в разделе "WASM.NT.KERNEL", создана пользователем AntiB, 7 дек 2008.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток!
    У меня трабл с Universal Host Controller, я создаю Frame List на границу в 4К, создаю 2 Transfer Descriptor(TD) и хочу послать команду STATUS DEVICE на EndPoint 0 (еще не сделал инициализацию и настройку других EndPoint-ов, а тоесть сначала нужно ити к EndPoint 0) и создаю запрос:
    RequestType = 0x00000082 (так как я понял, нужно для EndPoint)
    Request = 0x00000000
    Value = 0
    Index = 0
    Length = 2

    Первый TD:
    Next = указатель на TD2
    Status = размер запроса | 0x00800000 = 0x00800007
    Token = 0x0000002d - (тоесть PID = TOKEN_SETUP)
    Buffer = укащатель на запрос
    Reserved[4] = 0

    Второй TD:
    Next = указатель на TD2
    Status = 8 | 0x00800000 = 0x00800008
    Token = 0x00000069 (тоесть PID = TOKEN_IN)
    Buffer = укащатель на буфер данных
    Reserved[4] = 0

    после запроса включаю контроллер записью в Command Register = 1
    смотрю на Status TD
    Status TD1 = 0x00400007
    Status TD2 = 0x00400007

    когда вместо Token = TOKEN_SETUP в первом TD, делаю Token = DATA_DATA0, тогда Status TD1 = 0x000007ff

    Что я делаю не так? где ошибка?
    Зарание благодарен