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

📄 usb_ctrl.asm

📁 使用5509A的usb的程序代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        B L12     ; |229| 
                                        ; branch occurs	; |229| 
L9:    
	.line	97
        MOV dbl(*SP(#4)), XAR0
        CALL #_vUSB_stallEndpt ; |235| 
                                        ; call occurs [#_vUSB_stallEndpt]	; |235| 
	.line	98
        MOV dbl(*SP(#2)), XAR0
        CALL #_vUSB_stallEndpt ; |236| 
                                        ; call occurs [#_vUSB_stallEndpt]	; |236| 
        B L12     ; |236| 
                                        ; branch occurs	; |236| 
L10:    
	.line	102
        MOV #(_USB_reqUnknown >> 16) << #16, AC0 ; |240| 
        OR #(_USB_reqUnknown & 0xffff), AC0, AC0 ; |240| 
        MOV AC0, dbl(*(#_fpRequestHandler)) ; |240| 
        B L12     ; |240| 
                                        ; branch occurs	; |240| 
L11:    
	.line	67

        MOV T0, AR1
||      MOV #3, AR2

        CMP AR1 > AR2, TC1 ; |205| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L12,TC1 ; |205| 
                                        ; branch occurs	; |205| 

        CMP AR1 == AR2, TC1 ; |205| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L8,TC1 ; |205| 
                                        ; branch occurs	; |205| 
        BCC L10,AR1 == #0 ; |205| 
                                        ; branch occurs	; |205| 
        MOV #1, AR2

        CMP AR1 == AR2, TC1 ; |205| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L9,TC1 ; |205| 
                                        ; branch occurs	; |205| 
        MOV #2, AR2

        CMP AR1 == AR2, TC1 ; |205| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L7,TC1 ; |205| 
                                        ; branch occurs	; |205| 
L12:    
	.line	110
        MOV *(#_USB_Setup), AR1 ; |248| 
        BCC L13,AR1 == #0 ; |248| 
                                        ; branch occurs	; |248| 
	.line	112
        MOV #0, *(#_USB_Setup) ; |250| 
	.line	113
L13:    
	.line	115
        AADD #10, SP
        POP T2
        RET
                                        ; return occurs
	.endfunc	253,000000002h,11



	.sect	".text"
	.align 4
	.global	_USB_lookupReqHandler
	.sym	_USB_lookupReqHandler,_USB_lookupReqHandler, 618, 2, 0, $$fake6
	.func	286
;*******************************************************************************
;* FUNCTION NAME: _USB_lookupReqHandler                                        *
;*                                                                             *
;*   Function Uses Regs : AC0,AC0,T0,AR0,XAR0,AR1,AR2,AR3,XAR3,SP,CARRY,TC1,   *
;*                        M40,SATA,SATD,RDM,FRCT,SMUL                          *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 6 words                                              *
;*                        (1 return address/alignment)                         *
;*                        (5 local values)                                     *
;*******************************************************************************
_USB_lookupReqHandler:
	.line	2
;* T0    assigned to _Request
	.sym	_Request,12, 13, 17, 16
;* AR0   assigned to _pUSB_ReqTable
	.sym	_pUSB_ReqTable,17, 24, 17, 23, $$fake7
	.sym	_Request,0, 13, 1, 16
	.sym	_pUSB_ReqTable,2, 24, 1, 23, $$fake7
	.sym	_ii,4, 13, 1, 16
        AADD #-5, SP
        MOV XAR0, dbl(*SP(#2))
        MOV T0, *SP(#0) ; |287| 
	.line	6
        MOV #0, *SP(#4) ; |291| 
        MOV dbl(*SP(#2)), XAR3
        MOV *SP(#4), AC0 ; |291| 
        SFTS AC0, #2, AC0 ; |291| 
        MOV AC0, AR1 ; |291| 
        AADD AR1, AR3
        MOV dbl(*AR3(short(#2))), AC0 ; |291| 
        BCC L16,AC0 == #0 ; |291| 
                                        ; branch occurs	; |291| 
L14:    
	.line	9
        MOV dbl(*SP(#2)), XAR3
        MOV *SP(#4), AC0 ; |294| 
        SFTS AC0, #2, AC0 ; |294| 
        MOV AC0, T0 ; |294| 
        MOV *SP(#0), AR1 ; |294| 
        MOV *AR3(T0), AR2 ; |294| 

        CMPU AR2 != AR1, TC1 ; |294| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L15,TC1 ; |294| 
                                        ; branch occurs	; |294| 
	.line	11
        MOV dbl(*SP(#2)), XAR3
        MOV *SP(#4), AC0 ; |296| 
        SFTS AC0, #2, AC0 ; |296| 
        MOV AC0, AR1 ; |296| 
        AADD AR1, AR3
        MOV dbl(*AR3(short(#2))), AC0 ; |296| 
        B L17     ; |296| 
                                        ; branch occurs	; |296| 
L15:    
	.line	13
        ADD #1, *SP(#4) ; |298| 
        MOV dbl(*SP(#2)), XAR3
        MOV *SP(#4), AC0 ; |298| 
        SFTS AC0, #2, AC0 ; |298| 
        MOV AC0, AR1 ; |298| 
        AADD AR1, AR3
        MOV dbl(*AR3(short(#2))), AC0 ; |298| 
        BCC L14,AC0 != #0 ; |298| 
                                        ; branch occurs	; |298| 
L16:    
	.line	16
        MOV #(_USB_reqUnknown >> 16) << #16, AC0 ; |301| 
        OR #(_USB_reqUnknown & 0xffff), AC0, AC0 ; |301| 
L17:    
	.line	17
        AADD #5, SP ; |301| 
        RET       ; |301| 
                                        ; return occurs	; |301| 
	.endfunc	302,000000000h,5


;*******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                               *
;*******************************************************************************
	.global	_vUSB_issueRemoteWakeup
	.global	_vUSB_getEvents
	.global	_vUSB_getSetupPacket
	.global	_vUSB_postTransaction
	.global	_vUSB_abortAllTransaction
	.global	_vUSB_stallEndpt
	.global	_vUSB_init
	.global	_USB_reqUnknown
	.global	_usbEpObjOut0
	.global	_usbEpObjIn0
	.global	_usbCurConfigStat
	.global	_USB_ReqTable
	.global	_myUsbConfig

;*******************************************************************************
;* TYPE INFORMATION                                                            *
;*******************************************************************************
	.sym	_Uchar, 0, 12, 13, 16
	.sym	_Uint16, 0, 13, 13, 16
	.sym	_USB_EVENT_ISR, 0, 144, 13, 32
	.etag	$$fake3, 16
	.member	_USB_OUT_EP0, 0, 4, 16, 16
	.member	_USB_OUT_EP1, 1, 4, 16, 16
	.member	_USB_OUT_EP2, 2, 4, 16, 16
	.member	_USB_OUT_EP3, 3, 4, 16, 16
	.member	_USB_OUT_EP4, 4, 4, 16, 16
	.member	_USB_OUT_EP5, 5, 4, 16, 16
	.member	_USB_OUT_EP6, 6, 4, 16, 16
	.member	_USB_OUT_EP7, 7, 4, 16, 16
	.member	_USB_IN_EP0, 8, 4, 16, 16
	.member	_USB_IN_EP1, 9, 4, 16, 16
	.member	_USB_IN_EP2, 10, 4, 16, 16
	.member	_USB_IN_EP3, 11, 4, 16, 16
	.member	_USB_IN_EP4, 12, 4, 16, 16
	.member	_USB_IN_EP5, 13, 4, 16, 16
	.member	_USB_IN_EP6, 14, 4, 16, 16
	.member	_USB_IN_EP7, 15, 4, 16, 16
	.eos
	.sym	_USB_EpNum, 0, 10, 13, 16,$$fake3
	.etag	$$fake4, 16
	.member	_USB_CTRL, 0, 4, 16, 16
	.member	_USB_BULK, 1, 4, 16, 16
	.member	_USB_INTR, 2, 4, 16, 16
	.member	_USB_ISO, 3, 4, 16, 16
	.member	_USB_HPORT, 4, 4, 16, 16
	.eos
	.sym	_USB_XferType, 0, 10, 13, 16,$$fake4
	.stag	_USB_DataStructDef, 96
	.member	_Bytes, 0, 13, 8, 16
	.member	_pBuffer, 32, 29, 8, 23
	.member	_pNextBuffer, 64, 24, 8, 23, _USB_DataStructDef
	.eos
	.sym	_USB_DataStruct, 0, 8, 13, 96,_USB_DataStructDef
	.stag	$$fake2, 320
	.member	_EpNum, 0, 10, 8, 16, $$fake3
	.member	_XferType, 16, 10, 8, 16, $$fake4
	.member	_MaxPktSiz, 32, 13, 8, 16
	.member	_EventMask, 48, 13, 8, 16
	.member	_Fxn, 64, 144, 8, 32
	.member	_DataFlags, 96, 13, 8, 16
	.member	_Status, 112, 13, 8, 16
	.member	_EDReg_SAddr, 128, 13, 8, 16
	.member	_DMA_SAddr, 144, 13, 8, 16
	.member	_TotBytCnt, 160, 13, 8, 16
	.member	_BytInThisSeg, 176, 13, 8, 16
	.member	_XferBytCnt, 192, 29, 8, 23
	.member	_pBuffer, 224, 29, 8, 23
	.member	_pNextBuffer, 256, 24, 8, 23, _USB_DataStructDef
	.member	_EventFlag, 288, 13, 8, 16
	.eos
	.sym	_USB_EpHandle, 0, 24, 13, 23,$$fake2
	.sym	_USB_EpObj, 0, 8, 13, 320,$$fake2
	.etag	$$fake1, 16
	.member	_USB0, 0, 4, 16, 16
	.member	_USB1, 1, 4, 16, 16
	.member	_USB2, 2, 4, 16, 16
	.eos
	.sym	_USB_DevNum, 0, 10, 13, 16,$$fake1
	.etag	$$fake0, 16
	.member	_USB_FALSE, 0, 4, 16, 16
	.member	_USB_TRUE, 1, 4, 16, 16
	.eos
	.sym	_USB_Boolean, 0, 10, 13, 16,$$fake0
	.stag	$$fake5, 96
	.member	_New, 0, 4, 8, 16
	.member	_bmRequestType, 16, 13, 8, 16
	.member	_bRequest, 32, 13, 8, 16
	.member	_wValue, 48, 13, 8, 16
	.member	_wIndex, 64, 13, 8, 16
	.member	_wLength, 80, 13, 8, 16
	.eos
	.sym	_USB_SetupStruct, 0, 8, 13, 96,$$fake5
	.etag	$$fake6, 16
	.member	_USB_REQUEST_DONE, 0, 4, 16, 16
	.member	_USB_REQUEST_STALL, 1, 4, 16, 16
	.member	_USB_REQUEST_SEND_ACK, 2, 4, 16, 16
	.member	_USB_REQUEST_GET_ACK, 3, 4, 16, 16
	.member	_USB_REQUEST_DATA_IN, 4, 4, 16, 16
	.member	_USB_REQUEST_DATA_OUT, 5, 4, 16, 16
	.eos
	.sym	_USB_REQUEST_RET, 0, 10, 13, 16,$$fake6
	.sym	_fpUSB_REQ_HANDLER, 0, 154, 13, 32,$$fake6
	.stag	$$fake7, 64
	.member	_Request, 0, 13, 8, 16
	.member	_fpRequestHandler, 32, 154, 8, 32, $$fake6
	.eos
	.sym	_USB_request_struct, 0, 8, 13, 64,$$fake7

⌨️ 快捷键说明

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