⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbctrltrf.lst

📁 USB的开发例子,用PIC18F4550实现.可以和电脑用USB控制连接.
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC-18 Macro Assembler V8.35PL3
Serial number: HCPIC18-15668                           Wed Jun 15 13:32:21 2005

Licensed to: DESIGNREM LTD
     1                           	processor	18F4550
     2                           	opt	pw 80
     3                           	psect	__Z15668RS_,global,delta=1
     4                           	psect	text,global,reloc=2,class=CODE,delta=1
     5                           	psect	bigbss,global,class=BIGRAM,space=1,delta=
      +                          1
     6                           	psect	bss,global,class=RAM,space=1,delta=1
     7                           	psect	temp,global,ovrld,common,class=COMRAM,spa
      +                          ce=1,delta=1
     8                           	psect	intsave_regs,global,class=BIGRAM,space=1,
      +                          delta=1
     9  000000                     
    10  000000                     
    11  000000                     
    12  000000                     
    13  000000                     
    14  000000                     
    15  000000                     
    16  000000                     
    17  000000                     
    18  000000                     
    19  000000                     
    20  000000                     
    21  000000                     
    22  000000                     
    23  000000                     
    24  000000                     
    25  000000                     
    26  000000                     
    27  000000                     
    28  000000                     
    29  000000                     
    30  000000                     
    31  000000                     
    32  000000                     
    33  000000                     
    34  000000                     
    35  000000                     
    36  000000                     
    37  000000                     
    38  000000                     
    39  000000                     
    40  000000                     
    41  000000                     
    42  000000                     
    43  000000                     
    44  000000                     
    45  000000                     
    46  000000                     
    47  000000                     
    48  000000                     
    49  000000                     
    50  000000                     
    51  000000                     
    52  000000                     
    53  000000                     
    54  000000                     
    55  000000                     
    56  000000                     
    57  000000                     
    58  000000                     
    59  000000                     
    60  000000                     
    61  000000                     
    62  000000                     
    63  000000                     
    64  000000                     
    65  000000                     
    66  000000                     
    67  000000                     
    68  000000                     
    69  000000                     
    70  000000                     
    71  000000                     
    72  000000                     
    73  000000                     
    74  000000                     
    75  000000                     
    76  000000                     
    77  000000                     
    78  000000                     
    79  000000                     
    80  000000                     
    81  000000                     
    82  000000                     
    83  000000                     
    84  000000                     
    85  000000                     
    86  000000                     
    87  000000                     
    88  000000                     
    89  000000                     
    90  000000                     
    91  000000                     
    92  000000                     
    93  000000                     
    94  000000                     
    95  000000                     
    96  000000                     
    97  000000                     
    98                           
    99                           	psect	__Z15668RS_
   100  000004                     
   101  000004                     
   102                           
   103                           	psect	text
   104  0008B4                     _USBCtrlEPService:
   105                           ;	_byte_to_read assigned to ?a_USBCtrlTrfRxServi
      +                          ce+0
   106  000000                     _USBCtrlTrfRxService$byte_to_read	set	?a_USBCtrl
      +                          TrfRxService
   107                           ;	_byte_to_send assigned to ?a_USBCtrlTrfTxServi
      +                          ce+0
   108  000000                     _USBCtrlTrfTxService$byte_to_send	set	?a_USBCtrl
      +                          TrfTxService
   109                           ;	_i assigned to ?a_USBCtrlTrfSetupHandler+0
   110  000000                     _USBCtrlTrfSetupHandler$i	set	?a_USBCtrlTrfSetup
      +                          Handler
   111  000000                     
   112                           ;usbctrltrf.c: 79: if(USTAT == (0x00<<3)|(0<<2))
   113  0008B4  506C               	movf	3948,w,c	;volatile
   114  0008B6  A4D8               	btfss	status,2,c
   115  0008B8  D00A               	goto	l79
   116                           ;usbctrltrf.c: 80: {
   117  0008BA  EE04 F000          	lfsr	0,1024
   118  0008BE  30EF               	rrcf	indf0,w,c
   119  0008C0  6E00               	movwf	btemp
   120  0008C2  3000               	rrcf	btemp,w
   121  0008C4  0B0F               	andlw	15
   122  0008C6  0A0D               	xorlw	13
   123  0008C8  B4D8               	btfsc	status,2,c
   124                           ;usbctrltrf.c: 82: USBCtrlTrfSetupHandler();
   125  0008CA  D00E               	goto	_USBCtrlTrfSetupHandler	;wreg free
   126                           ;usbctrltrf.c: 83: else
   127                           ;usbctrltrf.c: 84: USBCtrlTrfOutHandler();
   128  0008CC  D03B               	goto	_USBCtrlTrfOutHandler	;wreg free
   129                           ;usbctrltrf.c: 85: }
   130  0008CE                     l79:
   131  0008CE  506C               	movf	3948,w,c	;volatile
   132  0008D0  0E00               	movlw	0
   133  0008D2  B4D8               	btfsc	status,2,c
   134  0008D4  0E01               	movlw	1
   135  0008D6  6E00               	movwf	btemp
   136  0008D8  6A01               	clrf	btemp+1
   137  0008DA  0E04               	movlw	4
   138  0008DC  1200               	iorwf	btemp,f
   139  0008DE  5001               	movf	btemp+1,w
   140  0008E0  1000               	iorwf	btemp,w
   141  0008E2  A4D8               	btfss	status,2,c
   142                           ;usbctrltrf.c: 87: USBCtrlTrfInHandler();
   143  0008E4  D840               	call	_USBCtrlTrfInHandler	;wreg free
   144                           ;usbctrltrf.c: 89: }
   145  0008E6  0012               	return	
   146                           ;usbctrltrf.c: 132: void USBCtrlTrfSetupHandler(
      +                          void)
   147                           ;usbctrltrf.c: 133: {
   148  0008E8                     _USBCtrlTrfSetupHandler:
   149  000000                     
   150                           ;usbctrltrf.c: 134: byte i;
   151  0008E8  0103               	movlb	_ctrl_trf_state shr (0+8)
   152  0008EA  6B78               	clrf	_ctrl_trf_state& (0+255),b
   153                           ;usbctrltrf.c: 138: ctrl_trf_session_owner = 0;
   154  0008EC  0103               	movlb	_ctrl_trf_session_owner shr (0+8)
   155  0008EE  6B77               	clrf	_ctrl_trf_session_owner& (0+255),b
   156                           ;usbctrltrf.c: 139: wCount._word = 0;
   157  0008F0  0100               	movlb	_wCount shr (0+8)
   158  0008F2  6BE5               	clrf	_wCount& (0+255),b
   159  0008F4  6BE6               	clrf	(_wCount+1)& (0+255),b
   160                           ;usbctrltrf.c: 142: USBCheckStdRequest();
   161  0008F6  EC1A  F000         	call	_USBCheckStdRequest	;wreg free
   162                           ;usbctrltrf.c: 144: for(i=0;i < (sizeof(ClassReq
      +                          Handler)/sizeof(pFunc));i++)
   163  0008FA  0100               	movlb	__Lparam shr (0+8)
   164  0008FC  6BFC               	clrf	?a_USBCtrlTrfSetupHandler^(__Lparam& (0+65
      +                          280))
   165  0008FE                     l85:
   166                           ;usbctrltrf.c: 145: {
   167                           ;usbctrltrf.c: 146: if(ctrl_trf_session_owner !=
      +                           0)break;
   168  0008FE  0103               	movlb	_ctrl_trf_session_owner shr (0+8)
   169  000900  5377               	movf	_ctrl_trf_session_owner& (0+255),f,b
   170  000902  A4D8               	btfss	status,2,c
   171  000904  D0E6               	goto	_USBCtrlEPServiceComplete
   172                           ;usbctrltrf.c: 147: ClassReqHandler[i]();
   173  000906  0100               	movlb	__Lparam shr (0+8)
   174  000908  90D8               	bcf	status,0,c
   175  00090A  35FC               	rlcf	?a_USBCtrlTrfSetupHandler^(__Lparam& (0+65
      +                          280)),w
   176  00090C  6E00               	movwf	btemp
   177  00090E  6A01               	clrf	btemp+1
   178  000910  3601               	rlcf	btemp+1,f
   179  000912  5000               	movf	btemp,w
   180  000914  0FCB               	addlw	low _ClassReqHandler
   181  000916  6EF6               	movwf	tblptrl,c
   182  000918  5001               	movf	btemp+1,w
   183  00091A  6EF7               	movwf	tblptrh,c
   184  00091C  0E04               	movlw	high _ClassReqHandler
   185  00091E  22F7               	addwfc	tblptrh,f,c
   186  000920  0009               	tblrd		*+
   187  000922  CFF5 F000          	movff	tablat,btemp
   188  000926  0009               	tblrd		*+
   189  000928  CFF5 F001          	movff	tablat,btemp+1
   190  00092C  C000  FFF6         	movff	btemp,tblptrl
   191  000930  C001  FFF7         	movff	btemp+1,tblptrh
   192  000934  EC02  F000         	call	indir_func
   193                           ;usbctrltrf.c: 148: }
   194  000938  0100               	movlb	__Lparam shr (0+8)
   195  00093A  2BFC               	incf	?a_USBCtrlTrfSetupHandler^(__Lparam& (0+65
      +                          280)),f
   196  00093C  0E00               	movlw	0
   197  00093E  65FC               	cpfsgt	?a_USBCtrlTrfSetupHandler^(__Lparam& (0+
      +                          65280))
   198  000940  D7DE               	goto	l85
   199                           ;usbctrltrf.c: 151: USBCtrlEPServiceComplete();
   200  000942  D0C7               	goto	_USBCtrlEPServiceComplete	;wreg free
   201                           ;usbctrltrf.c: 153: }
   202                           ;usbctrltrf.c: 175: void USBCtrlTrfOutHandler(vo
      +                          id)
   203                           ;usbctrltrf.c: 176: {
   204  000944                     _USBCtrlTrfOutHandler:
   205  000000                     
   206                           ;usbctrltrf.c: 177: if(ctrl_trf_state == 2)
   207  000944  C378  FFE8         	movff	_ctrl_trf_state,wreg
   208  000948  0A02               	xorlw	2
   209  00094A  A4D8               	btfss	status,2,c
   210  00094C  D115               	goto	_USBPrepareForNextSetupTrf
   211                           ;usbctrltrf.c: 178: {
   212  00094E  D895               	call	_USBCtrlTrfRxService	;wreg free
   213                           ;usbctrltrf.c: 186: if(ep[0].out.a.Stat.a.DTS ==
      +                           0)
   214  000950  0104               	movlb	4
   215  000952  BD00               	btfsc	0,6,b
   216  000954  D004               	goto	l91
   217                           ;usbctrltrf.c: 187: ep[0].out.a.Stat._byte = 0x8
      +                          0|0x40|0x08;
   218  000956  0EC8               	movlw	-56
   219  000958  CFE8 F400          	movff	wreg,1024
   220                           ;usbctrltrf.c: 188: else
   221  00095C  0012               	return	
   222  00095E                     l91:
   223                           ;usbctrltrf.c: 189: ep[0].out.a.Stat._byte = 0x8
      +                          0|0x00|0x08;
   224  00095E  0E88               	movlw	-120
   225  000960  CFE8 F400          	movff	wreg,1024
   226                           ;usbctrltrf.c: 190: }
   227  000964  0012               	return	
   228                           ;usbctrltrf.c: 192: USBPrepareForNextSetupTrf();
   229                           ;usbctrltrf.c: 194: }
   230                           ;usbctrltrf.c: 220: void USBCtrlTrfInHandler(voi
      +                          d)
   231                           ;usbctrltrf.c: 221: {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -