📄 spwm.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.02
*******************************************************
; dspac -v2xx -iC:/ti/c2400/cgtools/include spwm.c C:\DOCUME~1\jjd\LOCALS~1\Temp\spwm.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\jjd\LOCALS~1\Temp\spwm.if C:\DOCUME~1\jjd\LOCALS~1\Temp\spwm.asm C:\DOCUME~1\jjd\LOCALS~1\Temp\spwm.tmp
.port
.bss _xn,1,1
.bss _yn,1
.bss _lpf,7
_dbuffer .usect "firldb",50,1
.bss _coeff,51
.bss _in_wave,120
.bss _out_wave,120
.file "spwm.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "firfilt.h"
.stag .fake0,112
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _order,32,4,8,16
.member _input,48,4,8,16
.member _output,64,4,8,16
.member _init,80,144,8,16
.member _calc,96,144,8,16
.eos
.sym _FIRFILT_GEN,0,8,13,112,.fake0
.stag .fake1,448
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _order,32,4,8,16
.member _input,48,4,8,16
.member _output,64,4,8,16
.member _dbuffer,80,52,8,160,,10
.member _coeff,240,52,8,176,,11
.member _init,416,144,8,16
.member _calc,432,144,8,16
.eos
.sym _FIRFILT_ORD10,0,8,13,448,.fake1
.stag .fake2,768
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _order,32,4,8,16
.member _input,48,4,8,16
.member _output,64,4,8,16
.member _dbuffer,80,52,8,320,,20
.member _coeff,400,52,8,336,,21
.member _init,736,144,8,16
.member _calc,752,144,8,16
.eos
.sym _FIRFILT_ORD20,0,8,13,768,.fake2
.stag .fake3,128
.member _coeff_ptr,0,20,8,16
.member _brindex,16,4,8,16
.member _order,32,4,8,16
.member _dbuffer_ptr,48,20,8,16
.member _input,64,4,8,16
.member _output,80,4,8,16
.member _init,96,144,8,16
.member _calc,112,144,8,16
.eos
.sym _FIRFILT_CGEN,0,8,13,128,.fake3
.sym _FIRFILT_GEN_handle,0,24,13,16,.fake0
.sym _FIRFILT_ORD10_handle,0,24,13,16,.fake1
.sym _FIRFILT_ORD20_handle,0,24,13,16,.fake2
.sym _FIRFILT_CGEN_handle,0,24,13,16,.fake3
.sym _FIRFILT_CORD10_handle,0,24,13,16,.fake3
.sym _FIRFILT_COED20_handle,0,24,13,16,.fake3
.globl _FIRFILT_GEN_calc
.globl _FIRFILT_ORD10_calc
.globl _FIRFILT_ORD20_calc
.globl _FIRFILT_CGEN_calc
.globl _FIRFILT_CORD10_calc
.globl _FIRFILT_CORD20_calc
.globl _FIRFILT_LIN_init
.globl _FIRFILT_CIR_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 "spwm.c"
.sect ".cinit"
.word IS1,_lpf
.word 0
.word 0
.word 10
.word 0
.word 0
.word _FIRFILT_LIN_init+0
.word _FIRFILT_GEN_calc+0
IS1 .set 7
.sym _lpf,_lpf,8,2,112,.fake0
.globl _lpf
.word IS2,_coeff
.word -34
.word -22
.word 13
.word 50
.word 55
.word -1
.word -91
.word -137
.word -56
.word 131
.word 276
.word 198
.word -127
.word -471
.word -481
.word 0
.word 690
.word 976
.word 384
.word -896
.word -1905
.word -1447
.word 1040
.word 4892
.word 8415
.word 9839
.word 8415
.word 4892
.word 1040
.word -1447
.word -1905
.word -896
.word 384
.word 976
.word 690
.word 0
.word -481
.word -471
.word -127
.word 198
.word 276
.word 131
.word -56
.word -137
.word -91
.word -1
.word 55
.word 50
.word 13
.word -22
.word -34
IS2 .set 51
.sym _coeff,_coeff,52,2,816,,51
.globl _coeff
.globl _dbuffer
.globl _in_wave
.globl _out_wave
.globl _xn
.globl _yn
.globl _ini
.text
.sym _main,_main,32,2,0
.globl _main
.func 25
;>>>> 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
;>>>> lpf.dbuffer_ptr=dbuffer;
LALK _dbuffer+0
LDPK _lpf+1
SACL _lpf+1
.line 6
;>>>> lpf.coeff_ptr=coeff;
LALK _coeff+0
SACL _lpf
.line 7
;>>>> lpf.order=FIR_ORDER;
LACK 50
SACL _lpf+2
.line 8
;>>>> lpf.init(&lpf);
LALK _lpf+0
SACL *+
LAC _lpf+5
CALA
MAR *-,AR2
.line 11
;>>>> 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 12
;>>>> in_wave[i] = 20000*sin((4*PI*i)/SIN_NUM) + 2000*sin((40*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 FL4
RPTK 1
TBLR *+
CALL F$$MUL
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 11
LAC *
ADDK 1
SACL *
LAC * ,AR1
SUBK 120
BLZ L1
L2:
.line 14
;>>>> for(i=0;i<SIN_NUM;i++)
LACK 0
MAR * ,AR2
SACL *
LAC *
SUBK 120
BGEZ L4
L3:
.line 16
;>>>> lpf.input=in_wave[i];
LAC * ,AR0
ADLK _in_wave+0,0
SACL *
LAR AR3,* ,AR3
BLDD * ,#_lpf+3,AR1
.line 17
;>>>> lpf.calc(&lpf);
LALK _lpf+0
SACL *+
LDPK _lpf+6
LAC _lpf+6
CALA
MAR *-,AR2
.line 18
;>>>> out_wave[i]=lpf.output;
LARK AR2,1
MAR *0+
LAC * ,AR0
ADLK _out_wave+0,0
SACL *
LAR AR3,* ,AR3
BLKD #_lpf+4,* ,AR2
.line 14
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 120
BLZ L3
L4:
L5:
.line 20
;>>>> while(1);
B L5
.endfunc 45,000000000H,2
.sym _ini,_ini,32,2,0
.globl _ini
.func 49
;>>>> 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 187,000000000H,1
.sym _out_wave,_out_wave,52,2,1920,,120
.globl _out_wave
.sym _dbuffer,_dbuffer,52,2,800,,50
.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 1.25663704e2
FL2: .float 2.e3
FL3: .float 1.25663704e1
FL4: .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 + -