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

📄 codec.asm

📁 用汇编编程实现的DSP低通
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;----------------------------------------------------------------------
;  70 | codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);    /* -6dB gain on ana
;     | log output from DAC */                                                 
;----------------------------------------------------------------------
        ST        #1,*SP(0)             ; |70| 
        LD        *(_hHandset),A        ; |70| 
        CALL      #_codec_aout_gain     ; |70| 
        ; call occurs [#_codec_aout_gain] ; |70| 
	.line	34
;----------------------------------------------------------------------
;  71 | codec_sample_rate(hHandset,SR_16000);               /* 16KHz sampling r
;     | ate */                                                                 
;----------------------------------------------------------------------
        ST        #144,*SP(0)           ; |71| 
        LD        *(_hHandset),A        ; |71| 
        CALL      #_codec_sample_rate   ; |71| 
        ; call occurs [#_codec_sample_rate] ; |71| 
	.line	38
;----------------------------------------------------------------------
;  75 | while (1)                                                              
;----------------------------------------------------------------------
	.line	41
;----------------------------------------------------------------------
;  78 | while (!MCBSP_RRDY(HANDSET_CODEC)) {};                                 
;----------------------------------------------------------------------
L5:    
        STM       #72,AR1               ; |78| 
        ST        #0,*AR1               ; |78| 
        LD        #2,A                  ; |78| 
        STM       #73,AR1               ; |78| 
        LDU       *AR1,B
        AND       B,A                   ; |78| 
        SFTL      A,#0                  ; |78| 
        SFTL      A,#-1,A               ; |78| 
        NOP
        LDM       AL,A                  ; |78| 
        BC        L5,AEQ                ; |78| 
        ; branch occurs ; |78| 
	.line	44
;----------------------------------------------------------------------
;  81 | data = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC);                       
;----------------------------------------------------------------------
        STM       #65,AR1               ; |81| 
        MVDK      *AR1,*(_data)         ; |81| 
	.line	45
;----------------------------------------------------------------------
;  82 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	46
;----------------------------------------------------------------------
;  83 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	47
;----------------------------------------------------------------------
;  84 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	48
;----------------------------------------------------------------------
;  85 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	49
;----------------------------------------------------------------------
;  86 | *buffer = data;                                                        
;----------------------------------------------------------------------
        MVDM      *(_buffer),AR1        ; |86| 
        MVKD      *(_data),*AR1         ; |86| 
	.line	50
;----------------------------------------------------------------------
;  87 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	51
;----------------------------------------------------------------------
;  88 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	52
;----------------------------------------------------------------------
;  89 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	53
;----------------------------------------------------------------------
;  90 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	54
;----------------------------------------------------------------------
;  91 | fir();                                                                 
;----------------------------------------------------------------------
        CALL      #_fir                 ; |91| 
        ; call occurs [#_fir] ; |91| 
	.line	55
;----------------------------------------------------------------------
;  92 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	56
;----------------------------------------------------------------------
;  93 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	57
;----------------------------------------------------------------------
;  94 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	58
;----------------------------------------------------------------------
;  95 | asm("    nop");                                                        
;----------------------------------------------------------------------
	nop
	.line	59
;----------------------------------------------------------------------
;  96 | *(volatile u16*)DXR1_ADDR(HANDSET_CODEC) = *buffer;                    
;----------------------------------------------------------------------
        MVDM      *(_buffer),AR3        ; |96| 
        STM       #67,AR2               ; |96| 
        MVDD      *AR3,*AR2             ; |96| 
	.line	60
        B         L5                    ; |97| 
        ; branch occurs ; |97| 
L6:    
	.line	61
        FRAME     #4
        POPM      AR1
        RET
        ; return occurs
	.endfunc	98,000000400h,5


	.sect	".text"
	.global	_delay
	.sym	_delay,_delay, 32, 2, 0
	.func	101
;----------------------------------------------------------------------
; 101 | void delay(s16 period)                                                 
;----------------------------------------------------------------------

;***************************************************************
;* FUNCTION DEF: _delay                                        *
;***************************************************************
_delay:
;* A     assigned to _period
	.sym	_period,0, 4, 17, 16
	.sym	_period,0, 4, 1, 16
	.sym	_i,1, 4, 1, 16
	.sym	_j,2, 4, 1, 16
        FRAME     #-3
        NOP
	.line	2
;----------------------------------------------------------------------
; 103 | int i, j;                                                              
;----------------------------------------------------------------------
        STL       A,*SP(0)              ; |102| 
	.line	5
;----------------------------------------------------------------------
; 105 | for(i=0; i<period; i++)                                                
;----------------------------------------------------------------------
        ST        #0,*SP(1)             ; |105| 
        SSBX      SXM                   ; 
        NOP
        LD        *SP(0),A              ; |105| 
        SUB       *SP(1),A              ; |105| 
        BC        L10,ALEQ              ; |105| 
        ; branch occurs ; |105| 
L7:    
	.line	7
;----------------------------------------------------------------------
; 107 | for(j=0; j<period>>1; j++);                                            
;----------------------------------------------------------------------
        ST        #0,*SP(2)             ; |107| 
        LD        *SP(0),#-1,A          ; |107| 
        SUB       *SP(2),A              ; |107| 
        BC        L9,ALEQ               ; |107| 
        ; branch occurs ; |107| 
L8:    
        ADDM      #1,*SP(2)             ; |107| 
        LD        *SP(0),#-1,A          ; |107| 
        SUB       *SP(2),A              ; |107| 
        BC        L8,AGT                ; |107| 
        ; branch occurs ; |107| 
L9:    
	.line	8
        ADDM      #1,*SP(1)             ; |108| 
        LD        *SP(0),A              ; |108| 
        SUB       *SP(1),A              ; |108| 
        BC        L7,AGT                ; |108| 
        ; branch occurs ; |108| 
	.line	9
L10:    
        FRAME     #3
        RET
        ; return occurs
	.endfunc	109,000000000h,3


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_brd_init
	.global	_brd_led_toggle
	.global	_codec_open
	.global	_codec_dac_mode
	.global	_codec_adc_mode
	.global	_codec_ain_gain
	.global	_codec_aout_gain
	.global	_codec_sample_rate
	.global	_fir

⌨️ 快捷键说明

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