Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по USB framework для at91
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Fortune
История такая. Взял атмеловские исходники usb framework+cdc и переделал с целью получения vendor-specific устройства(на контроллере at91sam7s64), работающего в режиме bulk(просто повыкидывал из кода все что касается cdc). С помощью WDK создал драйвер для этого устройства и все более или менее заработало. Но проблема в том, что я хочу увеличить скорость передачи, передавая не 64 байта за раз а 4096 байт.
Код
unsigned char BULK_Write(S_std_class *pBulk,
                        void *pBuffer,
                        unsigned int dLength,
                        Callback_f fCallback,
                        void *pArgument)
{
    return USB_Write(pBulk->pUsb, BULK_EPT_DATA_IN, pBuffer,
                     dLength, fCallback, pArgument);
}

в этом коде фигурирует функция USB_Write(она осталась неизменной из атмеловских примеров ). Эта функция принимает в качестве аргумента dLength, который, по идее равен количеству байт, которые я планирую передать на хост. Сейчас я передаю dLength=64. Могу ли я передать в эту функцию dLength=4096? (пробовал, максимум что у меня получилось - 128). Если нет, то как организовать передачу блоками по 4кб? Нужно ли модифицировать каким-то образом функцию USB_Write или нужно передавать как-то по другому?
Fortune
Всем спасибо, уже разобрался. С функцией USB_Write все в порядке, проблема была в моем кривом коде. Моя функция-обёртка для функции USB_Write передавала в последнюю dLength типа unsigned char, поэтому я не мог передать 256 байт и больше. Исправил на unsigned int и все заработало.

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