你好!我在写USB接口打印机驱动,由于打印机的配置描述符过长,使用内部固件会有数据溢出,于是我就根据你们公司提供的外部固件程序的例子编写了一个外部固件的程序,基本是你们发给我的那个程序 我只做了一点修改,可是在程序执行到控制传输的数据阶段的时候发出标识包后,返回的状态是错误的,程序不能在执行下去,数据阶段不能够在进行下去,获得不了描述符. 下面是获取描述符的外部固件程序,请帮我看看 到底哪里出错了,谢谢. unsigned char get_descr_ex() { unsigned char descr_len,x,state,m; unsigned char *p=data_buf; endp7_mode=0x80; toggle_send(); wr_usb_data(8,Req_buf); //do{ state=issue_token(0x0d); if(state==USB_INT_SUCCESS) { endp6_mode=0xc0; toggle_recv(); //break; } else while(1); //}while(1); state=issue_token(0x09); //程序执行到这里state=0x2e,不是0x14.请问是什么原因 if(state==USB_INT_SUCCESS) { x=rd_usb_data(p); if(flag_config_2)descr_len=data_buf[2]-x; else descr_len=data_buf[0]-x; while(descr_len>0) { toggle_recv(); p+=x; if((state=issue_token(0x09))==USB_INT_SUCCESS) { m=rd_usb_data(p); descr_len-=m; x+=m; } else while(1); } } else while(1); // printf("data in failed\n"); endp7_mode=0xc0; toggle_send(); wr_usb_data(0,Req_buf); if(issue_token(0x01)==USB_INT_SUCCESS) { return(0x14); } else while(1); //printf("status failed\n"); }
查看: 3882
回复: 0
请hcn大哥帮帮忙
wangxueyou
发表于: 2006-09-14 08:37:00
热门产品 :
CH390:以太网控制器芯片
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录