📄 ch375.lst
字号:
393 5 if(debug) uartPutStr("GET_CONFIG\n\r");
394 5 request.buffer[0]=0; //没有配置则传0
395 5 if( CH375CONFLAG )
396 5 request.buffer[0]=1; //已经配置则传1, 这是在描述符里规定的
397 5 break;
398 5 //标准请求, 6
399 5 case DEF_USB_SET_CONFIG: //设置配置
400 5 if(debug) uartPutStr("SET_CONFIG\n\r");
401 5 CH375CONFLAG=0;
402 5 if( request.buffer[2] != 0 )
403 5 {
404 6 CH375CONFLAG=1; //设置配置标志
405 6 }
406 5 break;
407 5 //标准请求, 7
408 5 case DEF_USB_GET_INTERF: //获得接口
409 5 if(debug) uartPutStr("GET_INTERF\n");
410 5 request.buffer[0]=1; //上传接口数,本事例只支持一个接口
411 5 break;
412 5 default :
413 5 if(debug) uartPutStr("NAK_REQUEST\n");
414 5 CH375FLAGERR=1; //不支持的标准请求
415 5 break;
416 5 }//分析标准请求结束
417 4 }//标准请求处理结束
418 3 //类请求
419 3 else if(0x20==(request.r.bmReuestType&0x60))
420 3 {
421 4 if(debug) uartPutStr("Request class\n\r");
422 4 }
423 3 //非标准请求, 保留
424 3 else
425 3 {
426 4 ;
C51 COMPILER V7.06 CH375 04/07/2006 09:06:59 PAGE 8
427 4 }
428 3 }//长度是8的数据处理结束
429 2 else //不支持的控制传输,不是8字节的控制传输
430 2 {
431 3 CH375FLAGERR=1;
432 3 }
433 2
434 2 if( !CH375FLAGERR )
435 2 mCh375Ep0Up(); //没有错误/调用数据上传,长度为0上传为状态
436 2 else
437 2 {
438 3 CH375_WR_CMD_PORT( CMD_SET_ENDP3 ); //设置端点0发送器的工作方式, 为STALL,指示一个错误
439 3 CH375_WR_DAT_PORT( 0x0F );
440 3 if(debug&DBG_SETUP) uartPutStr("error!\n\r");
441 3 //flash_led();
442 3 }
443 2 break;
444 2 case USB_INT_EP0_IN: //控制端点上传成功
445 2 if(1) uartPutStr("0_IN\n\r");
446 2 if( mVarSetupRequest==DEF_USB_GET_DESCR ) //描述符上传
447 2 {
448 3 mCh375DesUp();
449 3 mCh375Ep0Up();
450 3 }
451 2 else
452 2 if( mVarSetupRequest==DEF_USB_SET_ADDRESS ) //设置地址
453 2 {
454 3 CH375_WR_CMD_PORT( CMD_SET_USB_ADDR );
455 3 CH375_WR_DAT_PORT( VarUsbAddress ); //设置USB地址,设置下次事务的USB地址
456 3 if(debug) uartPrint("SET_ADDRESS: %\n\r", &VarUsbAddress, 1);
457 3 }
458 2 CH375_WR_CMD_PORT(CMD_UNLOCK_USB); //释放缓冲区
459 2 break;
460 2 case USB_INT_EP0_OUT: //控制端点下传成功
461 2 if(debug&DBG_SETUP) uartPutStr("EP0_OUT!\n\r");
462 2 /*
463 2 CH375_WR_CMD_PORT( CMD_RD_USB_DATA ); //发出读数据命令
464 2 length=CH375_RD_DAT_PORT();
465 2 if( length>0 ) //长度为0跳出
466 2 {
467 2 for( len=0;len!=length;len++ )
468 2 CH375_RD_DAT_PORT(); //取出下传数据
469 2 }*/
470 2 len=rdData();
471 2 if(0==len)
472 2 {
473 3 if(debug&DBG_SETUP) uartPutStr("length 0x00!\n\r");
474 3 }
475 2 else
476 2 {
477 3 if(debug&DBG_SETUP) uartPrint("EP0_OUT %\n\r", RECV_BUFFER, len);
478 3 }
479 2 break;
480 2 default:
481 2 if(debug&DBG_SETUP) uartPrint("status defaut %!\n\r", &InterruptStatus, 1);
482 2 if( 0x03==(InterruptStatus&0x03) ) //总线复位
483 2 {
484 3 CH375FLAGERR=0; //错误清0
485 3 CH375CONFLAG=0; //配置清0
486 3 mVarSetupLength=0;
487 3 }
488 2 else
C51 COMPILER V7.06 CH375 04/07/2006 09:06:59 PAGE 9
489 2 { //命令不支持
490 3 flash_led();
491 3 }
492 2 CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); //释放缓冲区
493 2 break;
494 2 }
495 1 }
C51 COMPILER V7.06 CH375 04/07/2006 09:06:59 PAGE 10
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
Class_Descriptor . . . . . . . . . . . PUBLIC CODE ARRAY 01E6H 9
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
CH375_RD_DAT_PORT. . . . . . . . . . . PUBLIC CODE PROC 0005H -----
debug. . . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
_REQUEST_PACK. . . . . . . . . . . . . * TAG * ----- UNION ----- 8
buffer . . . . . . . . . . . . . . . MEMBER ----- ARRAY 0000H 8
r. . . . . . . . . . . . . . . . . . MEMBER ----- STRUCT 0000H 8
request. . . . . . . . . . . . . . . . EXTERN DATA UNION ----- 8
mCh375Interrupt. . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
InterruptStatus. . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
length . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
len. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
disConnect . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
mVarSetupLength. . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
_uartPutStr. . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
mVarSetupRequest . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
mCh375DesUp. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
k. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
VarUsbAddress. . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
CH375_Init . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
k. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
RD_Data. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
LangDes. . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 01D0H 4
hid_report_desc_table. . . . . . . . . PUBLIC CODE ARRAY 015BH 50
ep1Buf . . . . . . . . . . . . . . . . EXTERN IDATA ARRAY ----- 8
mpREQUEST_PACKET . . . . . . . . . . . TYPEDEF ----- PTR ----- 3
flash_led. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
CH375CONFLAG . . . . . . . . . . . . . EXTERN DATA BIT ----- 1
_ep1Up . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
len. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
_uartPrint . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
CH375FLAGERR . . . . . . . . . . . . . EXTERN DATA BIT ----- 1
VarSetupDescr. . . . . . . . . . . . . EXTERN DATA PTR ----- 3
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
mREQUEST_PACKET. . . . . . . . . . . . TYPEDEF ----- UNION ----- 8
buffer . . . . . . . . . . . . . . . MEMBER ----- ARRAY 0000H 8
r. . . . . . . . . . . . . . . . . . MEMBER ----- STRUCT 0000H 8
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
led. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
delay1s. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
DevDes . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 018DH 24
ConDes . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 01A5H 34
SerDes . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 01D4H 18
RECV_BUFFER. . . . . . . . . . . . . . EXTERN DATA ARRAY ----- 64
rdData . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
length . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
ret_buf. . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
hidDes . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 01C7H 9
delay50ms. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
out. . . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 3
flag . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0000H 1
C51 COMPILER V7.06 CH375 04/07/2006 09:06:59 PAGE 11
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
count. . . . . . . . . . . . . . . . MEMBER ----- U_INT 0001H 2
_set_usb_mode. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
mode . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
RD_Data. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
mCh375Ep0Up. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
len. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
RECV_LEN . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
_CH375_WR_CMD_PORT . . . . . . . . . . PUBLIC CODE PROC 0000H -----
cmd. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
_CH375_WR_DAT_PORT . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dat. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1234 ----
CONSTANT SIZE = 495 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -