реклама на сайте
подробности

 
 
> descriptor->Length == 0
Chestor
сообщение Apr 12 2011, 16:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-11-10
Пользователь №: 61 098



День добрый.
Может подскажет кто чего?
Я выдраз драйвер USB OHCI из uboot и впихнул его в IAR... все идет по плану до того места, где я начинаю читать usb_hub_descriptor. В ответе мне в буфер кладется дескриптор в котором все значения совпадают с теми же, кторые в uboot кладутся, НО! длина дескриптора почему-то идет нулем... и оттуда моя вся проблема с неопределением подключенных устройств. =(
Подскажите, кто может, почему длина дескриптора может возвращаться нулевой?!...
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Apr 12 2011, 17:06
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



А вы упаковали все стуктуры?
Go to the top of the page
 
+Quote Post
Chestor
сообщение Apr 13 2011, 04:14
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-11-10
Пользователь №: 61 098



Цитата(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 - Apr 13 2011, 04:26
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 21:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016