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

📄 change_linkport_tcb.asm

📁 这是我在ADSP tiger sharc 201上面实现的OFDM(标准是wimax)同步算法哦!具有非常高的指令效率.
💻 ASM
字号:
#include "SS_SYN.h"
#ifdef __ADSPTS201__
	#include "defts201.h"
#endif  

.section program;
.global _change_linkport_TCB;
//.extern _clear_data;

.extern Ant_Data2;
.extern Ant_Data3;

.align_code 4;
_change_linkport_TCB:


/*   input:  j4
             j5
             j6

*/

             [j27+=4]=   cjmp;     [k27+=4]=   yr0;;
             [j27+=4]=    lc0;     [k27+=4]=   yr0;;
             [j27+=4]=    lc1;     [k27+=4]=   yr0;;
            q[j27+=4]=  xr3:0;    q[k27+=4]= yr3:0;;
            q[j27+=4]=  xr7:4;    q[k27+=4]= yr7:4;;
            q[j27+=4]=   j3:0;    q[k27+=4]=  k3:0;;
  
  _change_Interface:
  
  
         _change_output:         
         
         // to 8260
                                
         
         _change_input:
         
              j4= Interface_base_addr ;;
              j5= 0x400   ;;
              .align_code 4;
              //call _clear_data;;       
            
             
   
             
  _change_Received_TCB:
  
  		set_Linkport2_TCB:
  		
  			k0=Ant_Data2 + Path_Window_Length_syn ;;
  			j0=Receive_Link2_TCB  ;;		
  		    lc0=(Times_Receive_One_Slot_Data_syn);; 
  		    xr4=TCB_INTMEM | TCB_QUAD |  TCB_CHAIN |TCB_TWODIM| 
  		        TCB_DMA8DEST   ;; 		    
  		    set_Ant_Data2_TCB_Linkport2:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | (( SAMPLE_SEQUENCE_LENGTH_SYN<<1)+Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;;
  		        
  		   .align_code 4;    		 
  			if nlc0e,jump set_Ant_Data2_TCB_Linkport2;k0=k0+Chips_in_One_Buffer ;;
  			
  			/////////////////////////////////////////////////////////////////////////////////
  			
  			k0=Ant_Data3 + Path_Window_Length_syn ;;		
  		    lc0=(Times_Receive_One_Slot_Data_syn - 1);; 
  		    xr4=TCB_INTMEM | TCB_QUAD | TCB_CHAIN | TCB_DMA8DEST |TCB_TWODIM  ;; 	
  		    	    
  		    set_Ant_Data3_TCB_Linkport2:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | (( SAMPLE_SEQUENCE_LENGTH_SYN<<1)+Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;;
  		        
  		   .align_code 4;    		 
  			if nlc0e,jump set_Ant_Data3_TCB_Linkport2;k0=k0+Chips_in_One_Buffer ;;
  			
  		        j1 = Receive_Link2_TCB ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | (( SAMPLE_SEQUENCE_LENGTH_SYN<<1)+Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;;  

       ////////////////////////////////////////////////////////////////////////////////////////////////
 
  		set_Linkport3_TCB:   
        
  			k0=Ant_Data2 + Path_Window_Length_syn + SAMPLE_SEQUENCE_LENGTH_SYN ;;
  			j0=Receive_Link3_TCB  ;;		
  		    lc0=(Times_Receive_One_Slot_Data_syn);; 
  		    xr4=TCB_INTMEM | TCB_QUAD |  TCB_CHAIN |TCB_TWODIM| 
  		        TCB_DMA9DEST   ;; 		    
  		    set_Ant_Data2_TCB_Linkport3:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | (( SAMPLE_SEQUENCE_LENGTH_SYN<<1)+Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;;
  		        
  		   .align_code 4;    		 
  			if nlc0e,jump set_Ant_Data2_TCB_Linkport3;k0=k0+Chips_in_One_Buffer ;;
  			
  			//////////////////////////////////////////////////////////////////////////////
  			
  			k0=Ant_Data3 + Path_Window_Length_syn + SAMPLE_SEQUENCE_LENGTH_SYN ;;		
  		    lc0=(Times_Receive_One_Slot_Data_syn - 1);; 
  		    xr4=TCB_INTMEM | TCB_QUAD | TCB_CHAIN | TCB_DMA9DEST |TCB_TWODIM  ;; 	
  		    	    
  		    set_Ant_Data3_TCB_Linkport3:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | (( SAMPLE_SEQUENCE_LENGTH_SYN<<1)+Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;;
  		        
  		   .align_code 4;    		 
  			if nlc0e,jump set_Ant_Data3_TCB_Linkport3;k0=k0+Chips_in_One_Buffer ;;
  			
  			/////////////////////////////////////////////////////////////////////////////////
  			
  		        j1 = Receive_Link3_TCB ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | (( SAMPLE_SEQUENCE_LENGTH_SYN<<1)+Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;; 
  
  
  _change_Received_TCB_end:       
  
  
  
  _change_T_SYN_DSP_Link_addr:
  
  				j0 = T_SYN_DSP_Link_addr;; 
				xr0 = SYN_DSP_Link_addr1 + SYN_DSP_OFFSET;; [j0+=1]=xr0;;
				xr0 = SYN_DSP_Link_addr2 + SYN_DSP_OFFSET;; [j0+=1]=xr0;;
				xr0 = SYN_DSP_Link_addr3 + SYN_DSP_OFFSET;; [j0+=1]=xr0;;
				xr0 = SYN_DSP_Link_addr4 + SYN_DSP_OFFSET;; [j0+=1]=xr0;;
				
   _change_T_SYN_DSP_Link_end:
   
   

    		j27=j27-4       ;     k27=k27-4      ;;
            j3:0=q[j27+=-4]  ;    k3:0=q[k27+=-4] ;; 
           xr7:4=q[j27+=-4]  ;   yr7:4=q[k27+=-4] ;;
           xr3:0=q[j27+=-4]  ;   yr3:0=q[k27+=-4] ;;
             lc1= [j27+=-4]  ;     yr0= [k27+=-4] ;; 
             lc0= [j27+=-4]  ;     yr0= [k27+=-4] ;;
            cjmp= [j27+= 0]  ;     yr0= [k27+= 0] ;;
            .align_code 4;
            cjmp(abs);;


      
_change_linkport_TCB.end:

⌨️ 快捷键说明

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