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

📄 rfft32s.lst

📁 TMS320F2812 FFT 源码,包括详细的应用文档
💻 LST
📖 第 1 页 / 共 2 页
字号:
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:05 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
rfft32s.asm                                                          PAGE    1

       1              ;============================================================================
       2              ;
       3              ; File Name     : rfft128sc.asm
       4              ; 
       5              ; Originator    : Advanced Embeeded Control 
       6              ;                 Texas Instruments 
       7              ; 
       8              ; Description   : This file contain source code of split function for Real FFT
       9              ;               
      10              ; Date          : 26/2/2002 (dd/mm/yyyy)
      11              ;===========================================================================    
      12              ; Routine Type  : C Callable        
      13              ;
      14              ; Description   :
      15              ; void FFT128R_split(FFTxxxx_handle) 
      16              ; This function perfroms split operation to obtain 65 spectran bins of
      17              ; 128-point real valued sequence from the 64-point complex FFT output
      18              ; 
      19              ; void FFT128R_init(void)
      20              ; This function copies the Twiddle factors for split function from 
      21              ; load time address to its run time address 
      22              ;
      23              ;======================================================================
      24              ; REAL FFT MODULES
      25              ;----------------------------------------------------------------------
      26              ;typedef struct {   
      27              ;       long *ipcbptr;
      28              ;       long *tfptr;               
      29              ;       int size;
      30              ;       int nrstage;             
      31              ;       long *magptr;
      32              ;       long *winptr; 
      33              ;       long peakmag;
      34              ;       int peakfrq;
      35              ;       int ratio;     
      36              ;       void (*init)(void);
      37              ;       void (*calc)(void *);
      38              ;       void (*split)(void *);
      39              ;       void (*mag)(void *);
      40              ;       void (*win)(void *);
      41              ;       }FFTxxxR;
      42              ;===============================================================================
      43              ; Computation Buffer  for k=1:(N/2)-1) & N=64
      44              ;==============================================================================         
      45              ;
      46              ; Non Bitrev I/P    COMPLEX FFT(N) O/P    E/O SEPERATION                Final FFT output
      47              ; ___________       ______________        ____________                  ___________
      48              ; |__g(0)____|      |__R(0)______|        |___RP(0)__| =R(0)            |__GR(0)__| = {RP(0)+IP(0)}/2
      49              ; |__g(1)____|      |__I(0)______|        |___IP(0)__| =I(0)            |__GI(0)__| = 0
      50              ; |__g(2)____|      |__R(k)______|        |___RP(k)__|                  |_________|
      51              ; |__g(3)____|      |__I(k)______|        |___IM(k)__|                  |_________|
      52              ; |__________|      |____________|        |__________|                  |_________|
      53              ; |__________|      |____________|        |__________|                  |_________|
      54              ; |__________|      |____________|        |__________|                  |_________|
      55              ; |__________|      |__R(N/2)____|        |_RP(N/2___| =R(N/2)          |_GR(N/2)_| =RP(N/2)/2
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:05 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
rfft32s.asm                                                          PAGE    2

      56              ; |__________|      |__R(N/2)____|        |_IP(N/2)__| =I(N/2)          |_GI(N/2)_| =-IP(N/2)/2
      57              ; |__________|      |____________|        |__________|                  |_________|
      58              ; |__________|      |____________|        |__________|                  |_________|
      59              ; |__________|      |____________|        |__________|                  |_________|
      60              ; |__________|      |____________|        |__________|                  |_________|
      61              ; |__________|      |___R(N-k)___|        |___RM(k)__|                  |_GR(N-1)_|
      62              ; |_g(2*N-1)_|      |___I(N-k)___|        |___IP(k)__|                  |_GI(N-1)_|
      63              ;                                                                       |__GR(N)__|={RP(0)-IP(0)}/2
      64              ;                                                                       |__GI(N)__|=0
      65              ;
      66              ;===========================================================================
      67              ;                      Note:   IM(0)=RM(0)=0
      68              ;                              RM(N/2)=IM(N/2)=0                            
      69              ;===========================================================================
      70              ; EVEN/ODD FFT SEPERATION
      71              ;===========================================================================
      72              ; RP(K) = [R(K) +  R(N-k)]/2
      73              ; RM(K) = [R(K) -  R(N-K)]/2
      74              ; IP(K) = [I(K) + I(N-K)]/2 
      75              ; IM(K) = [I(K) - I(N-K)]/2    K=1:N/2
      76              ;=========================================================================
      77              ; EVEN/ODD FFT MERGE
      78              ;========================================================================= 
      79              ; GR(K)={RP(K) - WI(K)*RM(K) + WR(K)*IP(K)}/2
      80              ; GI(K)={IM(K) - WI(K)*IP(K) - WR(K)*RM(K)}/2
      81              ; GR(N-K)={RP(K) + WI(K)*RM(K) - WR(K)*IP(K)}/2
      82              ; GI(N-K)={-IM(K) - WI(K)*IP(K) - WR(K)*RM(K)}/2 
      83              ; 
      84              ; WR(k) <-- Cosine table (AR5)
      85              ; WI(K) <-- Sine table   (AR2)     
      86              ;======================================================================                       
      87                      .include "sel_q.asm"
      88              
      89                                  .def   _RFFT32_split   ; Function External Reference
      90                                  
      91 00000000       _RFFT32_split:            
      92 00000000 B2BD              PUSH    XAR1            ; Context Save
      93 00000001 AABD              PUSH    XAR2
      94 00000002 A2BD              PUSH    XAR3 
      95                         
      96 00000003 3B01              SETC    SXM
      97 00000004 FF6A              SPM     -1
      98              
      99 00000005 5603              MOV     ACC,*+XAR4[4]<<2; ACC=4*size
         00000006 02E4 
     100 00000007 86C4              MOVL    XAR2,*XAR4      ; XAR2=ipcbptr ----->R(0)
     101 00000008 07C4              ADDL    ACC,*XAR4       ; XAR3=ipcbptr+4*size
     102 00000009 82A9              MOVL    XAR3,ACC        ; XAR3 ------>GR(N)
     103                      
     104 0000000a 83D4              MOVL    XAR5,*+XAR4[2]  ; XAR5=tfptr -----> WI
     105 0000000b C4D4              MOVL    XAR6,*+XAR4[2]  ; XAR6=tfptr    
     106                          
     107 0000000c 2DC4              MOV     T,*XAR4         ; T=size
     108              
     109 0000000d 5603              MOV     ACC,*+XAR4[4]<<15  ; AH=size/2
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:05 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
rfft32s.asm                                                          PAGE    3

         0000000e 0FE4 
     110 0000000f 80A8              MOVZ    AR7,AH          ; XAR7=size/2
     111 00000010 DF82              SUBB    XAR7,#2         ; XAR7=(size/2)-2
     112 00000011 DC0D              ADDB    XAR4,#13        
     113 00000012 2DC4              MOV     T,*XAR4         ; T=ratio
     114 00000013 58C4              MOVZ    AR0,*XAR4       ; AR0=ratio
     115 00000014 DC8D              SUBB    XAR4,#13        
     116 00000015 12A8              MPY     ACC,T,AH        ; ACC=ratio*size/2
     117 00000016 07D4              ADDL    ACC,*+XAR4[2]   ; 
     118 00000017 1EA6              MOVL    XAR6,ACC        ; WRWIOST=tfptr+ratio*N/2 ----> COS(Angle)
     119                          
     120 00000018 77B5              NOP     *,ARP5          ; XAR5 ----> WI SIN(Angle)--->increment
     121 00000019 77BB              NOP     *0++

⌨️ 快捷键说明

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