📄 iir.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.02
*******************************************************
; dspac -v2xx -iC:/ti/c2400/cgtools/include iir.c C:\DOCUME~1\jjd\LOCALS~1\Temp\iir.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\jjd\LOCALS~1\Temp\iir.if C:\DOCUME~1\jjd\LOCALS~1\Temp\iir.asm C:\DOCUME~1\jjd\LOCALS~1\Temp\iir.tmp
.port
.bss _xn,1,1
.bss _yn,1
.bss _iir,9
.bss _dbuffer,12
.bss _coeff,30
.bss _in_wave,120
.bss _out_wave,120
.file "iir.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "iirfilt.h"
.stag .fake0,144
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _nbiq,32,4,8,16
.member _input,48,4,8,16
.member _isf,64,4,8,16
.member _qfmat,80,4,8,16
.member _output,96,4,8,16
.member _init,112,144,8,16
.member _calc,128,144,8,16
.eos
.sym _IIR5BIQ16,0,8,13,144,.fake0
.stag .fake1,144
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _nbiq,32,4,8,16
.member _input,48,4,8,16
.member _isf,64,4,8,16
.member _qfmat,80,4,8,16
.member _output,96,4,8,16
.member _init,112,144,8,16
.member _calc,128,144,8,16
.eos
.sym _IIR5BIQ32,0,8,13,144,.fake1
.sym _IIR5BIQ16_handle,0,24,13,16,.fake0
.sym _IIR5BIQ32_handle,0,24,13,16,.fake1
.globl _IIR5BIQ16_calc
.globl _IIR5BIQ32_calc
.globl _IIR5BIQ16_init
.globl _IIR5BIQ32_init
.file "C:/ti/c2400/cgtools/include\math.h"
.globl _asin
.globl _acos
.globl _atan
.globl _atan2
.globl _ceil
.globl _cos
.globl _cosh
.globl _exp
.globl _fabs
.globl _floor
.globl _fmod
.globl _frexp
.globl _ldexp
.globl _log
.globl _log10
.globl _modf
.globl _pow
.globl _sin
.globl _sinh
.globl _sqrt
.globl _tan
.globl _tanh
.file "iir.c"
.sect ".cinit"
.word IS1,_iir
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word _IIR5BIQ16_init+0
.word _IIR5BIQ16_calc+0
IS1 .set 9
.sym _iir,_iir,8,2,144,.fake0
.globl _iir
.globl _dbuffer
.word IS2,_coeff
.word -746
.word 4846
.word 1056
.word 2111
.word 1056
.word -1032
.word 5001
.word 1120
.word 2239
.word 1120
.word -1639
.word 5330
.word 1192
.word 2385
.word 1192
.word -2647
.word 5877
.word 1211
.word 2422
.word 1211
.word -4206
.word 6722
.word 872
.word 1745
.word 872
.word -6573
.word 8005
.word 4861
.word 9722
.word 4861
IS2 .set 30
.sym _coeff,_coeff,52,2,480,,30
.globl _coeff
.globl _in_wave
.globl _out_wave
.globl _xn
.globl _yn
.globl _ini
.text
.sym _main,_main,32,2,0
.globl _main
.func 27
;>>>> void main(void)
;>>>> int i;
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+
.sym _i,1,4,1,16
.line 4
;>>>> ini();
CALL _ini
.line 5
;>>>> iir.dbuffer_ptr=dbuffer; /* Object Initialization */
LALK _dbuffer+0
LDPK _iir+1
SACL _iir+1
.line 6
;>>>> iir.coeff_ptr=coeff;
LALK _coeff+0
SACL _iir
.line 7
;>>>> iir.qfmat=IIR_LPF_QFMAT;
LACK 13
SACL _iir+5
.line 8
;>>>> iir.nbiq=IIR_LPF_NBIQ;
LACK 6
SACL _iir+2
.line 9
;>>>> iir.isf=IIR_LPF_ISF;
SPLK #4092,_iir+4
.line 10
;>>>> iir.init(&iir);
LALK _iir+0
SACL *+
LAC _iir+7
CALA
MAR *-,AR2
.line 13
;>>>> for(i=0;i<SIN_NUM;i++)
LACK 0
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 120
BGEZ L2
MAR * ,AR1
L1:
.line 14
;>>>> in_wave[i] = 20000*sin((4*PI*i)/SIN_NUM) + 6000*sin((60*PI*i)/SIN_NUM) + 6000*sin((80*PI*i)/SIN_NUM);;
LALK FL0
RPTK 1
TBLR *+
MAR * ,AR2
LAC * ,AR1
CALL F$$ITOF
LALK FL1
RPTK 1
TBLR *+
CALL F$$MUL
CALL F$$DIV
CALL _sin
SBRK 2
SACL *+
SACH *+
LALK FL2
RPTK 1
TBLR *+
CALL F$$MUL
LALK FL0
RPTK 1
TBLR *+
SSXM
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR1
CALL F$$ITOF
LALK FL3
RPTK 1
TBLR *+
CALL F$$MUL
CALL F$$DIV
CALL _sin
SBRK 2
SACL *+
SACH *+
LALK FL2
RPTK 1
TBLR *+
CALL F$$MUL
LALK FL0
RPTK 1
TBLR *+
SSXM
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR1
CALL F$$ITOF
LALK FL4
RPTK 1
TBLR *+
CALL F$$MUL
CALL F$$DIV
CALL _sin
SBRK 2
SACL *+
SACH *+
LALK FL5
RPTK 1
TBLR *+
CALL F$$MUL
CALL F$$ADD
CALL F$$ADD
CALL F$$FTOI
SACL * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR0
ADLK _in_wave+0,0
SACL *
LAR AR3,* ,AR1
SSXM
LAC * ,AR3
SACL * ,AR2
.line 13
LAC *
ADDK 1
SACL *
LAC * ,AR1
SUBK 120
BLZ L1
L2:
.line 16
;>>>> for(i=0;i<SIN_NUM;i++)
LACK 0
MAR * ,AR2
SACL *
LAC *
SUBK 120
BGEZ L4
L3:
.line 18
;>>>> iir.input=in_wave[i];
LAC * ,AR0
ADLK _in_wave+0,0
SACL *
LAR AR3,* ,AR3
BLDD * ,#_iir+3,AR1
.line 19
;>>>> iir.calc(&iir);
LALK _iir+0
SACL *+
LDPK _iir+8
LAC _iir+8
CALA
MAR *-,AR2
.line 20
;>>>> out_wave[i]=iir.output;
LARK AR2,1
MAR *0+
LAC * ,AR0
ADLK _out_wave+0,0
SACL *
LAR AR3,* ,AR3
BLKD #_iir+6,* ,AR2
.line 16
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 120
BLZ L3
L4:
L5:
.line 23
;>>>> while(1);
B L5
.endfunc 50,000000000H,2
.sym _ini,_ini,32,2,0
.globl _ini
.func 54
;>>>> void ini(void)
******************************************************
* FUNCTION DEF : _ini
******************************************************
_ini:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.line 5
;>>>> *SCSR1 = 0x00FD;
LARK AR3,28696
LACK 253
SACL *+
.line 22
;>>>> *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
LACK 11
OR *
ANDK 15
SACL *
.line 34
;>>>> *WDCR = 0x00E8;
LACK 232
ADRK 16
SACL * ,AR0
.line 45
;>>>> WSGR = 0x0000;
LACK 0
SACL *
OUT * ,0ffffh,AR3
.line 56
;>>>> *MCRA = 0x0fc0; /* group A pins */
ADRK 103
SPLK #4032,*
.line 76
;>>>> *MCRB = 0xFE00; /* group B pins */
ADRK 2
SPLK #65024,*
.line 96
;>>>> *MCRC = 0x0000; /* group C pins */
ADRK 2
SACL * ,AR4
.line 120
;>>>> *IMR = 0x0000; /* clear the IMR register */
LARK AR4,4
SACL *
.line 121
;>>>> *IFR = 0x003F; /* clear any pending core interrupts */
LACK 63
ADRK 2
SACL *
.line 122
;>>>> *IMR = 0x0004; /* enable desired core interrupts (in1,in3)*/
LACK 4
SBRK 2
SACL * ,AR5
.line 125
;>>>> *EVAIFRA = 0xFFFF; /* clear all EVA group A interrupts */
LARK AR5,29743
SPLK #65535,*+
.line 126
;>>>> *EVAIFRB = 0xFFFF; /* clear all EVA group B interrupts */
SPLK #65535,*+
.line 127
;>>>> *EVAIFRC = 0xFFFF; /* clear all EVA group C interrupts */
SPLK #65535,* ,AR4
.line 128
;>>>> *EVAIMRA = 0x0000; /* enable desired EVA group A interrupts */
SBRK 4
MAR * ,AR5
SBRK 5
SAR AR4,*+,AR4
.line 129
;>>>> *EVAIMRB = 0x0001; /* enable desired EVA group B interrupts ENABLE TIME2*/
MAR *+,AR5
SAR AR4,*+,AR4
.line 130
;>>>> *EVAIMRC = 0x0000; /* enable desired EVA group C interrupts */
MAR *-,AR5
SAR AR4,*
.line 132
;>>>> *EVBIFRA = 0xFFFF; /* clear all EVB group A interrupts */
LARK AR5,29999
SPLK #65535,*+
.line 133
;>>>> *EVBIFRB = 0xFFFF; /* clear all EVB group B interrupts */
SPLK #65535,*+
.line 134
;>>>> *EVBIFRC = 0xFFFF; /* clear all EVB group C interrupts */
SPLK #65535,*
.line 135
;>>>> *EVBIMRA = 0x0000; /* enable desired EVB group A interrupts */
SBRK 5
SAR AR4,*+
.line 136
;>>>> *EVBIMRB = 0x0000; /* enable desired EVB group B interrupts */
SAR AR4,*+
.line 137
;>>>> *EVBIMRC = 0x0000; /* enable desired EVB group C interrupts */
SAR AR4,* ,AR1
EPI0_2:
.line 139
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 192,000000000H,1
.sym _out_wave,_out_wave,52,2,1920,,120
.globl _out_wave
.sym _dbuffer,_dbuffer,52,2,192,,12
.globl _dbuffer
.sym _in_wave,_in_wave,52,2,1920,,120
.globl _in_wave
.sym _xn,_xn,4,2,16
.globl _xn
.sym _yn,_yn,4,2,16
.globl _yn
*************************************************
* DEFINE FLOATING POINT CONSTANTS *
*************************************************
.text
FL0: .float 1.2e2
FL1: .float 2.5132740799999999e2
FL2: .float 6.e3
FL3: .float 1.8849555599999999e2
FL4: .float 1.25663704e1
FL5: .float 2.e4
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global F$$ITOF
.global F$$MUL
.global F$$DIV
.global F$$ADD
.global F$$FTOI
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -