📄 usb_ctrl.asm
字号:
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 + -