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

📄 dspboard.asm

📁 使用5509A的usb的程序代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.file	"DspBoard.c"
	.sym	_main,_main, 32, 2, 0
	.func	119
;*******************************************************************************
;* FUNCTION NAME: _main                                                        *
;*                                                                             *
;*   Function Uses Regs : AC0,AC0,AC1,AC1,T0,AR0,XAR0,AR3,XAR3,SP,CARRY,TC1,   *
;*                        M40,SATA,SATD,RDM,FRCT,SMUL                          *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 4 words                                              *
;*                        (2 return address/alignment)                         *
;*                        (2 function parameters)                              *
;*******************************************************************************
_main:
	.line	2
        AADD #-3, SP
	.line	3
        MOV #0, *(#_bDMA0On) ; |121| 
	.line	4
        MOV #0, *(#_bDMA1On) ; |122| 
	.line	5
        MOV #0, *(#_bDMA2On) ; |123| 
	.line	7
        MOV #0, AC0 ; |125| 
        MOV AC0, dbl(*(#_i32)) ; |125| 
        MOV dbl(*(#_i32)), AC1 ; |125| 
        MOV #257, AC0 ; |125| 
        CMPU AC1 >= AC0, TC1 ; |125| 
        BCC L2,TC1 ; |125| 
                                        ; branch occurs	; |125| 
L1:    
	.line	8
        MOV *(#(_i32+1)), T0 ; |126| 
        AMOV #_Endpt2Buff, XAR3 ; |126| 
        MOV #21845, *AR3(T0) ; |126| 
        MOV dbl(*(#_i32)), AC0 ; |126| 
        ADD #1, AC0 ; |126| 
        MOV AC0, dbl(*(#_i32)) ; |126| 
        MOV dbl(*(#_i32)), AC1 ; |126| 
        MOV #257, AC0 ; |126| 
        CMPU AC1 < AC0, TC1 ; |126| 
        BCC L1,TC1 ; |126| 
                                        ; branch occurs	; |126| 
L2:    
	.line	11
        MOV #0, AC0 ; |129| 
        MOV AC0, dbl(*(#_i32)) ; |129| 
        MOV dbl(*(#_i32)), AC1 ; |129| 
        MOV #16384, AC0 ; |129| 
        CMPU AC1 >= AC0, TC1 ; |129| 
        BCC L4,TC1 ; |129| 
                                        ; branch occurs	; |129| 
L3:    
	.line	14
        MOV *(#(_i32+1)), T0 ; |132| 
        SFTL T0, #1 ; |132| 
        MOV #0, AC0 ; |132| 
        AMOV #_mcaData, XAR3 ; |132| 
        MOV AC0, dbl(*AR3(T0)) ; |132| 
	.line	15
        MOV dbl(*(#_i32)), AC0 ; |133| 
        ADD #1, AC0 ; |133| 
        MOV AC0, dbl(*(#_i32)) ; |133| 
        MOV dbl(*(#_i32)), AC1 ; |133| 
        MOV #16384, AC0 ; |133| 
        CMPU AC1 < AC0, TC1 ; |133| 
        BCC L3,TC1 ; |133| 
                                        ; branch occurs	; |133| 
L4:    
	.line	17
        MOV #0, AC0 ; |135| 
        MOV AC0, dbl(*(#_i32)) ; |135| 
        MOV dbl(*(#_i32)), AC1 ; |135| 
        MOV #512, AC0 ; |135| 
        CMPU AC1 >= AC0, TC1 ; |135| 
        BCC L6,TC1 ; |135| 
                                        ; branch occurs	; |135| 
L5:    
	.line	19
        MOV *(#(_i32+1)), T0 ; |137| 
        SFTL T0, #1 ; |137| 
        MOV #0, AC0 ; |137| 
        AMOV #_mcaData512, XAR3 ; |137| 
        MOV AC0, dbl(*AR3(T0)) ; |137| 
	.line	21
        MOV dbl(*(#_i32)), AC0 ; |139| 
        ADD #1, AC0 ; |139| 
        MOV AC0, dbl(*(#_i32)) ; |139| 
        MOV dbl(*(#_i32)), AC1 ; |139| 
        MOV #512, AC0 ; |139| 
        CMPU AC1 < AC0, TC1 ; |139| 
        BCC L5,TC1 ; |139| 
                                        ; branch occurs	; |139| 
L6:    
	.line	24
        MOV #0, AC0 ; |142| 
        MOV AC0, dbl(*(#_i32)) ; |142| 
        MOV dbl(*(#_i32)), AC1 ; |142| 
        MOV #1024, AC0 ; |142| 
        CMPU AC1 >= AC0, TC1 ; |142| 
        BCC L8,TC1 ; |142| 
                                        ; branch occurs	; |142| 
L7:    
	.line	26
        MOV *(#(_i32+1)), T0 ; |144| 
        SFTL T0, #1 ; |144| 
        MOV #0, AC0 ; |144| 
        AMOV #_mcaData1024, XAR3 ; |144| 
        MOV AC0, dbl(*AR3(T0)) ; |144| 
	.line	28
        MOV dbl(*(#_i32)), AC0 ; |146| 
        ADD #1, AC0 ; |146| 
        MOV AC0, dbl(*(#_i32)) ; |146| 
        MOV dbl(*(#_i32)), AC1 ; |146| 
        MOV #1024, AC0 ; |146| 
        CMPU AC1 < AC0, TC1 ; |146| 
        BCC L7,TC1 ; |146| 
                                        ; branch occurs	; |146| 
L8:    
	.line	31
        MOV #0, AC0 ; |149| 
        MOV AC0, dbl(*(#_i32)) ; |149| 
        MOV dbl(*(#_i32)), AC1 ; |149| 
        MOV #2048, AC0 ; |149| 
        CMPU AC1 >= AC0, TC1 ; |149| 
        BCC L10,TC1 ; |149| 
                                        ; branch occurs	; |149| 
L9:    
	.line	33
        MOV *(#(_i32+1)), T0 ; |151| 
        SFTL T0, #1 ; |151| 
        MOV #0, AC0 ; |151| 
        AMOV #_mcaData2048, XAR3 ; |151| 
        MOV AC0, dbl(*AR3(T0)) ; |151| 
	.line	35
        MOV #2048, AC1 ; |153| 
        MOV dbl(*(#_i32)), AC0 ; |153| 
        ADD #1, AC0 ; |153| 
        MOV AC0, dbl(*(#_i32)) ; |153| 
        MOV dbl(*(#_i32)), AC0 ; |153| 
        CMPU AC0 < AC1, TC1 ; |153| 
        BCC L9,TC1 ; |153| 
                                        ; branch occurs	; |153| 
L10:    
	.line	37
        MOV #0, AC0 ; |155| 
        MOV AC0, dbl(*(#_i32)) ; |155| 
	.line	38
        MOV dbl(*(#_i32)), AC1 ; |156| 
        MOV #15, AC0 ; |156| 
        CMPU AC1 >= AC0, TC1 ; |156| 
        BCC L12,TC1 ; |156| 
                                        ; branch occurs	; |156| 
L11:    
	.line	40
        MOV *(#(_i32+1)), T0 ; |158| 
        SFTL T0, #1 ; |158| 
        MOV #-1 << #16, AC0 ; |158| 
        AMOV #_mcaDataCRC, XAR3 ; |158| 
        OR #0xffff, AC0, AC0 ; |158| 
        MOV AC0, dbl(*AR3(T0)) ; |158| 
	.line	41
        MOV dbl(*(#_i32)), AC0 ; |159| 
        ADD #1, AC0 ; |159| 
        MOV AC0, dbl(*(#_i32)) ; |159| 
        MOV dbl(*(#_i32)), AC1 ; |159| 
        MOV #15, AC0 ; |159| 
        CMPU AC1 < AC0, TC1 ; |159| 
        BCC L11,TC1 ; |159| 
                                        ; branch occurs	; |159| 
L12:    
	.line	42
        MOV #0, AC0 ; |160| 
        MOV AC0, dbl(*(#(_mcaDataCRC+30))) ; |160| 
	.line	44
        AMOV #FSL1, XAR3 ; |162| 
        AMOV #_trace, XAR0 ; |162| 
        MOV XAR3, dbl(*SP(#0))
        CALL #_LOG_printf ; |162| 
                                        ; call occurs [#_LOG_printf]	; |162| 
	.line	45
        AADD #3, SP
        RET
                                        ; return occurs
	.endfunc	163,000000000h,3



	.sect	".text"
	.align 4
	.global	_dataIO
	.sym	_dataIO,_dataIO, 32, 2, 0
	.func	183
;*******************************************************************************
;* FUNCTION NAME: _dataIO                                                      *
;*                                                                             *
;*   Function Uses Regs : T0,AR0,XAR0,SP,CARRY,M40,SATA,SATD,RDM,FRCT,SMUL     *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 2 words                                              *
;*                        (2 return address/alignment)                         *
;*******************************************************************************
_dataIO:
	.line	2
        AADD #-1, SP
	.line	3
        SUB #1, *(#_nDataIOcount) ; |185| 
	.line	5
        OR #0x0001, *(#_iBufferReady) ; |187| 
	.line	6
        AMOV #_TSK_timerSem, XAR0 ; |188| 
        MOV #2, T0
        CALL #_SEM_pend ; |188| 
                                        ; call occurs [#_SEM_pend]	; |188| 
	.line	7
	.line	8
        AADD #1, SP
        RET
                                        ; return occurs
	.endfunc	190,000000000h,1



	.sect	".text"
	.align 4
	.global	_wait
	.sym	_wait,_wait, 32, 2, 0
	.func	193
;*******************************************************************************
;* FUNCTION NAME: _wait                                                        *
;*                                                                             *
;*   Function Uses Regs : T0,AR1,AR2,SP,CARRY,TC1,M40,SATA,SATD,RDM,FRCT,SMUL  *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 2 words                                              *
;*                        (1 return address/alignment)                         *
;*                        (1 local values)                                     *
;*******************************************************************************
_wait:
	.line	2
;* T0    assigned to _cycles
	.sym	_cycles,12, 14, 17, 16
	.sym	_cycles,0, 14, 1, 16
        AADD #-1, SP
        MOV T0, *SP(#0) ; |194| 
	.line	4
        MOV #0, *(#_i) ; |196| 
        MOV T0, AR1 ; |196| 
        MOV *(#_i), AR2 ; |196| 

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

        BCC L14,TC1 ; |196| 
                                        ; branch occurs	; |196| 
L13:    
        ADD #1, *(#_i) ; |196| 
        MOV T0, AR2 ; |196| 
        MOV *(#_i), AR1 ; |196| 

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

        BCC L13,TC1 ; |196| 
                                        ; branch occurs	; |196| 
L14:    
	.line	5
        AADD #1, SP
        RET
                                        ; return occurs
	.endfunc	197,000000000h,1



	.sect	".text"
	.align 4
	.global	_EnableAPLL
	.sym	_EnableAPLL,_EnableAPLL, 32, 2, 0
	.func	199
;*******************************************************************************
;* FUNCTION NAME: _EnableAPLL                                                  *
;*                                                                             *
;*   Function Uses Regs : T0,AR1,AR3,SP,M40,SATA,SATD,RDM,FRCT,SMUL            *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 2 words                                              *
;*                        (2 return address/alignment)                         *
;*******************************************************************************
_EnableAPLL:
	.line	2
        AADD #-1, SP
	.line	4
        MOV #7936, AR3 ; |202| 
        MOV #4, port(*AR3) ; |202| 
	.line	6
        MOV #25, T0 ; |204| 
        CALL #_wait ; |204| 
                                        ; call occurs [#_wait]	; |204| 
	.line	8
        MOV #0, port(*AR3) ; |206| 
	.line	11
        MOV #12288, port(*AR3) ; |209| 
	.line	14
        MOV port(*AR3), AR1 ; |212| 
        OR #0x04f8, AR1, AR1 ; |212| 
        MOV AR1, port(*AR3) ; |212| 
	.line	16
        CALL #_wait ; |214| 
                                        ; call occurs [#_wait]	; |214| 
	.line	21
        MOV port(*AR3), AR1 ; |219| 
        BSET @#1, AR1 ; |219| 
        MOV AR1, port(*AR3) ; |219| 
	.line	23
        MOV #30000, T0 ; |221| 
        CALL #_wait ; |221| 
                                        ; call occurs [#_wait]	; |221| 
	.line	26
        MOV #7808, AR3 ; |224| 
        MOV #1, port(*AR3) ; |224| 
	.line	29
        MOV #60000, T0 ; |227| 
        CALL #_wait ; |227| 
                                        ; call occurs [#_wait]	; |227| 
	.line	30
        AADD #1, SP
        RET
                                        ; return occurs
	.endfunc	228,000000000h,1



	.sect	".text"
	.align 4
	.global	_init_board
	.sym	_init_board,_init_board, 32, 2, 0
	.func	231
;*******************************************************************************
;* FUNCTION NAME: _init_board                                                  *
;*                                                                             *
;*   Function Uses Regs : AC0,AC0,T0,T1,AR0,XAR0,AR1,AR2,AR3,XAR3,SP,TC1,M40,  *
;*                        SATA,SATD,RDM,FRCT,SMUL                              *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 4 words                                              *
;*                        (2 return address/alignment)                         *
;*                        (2 function parameters)                              *
;*******************************************************************************
_init_board:
	.line	2
        AADD #-3, SP
	.line	3
        AMOV #FSL2, XAR3 ; |233| 
        AMOV #_trace, XAR0 ; |233| 
        MOV XAR3, dbl(*SP(#0))
        CALL #_LOG_printf ; |233| 
                                        ; call occurs [#_LOG_printf]	; |233| 
	.line	6
        CALL #_EMIF_reset ; |236| 
                                        ; call occurs [#_EMIF_reset]	; |236| 
	.line	7
        OR #0x0010, *(#_emifCfg0) ; |237| 
	.line	8
        AMOV #_emifCfg0, XAR0 ; |238| 
        CALL #_EMIF_config ; |238| 
                                        ; call occurs [#_EMIF_config]	; |238| 
	.line	11
        MOV #0, AC0 ; |241| 

⌨️ 快捷键说明

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