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

 
 
 
Reply to this topicStart new topic
> Проблемы с открытием драйвера bulkusb.sys, а с atm6124.sys работает
overloaded
сообщение Dec 14 2008, 16:16
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422



В AT91sam7 BasicUSB подредактированный. В основном ничего не менял. В главном цикле

Код
//============ WRITE USB
     unsigned length;    
     memcpy(buf,(void const*)&FHW_INS,sizeof(struct FHW_ins));
     pCDC.Write(&pCDC, buf, sizeof(struct FHW_ins));
//============ READ USB    
     length = pCDC.Read(&pCDC, buf, sizeof(struct FHW_outs),100010);
     if(length!=sizeof(struct FHW_outs))
     {
       SoftClosed = 1;
       goto MainLoop;
     }
     else    
     memcpy((void*)&FHW_OUTS,buf,sizeof(struct FHW_outs));



На ПК:
Код
            fr = new FileRead(dev_name + "\\PIPE01");//01
            if (fr.handle == 0)
                return false;

            fw = new FileWrite(dev_name + "\\PIPE00");//00
            if (fw.handle == 0)
                return false;


При работе с драйвером atm6124.sys все ОК.
Ставлю bulkusb.sys из DDK XP и 2003 пробовал.

new FileRead(dev_name + "\\PIPE01");
а точнее
handle = CreateFile(filename,
GENERIC_READ/* | GENERIC_WRITE*/,
0,//FILE_SHARE_READ,
0,
OPEN_EXISTING,
0,
0);
возвращает -1;

меняю PIPE00 и 01 местами.
Код
            fr = new FileRead(dev_name + "\\PIPE00");//01
...
            fw = new FileWrite(dev_name + "\\PIPE01");//00
...

FileRead открывается, FileWrite нет(код 87="ERROR_INVALID_PARAMETER").
Если открывать и FileWrite для PIPE00 открывает, но после этого ReadFile() "залипает" и
бесконечно ждет данные.

dev_name возвращается правильный т.к. с атмеловским драйвером все работает
на всякий случай вот он
"\\\\?\\usb#vid_03eb&pid_6124#5&79ebe7c&0&4#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"

Может дело в программе на МК? Если кто успешно работал с этим драйером, киньте плз
код для МК.. И для ПК тоже было бы неплохо.. Ну или мысли по поводу сего )
Спасибо )
Go to the top of the page
 
+Quote Post
overloaded
сообщение Dec 16 2008, 13:31
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422



не прошло и пару дней... wacko.gif и проблема решена. smile.gif

если кому интересно..
девайс не отдавал SET_CONFIGURATION - залипал в сендЗероЛенгтПакет
а дескрипторы устр-ва и конф-и отдавал.

поменял в AT91F_USB_SendData
Код
    if (pUdp->UDP_CSR[0] & AT91C_UDP_TXCOMP) {
        pUdp->UDP_CSR[0] &= ~(AT91C_UDP_TXCOMP);
        while (pUdp->UDP_CSR[0] & AT91C_UDP_TXCOMP);
    }
на

    while (!(pUdp->UDP_CSR[0] & AT91C_UDP_TXCOMP));
        pUdp->UDP_CSR[0] &= ~(AT91C_UDP_TXCOMP);
        while (pUdp->UDP_CSR[0] & AT91C_UDP_TXCOMP);


короче кривой драйвер атмела отлично работал с кривым его-же примером для мк))
а пример в свою очередь отказался рабоать с менее кривым драфером =) lol.gif
дескриптор степени кривизны прошивки не мог получить видимо...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 06:00
Рейтинг@Mail.ru


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