Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: descriptor->Length == 0
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Chestor
День добрый.
Может подскажет кто чего?
Я выдраз драйвер USB OHCI из uboot и впихнул его в IAR... все идет по плану до того места, где я начинаю читать usb_hub_descriptor. В ответе мне в буфер кладется дескриптор в котором все значения совпадают с теми же, кторые в uboot кладутся, НО! длина дескриптора почему-то идет нулем... и оттуда моя вся проблема с неопределением подключенных устройств. =(
Подскажите, кто может, почему длина дескриптора может возвращаться нулевой?!...
Заранее спасибо.
sergeeff
А вы упаковали все стуктуры?
Chestor
Цитата(sergeeff @ Apr 12 2011, 21:06) *
А вы упаковали все стуктуры?

Вообще да... но щя еще раз проверю, раз такое подозрение.
Кстати, может чё не так сделал? у меня сомнения на счет структурки struct ohci_hcca
в оригинале она написана так...
Код
//uboot gcc
struct ohci_hcca {
    __u32    int_table[NUM_INTS];    /* Interrupt ED table */
    __u16    frame_no;        /* current frame number */
    __u16    pad1;            /* set to 0 on each frame_no change */
    __u32    done_head;        /* info returned for an interrupt */
    u8        reserved_for_hc[116];
} __attribute__((aligned(256)));

при портировании в IAR если поставить "#pragma data_alignment=256" перед самой структурой, то ругается, что это бесполезное действие и его не в этом месте надо делать. Поэтому я поставил "#pragma data_alignment=256" перед объявлением переменной со структурой, а не перед самой структурой. Правильно ли? Выглиди теперь вот так:
Код
//IAR
struct ohci_hcca {
    __u32    int_table[NUM_INTS];    /* Interrupt ED table */
    __u16    frame_no;        /* current frame number */
    __u16    pad1;            /* set to 0 on each frame_no change */
    __u32    done_head;        /* info returned for an interrupt */
    u8        reserved_for_hc[116];
}

#pragma data_alignment=256
struct ohci_hcca ghcca[1];
#pragma data_alignment=4
Chestor
Цитата(sergeeff @ Apr 12 2011, 21:06) *
А вы упаковали все стуктуры?

проверил... упаковка была кривая немного, но отличия только в конце структур, так что не повлияло на содержимое структур никак... добавил выравнивающие пустые поля чтобы размеры структур соответствовали выровняным, но не помогло... може, проблема таки в настройке контроллера?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.