Цитата(brag @ Aug 25 2007, 20:59)

хи алл!
Мне тож пришлось связатся с усб..скачал доку,почитал,немного понял..но слабо. пробовал перелопатить BasicUSB,но не пошло..я через прерывания делал,чет не получилось..
Потом взял фреймворк,тоже перелопатил.вроде запустилось,но дело доходит до запроса 9(SET CONFIGURATION) и чет оси не нравится.(FreeBSD) пишет INVAL.
Что посоветываете? надо,чтоб жыло на прерываниях и занимало не более 4кб. кристал AT91SAM7S64...
Спасибо
По прерываниям работает пример из FreeRTOS, посмотрите на него. И доку почитайте еще раза три, до полного просветления.
Цитата(Pasha 111 @ Aug 29 2007, 16:44)

Artem, выслал
Dron_Gus, вставка #include <intrinsics.h> и вызов __enable_interrupt(); не помогли

Kitsok, while(1) сделан на случай, кодга во время обработки одного прерывания успевает прийти второе, т.е. какбы за один вызов функции сразу несколько прерываний можно обработать.
2All, возникла такая проблема: в проекте BasicUSB почему-то не передаются пакеты, длина которых кратна 64. В программе под Windows вызывается WriteFile(), которая говорит, что записала 0 байт, если длина посылаемых данных ей казана равной 64 или кратной (128, 256..). Никто с этим не сталкивался? Уже 2 недели пытаюсь разобраться, ужас. Контроллер при этом, естественно, ничего не получает. Стоит указать 63 или 65 байт - всё ОК! Не может быть глюк в самом atm6124.sys?
Про while(1) в обработчике - ну не знаю, по-моему вы недооцениваете скорость обработки прерываний.
Что касается записи пакетов, кратных размеру конечной точки, то см. выше в этой ветке. После такого нужно посылать пустой пакет.