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

📄 dspboard.asm

📁 使用5509A的usb的程序代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.sym	_readFIFO,_readFIFO, 32, 2, 0
	.func	397
;*******************************************************************************
;* FUNCTION NAME: _readFIFO                                                    *
;*                                                                             *
;*   Function Uses Regs : SP,M40,SATA,SATD,RDM,FRCT,SMUL                       *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 1 word                                               *
;*                        (1 return address/alignment)                         *
;*******************************************************************************
_readFIFO:
	.line	2
	.line	4
        RET
                                        ; return occurs
	.endfunc	400,000000000h,0



	.sect	".text"
	.align 4
	.global	_usb_int
	.sym	_usb_int,_usb_int, 32, 2, 0
	.func	402
;*******************************************************************************
;* FUNCTION NAME: _usb_int                                                     *
;*                                                                             *
;*   Function Uses Regs : SP,M40,SATA,SATD,RDM,FRCT,SMUL                       *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 2 words                                              *
;*                        (2 return address/alignment)                         *
;*******************************************************************************
_usb_int:
	.line	2
        AADD #-1, SP
	.line	3
        CALL #_vUSB_evDispatch ; |404| 
                                        ; call occurs [#_vUSB_evDispatch]	; |404| 
	.line	4
        AADD #1, SP
        RET
                                        ; return occurs
	.endfunc	405,000000000h,1



	.sect	".text"
	.align 4
	.global	_USB_bulkInDatHandler
	.sym	_USB_bulkInDatHandler,_USB_bulkInDatHandler, 32, 2, 0
	.func	409
;*******************************************************************************
;* FUNCTION NAME: _USB_bulkInDatHandler                                        *
;*                                                                             *
;*   Function Uses Regs : AC0,AC0,T0,T1,AR0,XAR0,AR1,XAR1,AR2,XAR2,AR3,XAR3,SP,*
;*                        CSR,RPTC,CARRY,TC1,M40,SATA,SATD,RDM,FRCT,SMUL       *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 6 words                                              *
;*                        (2 return address/alignment)                         *
;*                        (4 local values)                                     *
;*******************************************************************************
_USB_bulkInDatHandler:
	.line	2
;* AR0   assigned to _hEpIn
	.sym	_hEpIn,17, 24, 17, 23, $$fake5
;* AR1   assigned to _hEpOut
	.sym	_hEpOut,19, 24, 17, 23, $$fake5
	.sym	_hEpIn,0, 24, 1, 23, $$fake5
	.sym	_hEpOut,2, 24, 1, 23, $$fake5
        AADD #-5, SP
        MOV XAR1, dbl(*SP(#2))
        MOV XAR0, dbl(*SP(#0))
	.line	7
        CMP *(#_nTranContent) == #1, TC1 ; |415| 
        BCC L29,!TC1 ; |415| 
                                        ; branch occurs	; |415| 
	.line	9
        MOV dbl(*SP(#0)), XAR0
        CALL #_vUSB_isTransactionDone ; |417| 
                                        ; call occurs [#_vUSB_isTransactionDone]	; |417| 
        BCC L39,T0 == #0 ; |417| 
                                        ; branch occurs	; |417| 
	.line	10
        AMOV #_Endpt2Buff, XAR1 ; |418| 
        AMOV #_usbEpObjIn2, XAR0 ; |418| 
        MOV #1, T1
        MOV #64, T0 ; |418| 
        CALL #_vUSB_postTransaction ; |418| 
                                        ; call occurs [#_vUSB_postTransaction]	; |418| 
	.line	11
        B L39     ; |419| 
                                        ; branch occurs	; |419| 
L29:    
	.line	13
        CMP *(#_nTranContent) == #2, TC1 ; |421| 
        BCC L36,!TC1 ; |421| 
                                        ; branch occurs	; |421| 
	.line	15
        CMP *(#_mcaTranLength) == #512, TC1 ; |423| 
        BCC L30,!TC1 ; |423| 
                                        ; branch occurs	; |423| 
	.line	18
        MOV *(#_Endpt2BuffLen), T1 ; |426| 
        MPYM *(#_indexUSB), T1, AC0 ; |426| 
        BFXTR #0xfffc, AC0, AR2 ; |426| 
        SFTL AR2, #1 ; |426| 
        AMOV #_mcaData512, XAR1 ; |426| 
        MOV T1, T0
        AMOV #(_Endpt2Buff+1), XAR0 ; |426| 

        AADD AR2, AR1
||      SFTL T0, #-1 ; |426| 

        CALL #_memcpy ; |426| 
                                        ; call occurs [#_memcpy]	; |426| 
	.line	21
        ADD #1, *(#_indexUSB) ; |429| 
	.line	22
        MOV #4, AR2
        MOV *(#_indexUSB), AR1 ; |430| 

        CMPU AR1 < AR2, TC1 ; |430| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L33,TC1 ; |430| 
                                        ; branch occurs	; |430| 
	.line	24
        MOV #0, *(#_indexUSB) ; |432| 
	.line	25
        MOV #3, *(#_nTranContent) ; |433| 
	.line	27
        B L33     ; |435| 
                                        ; branch occurs	; |435| 
L30:    
	.line	29
        CMP *(#_mcaTranLength) == #1024, TC1 ; |437| 
        BCC L31,!TC1 ; |437| 
                                        ; branch occurs	; |437| 
	.line	32
        MOV *(#_Endpt2BuffLen), T1 ; |440| 
        MPYM *(#_indexUSB), T1, AC0 ; |440| 
        BFXTR #0xfffc, AC0, AR2 ; |440| 
        SFTL AR2, #1 ; |440| 
        AMOV #_mcaData1024, XAR1 ; |440| 
        MOV T1, T0
        AMOV #(_Endpt2Buff+1), XAR0 ; |440| 

        AADD AR2, AR1
||      SFTL T0, #-1 ; |440| 

        CALL #_memcpy ; |440| 
                                        ; call occurs [#_memcpy]	; |440| 
	.line	35
        ADD #1, *(#_indexUSB) ; |443| 
	.line	36
        MOV #8, AR2
        MOV *(#_indexUSB), AR1 ; |444| 

        CMPU AR1 < AR2, TC1 ; |444| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L33,TC1 ; |444| 
                                        ; branch occurs	; |444| 
	.line	38
        MOV #0, *(#_indexUSB) ; |446| 
	.line	39
        MOV #3, *(#_nTranContent) ; |447| 
	.line	41
        B L33     ; |449| 
                                        ; branch occurs	; |449| 
L31:    
	.line	43
        CMP *(#_mcaTranLength) == #2048, TC1 ; |451| 
        BCC L32,!TC1 ; |451| 
                                        ; branch occurs	; |451| 
	.line	46
        MOV *(#_Endpt2BuffLen), T1 ; |454| 
        MPYM *(#_indexUSB), T1, AC0 ; |454| 
        BFXTR #0xfffc, AC0, AR2 ; |454| 
        SFTL AR2, #1 ; |454| 
        AMOV #_mcaData2048, XAR1 ; |454| 
        MOV T1, T0
        AMOV #(_Endpt2Buff+1), XAR0 ; |454| 

        AADD AR2, AR1
||      SFTL T0, #-1 ; |454| 

        CALL #_memcpy ; |454| 
                                        ; call occurs [#_memcpy]	; |454| 
	.line	49
        ADD #1, *(#_indexUSB) ; |457| 
	.line	50
        MOV #16, AR2 ; |458| 
        MOV *(#_indexUSB), AR1 ; |458| 

        CMPU AR1 < AR2, TC1 ; |458| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L33,TC1 ; |458| 
                                        ; branch occurs	; |458| 
	.line	52
        MOV #0, *(#_indexUSB) ; |460| 
	.line	53
        MOV #3, *(#_nTranContent) ; |461| 
	.line	55
        B L33     ; |463| 
                                        ; branch occurs	; |463| 
L32:    
	.line	57
        CMP *(#_mcaTranLength) == #8192, TC1 ; |465| 
        BCC L33,!TC1 ; |465| 
                                        ; branch occurs	; |465| 
	.line	60
        MOV *(#_Endpt2BuffLen), T1 ; |468| 
        MPYM *(#_indexUSB), T1, AC0 ; |468| 
        BFXTR #0xfffc, AC0, AR2 ; |468| 
        SFTL AR2, #1 ; |468| 
        AMOV #_mcaData, XAR1 ; |468| 
        MOV T1, T0
        AMOV #(_Endpt2Buff+1), XAR0 ; |468| 

        AADD AR2, AR1
||      SFTL T0, #-1 ; |468| 

        CALL #_memcpy ; |468| 
                                        ; call occurs [#_memcpy]	; |468| 
	.line	63
        ADD #1, *(#_indexUSB) ; |471| 
	.line	64
        MOV #64, AR2 ; |472| 
        MOV *(#_indexUSB), AR1 ; |472| 

        CMPU AR1 < AR2, TC1 ; |472| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L33,TC1 ; |472| 
                                        ; branch occurs	; |472| 
	.line	66
        MOV #0, *(#_indexUSB) ; |474| 
	.line	67
        MOV #3, *(#_nTranContent) ; |475| 
L33:    
	.line	72
        MOV *(#_Endpt2BuffLen), AR2 ; |480| 
        MOV #2, *(#_j) ; |480| 
        SFTL AR2, #-1 ; |480| 
        MOV *(#_j), AR1 ; |480| 

        CMPU AR1 > AR2, TC1 ; |480| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L35,TC1 ; |480| 
                                        ; branch occurs	; |480| 
L34:    
	.line	74
        MOV *(#_j), T0 ; |482| 
        AMOV #_Endpt2Buff, XAR3 ; |482| 
        MOV *AR3(T0), AR1 ; |482| 
        AND #0x0001, AR1, AC0 ; |482| 
        ADD dbl(*(#(_mcaDataCRC+30))), AC0, AC0 ; |482| 
        MOV AC0, dbl(*(#(_mcaDataCRC+30))) ; |482| 
	.line	75
        ADD #2, *(#_j) ; |483| 
        MOV *(#_Endpt2BuffLen), AR1 ; |483| 
        MOV *(#_j), AR2 ; |483| 
        SFTL AR1, #-1 ; |483| 

        CMPU AR2 <= AR1, TC1 ; |483| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L34,TC1 ; |483| 
                                        ; branch occurs	; |483| 
L35:    
	.line	78
        MOV dbl(*SP(#0)), XAR0
        CALL #_vUSB_isTransactionDone ; |486| 
                                        ; call occurs [#_vUSB_isTransactionDone]	; |486| 
        BCC L39,T0 == #0 ; |486| 
                                        ; branch occurs	; |486| 
	.line	79
        MOV *(#_Endpt2BuffLen), T0 ; |487| 
        AMOV #_Endpt2Buff, XAR1 ; |487| 
        AMOV #_usbEpObjIn2, XAR0 ; |487| 
        MOV #1, T1
        CALL #_vUSB_postTransaction ; |487| 
                                        ; call occurs [#_vUSB_postTransaction]	; |487| 
	.line	80
        B L39     ; |488| 
                                        ; branch occurs	; |488| 
L36:    
	.line	82
        CMP *(#_nTranContent) == #3, TC1 ; |490| 
        BCC L39,!TC1 ; |490| 
                                        ; branch occurs	; |490| 
	.line	84
        MOV #1, *(#_nTranContent) ; |492| 
	.line	85
        AMOV #(_Endpt2Buff+1), XAR3 ; |493| 
        AMOV #_mcaDataCRC, XAR2 ; |493| 
        RPT #31   ; |493| 
                                            ; loop starts	; |493| 
L37:    
            MOV *AR2+, *AR3+ ; |493| 
                                        ; loop ends	; |493| 
L38:    
	.line	87
        MOV dbl(*SP(#0)), XAR0
        CALL #_vUSB_isTransactionDone ; |495| 
                                        ; call occurs [#_vUSB_isTransactionDone]	; |495| 
        BCC L39,T0 == #0 ; |495| 
                                        ; branch occurs	; |495| 
	.line	88
        AMOV #_Endpt2Buff, XAR1 ; |496| 
        AMOV #_usbEpObjIn2, XAR0 ; |496| 
        MOV #1, T1
        MOV #64, T0 ; |496| 
        CALL #_vUSB_postTransaction ; |496| 
                                        ; call occurs [#_vUSB_postTransaction]	; |496| 
	.line	89
L39:    
	.line	90
        AADD #5, SP
        RET
                                        ; return occurs
	.endfunc	498,000000000h,5



	.sect	".text"
	.align 4
	.global	_USB_bulkInEvHandler
	.sym	_USB_bulkInEvHandler,_USB_bulkInEvHandler, 32, 2, 0
	.func	522
;*******************************************************************************
;* FUNCTION NAME: _USB_bulkInEvHandler                                         *
;*                                                                             *
;*   Function Uses Regs : AR0,XAR0,SP,M40,SATA,SATD,RDM,FRCT,SMUL              *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 2 words                                              *
;*                        (2 return address/alignment)                         *
;*******************************************************************************
_USB_bulkInEvHandler:
	.line	2
        AADD #-1, SP
	.line	11
        AMOV #_bulkIn_SWI, XAR0 ; |532| 
        CALL #_SWI_post ; |532| 
                                        ; call occurs [#_SWI_post]	; |532| 
	.line	12
        AADD #1, SP
        RET
                                        ; return occurs
	.endfunc	533,000000000h,1



	.sect	".text"
	.align 4
	.global	_USB_bulkOutDatHandler
	.sym	_USB_bulkOutDatHandler,_USB_bulkOutDatHandler, 32, 2, 0
	.func	536
;*******************************************************************************
;* FUNCTION NAME: _USB_bulkOutDatHandler                                       *
;*                                                                             *

⌨️ 快捷键说明

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