p3end: p3test: p4end: power:
MVDK sav_sin,AR0 STM #DATA+2,AR2 STM #DATA+2*N-2,AR3 STM #DATA+2*N+3,AR7 STM #DATA+4*N-1,AR6 STM #-2+N/2,BRC RPTBD p3end-1 STM #3,AR0
ADD *AR2,*AR3,A
SUB *AR2,*AR3,B STH A,ASM,*AR2+ STH A,ASM,*AR3+ STH B,ASM,*AR6- NEG B
STH B,ASM,*AR7- ADD *AR2,*AR3,A SUB *AR2,*AR3,B STH A,ASM,*AR2+ STH A,ASM,*AR3-0 STH B,ASM,*AR6- NEG B
STH B,ASM,*AR7+0 ST #0,*AR6- ST #0,*AR6 STM #DATA,AR2 STM #DATA+1,AR4 STM #DATA+2*N+1,AR5 ADD *AR2,*AR4,A SUB *AR2,*AR4,B STH A,ASM,*AR2+ ST #0,*AR2 MVDD *AR2+,*AR5- STH B,ASM,*AR5
STM #DATA+4*N-1,AR3 STM #TWI2+512/N,AR4 STM #TWI1+512/N,AR5 STM #N-2,BRC RPTBD p4end-1 STM #512/N,AR0 LD *AR2+,16,A MACR *AR4,*AR2,A MASR *AR5,*AR3-,A LD *AR3+,16,B
MASR *AR5+0%,*AR2-,B MASR *AR4+0%,*AR3,B STH A,ASM,*AR2+ STH B,ASM,*AR2+ NEG B
STH B,ASM,*AR3- STH A,ASM,*AR3- STM #OUTPUT,AR3 STM #255,BRC RPTBD power_end-1 STM #DATA,AR2 SQUR
*AR2+,A
;AR3指向输出缓冲地址 ;块循环计数器设置为255 ;带延迟方式的重复执行指令;AR2指向AR[0] ;A := AR2
5
SQURA *AR2+,A ;A := AR2 + AI2
STH A,7,*AR3 ;将A中的数据存入输出缓冲中,
ANDM #7FFFH,*AR3+ ;避免输出数据过大在虚拟示波器中显示错误 power_end: B power_end .end
命令链接文件: /*fft.cmd*/ fft.obj -m fft.map -o fft.out
MEMORY {
PAGE 0: ROM(RIX) :origin=8000h,length=1000h ROM1 :origin=9000h,length=0200h PAGE 1: B2A(RW) :origin=0060h,length=10h B2B(RW) :origin=0070h,length=10h INTRAM1(RW) :origin=0400h,length=0200h INTRAM2(RW) :origin=0800h,length=0200h INTRAM3(RW) :origin=1400h,length=0800h OTHER :origin=2000h,length=800h }
SECTIONS {
.text : {}>ROM PAGE 0 INPUT : {}>ROM1 PAGE 0 .data : {}>INTRAM3 PAGE 1 twiddle1: {}>INTRAM1 PAGE 1 twiddle2: {}>INTRAM2 PAGE 1 tempv : {}>B2A PAGE 1 stack : {}>B2B PAGE 1 OUTPUT : {}>OTHER PAGE 1 .stack : {}>OTHER PAGE 1 }
三角因子:
TWI1: .sect \ .int 0,201,402,603
.int 804,1005,1206,1407 .int 1607,1808,2009,2210 .int 2410,2611,2811,3011 .int 3211,3411,3611,3811 .int 4011,4210,4409,4609 .int 4808,5006,5205,5403 .int 5602,5800,5997,6195 .int 6392,6589,6786,6983 .int 7179,7375,7571,7766 .int 7961,8156,8351,8545 .int 8739,8933,9126,9319 .int 9512,9704,9896,10087 .int 10278,10469,10659,10849 .int 11039,11228,11416,11605 .int 11793,11980,12167,12353 .int 12539,12725,12910,13094 .int 13278,13462,13645,13828 .int 14010,14191,14372,14552 .int 14732,14912,15090,15269
6
.int 15446,15623,15800,15976 .int 16151,16325,16499,16673 .int 16846,17018,17189,17360 .int 17530,17700,17869,18037 .int 18204,18371,18537,18703 .int 18868,19032,19195,19358 .int 19519,19681,19841,20001 .int 20159,20318,20475,20631 .int 20787,20942,21097,21250 .int 21403,21555,21706,21856 .int 22005,22154,22301,22448 .int 22594,22740,22884,23027 .int 23170,23312,23453,23593 .int 23732,23870,24007,24144 .int 24279,24414,24547,24680 .int 24812,24943,25073,25201 .int 25330,25457,25583,25708 .int 25832,25955,26077,26199 .int 26319,26438,26557,26674 .int 26790,26905,27020,27133 .int 27245,27356,27466,27576 .int 27684,27791,27897,28002 .int 28106,28208,28310,28411 .int 28511,28609,28707,28803 .int 28898,28993,29086,29178 .int 29269,29359,29447,29535 .int 29621,29707,29791,29874 .int 29956,30037,30117,30196 .int 30273,30350,30425,30499 .int 30572,30644,30714,30784 .int 30852,30919,30985,31050 .int 31114,31176,31237,31298 .int 31357,31414,31471,31526 .int 31581,31634,31685,31736 .int 31785,31834,31881,31927 .int 31971,32015,32057,32098 .int 32138,32176,32214,32250 .int 32285,32319,32351,32383 .int 32413,32442,32469,32496 .int 32521,32545,32568,32589 .int 32610,32629,32647,32663 .int 32679,32693,32706,32718 .int 32728,32737,32745,32752 .int 32758,32762,32765,32767 .int 32767,32767,32765,32762 .int 32758,32752,32745,32737 .int 32728,32718,32706,32693 .int 32679,32663,32647,32629 .int 32610,32589,32568,32545 .int 32521,32496,32469,32442 .int 32413,32383,32351,32319 .int 32285,32250,32214,32176 .int 32138,32098,32057,32015 .int 31971,31927,31881,31834 .int 31785,31736,31685,31634 .int 31581,31526,31471,31414 .int 31357,31298,31237,31176 .int 31114,31050,30985,30919
7
.int 30852,30784,30714,30644 .int 30572,30499,30425,30350 .int 30273,30196,30117,30037 .int 29956,29874,29791,29707 .int 29621,29535,29447,29359 .int 29269,29178,29086,28993 .int 28898,28803,28707,28609 .int 28511,28411,28310,28208 .int 28106,28002,27897,27791 .int 27684,27576,27466,27356 .int 27245,27133,27020,26905 .int 26790,26674,26557,26438 .int 26319,26199,26077,25955 .int 25832,25708,25583,25457 .int 25330,25201,25073,24943 .int 24812,24680,24547,24414 .int 24279,24144,24007,23870 .int 23732,23593,23453,23312 .int 23170,23027,22884,22740 .int 22594,22448,22301,22154 .int 22005,21856,21706,21555 .int 21403,21250,21097,20942 .int 20787,20631,20475,20318 .int 20159,20001,19841,19681 .int 19519,19358,19195,19032 .int 18868,18703,18537,18371 .int 18204,18037,17869,17700 .int 17530,17360,17189,17018 .int 16846,16673,16499,16325 .int 16151,15976,15800,15623 .int 15446,15269,15090,14912 .int 14732,14552,14372,14191 .int 14010,13828,13645,13462 .int 13278,13094,12910,12725 .int 12539,12353,12167,11980 .int 11793,11605,11416,11228 .int 11039,10849,10659,10469 .int 10278,10087,9896,9704 .int 9512,9319,9126,8933 .int 8739,8545,8351,8156 .int 7961,7766,7571,7375 .int 7179,6983,6786,6589 .int 6392,6195,5997,5800 .int 5602,5403,5205,5006 .int 4808,4609,4409,4210 .int 4011,3811,3611,3411 .int 3211,3011,2811,2611 .int 2410,2210,2009,1808 .int 1607,1407,1206,1005 .int 804,603,402,201
TWI2: .sect \
.int 32767,32767,32765,32762 .int 32758,32752,32745,32737 .int 32728,32718,32706,32693 .int 32679,32663,32647,32629 .int 32610,32589,32568,32545
.int 32521,32496,32469,32442
8
相关推荐: