user_initial.asm

来自「这是我在ADSP tiger sharc 201上面实现的OFDM(标准是wim」· 汇编 代码 · 共 195 行

ASM
195
字号
#include "SS_SYN.h"
#ifdef __ADSPTS201__
	#include "defts201.h"
#endif  

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

.extern Ant_Data0;
.extern Ant_Data1;
.extern Ant_Data0_Sample1;
.extern Ant_Data1_Sample1;
.align_code 4;
_user_initial:


/*   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;;
  
  _initial_Interface:
  
  
         _initial_output:         
         
         // to 8260
                                
         
         _initial_input:
         
              j4= Interface_base_addr ;;
              j5= 0x400   ;;
              .align_code 4;
              //call _clear_data;;       
            
             
   
             
  _initial_Received_TCB:
  
  		set_Linkport0_TCB:
  		
  			k0=Ant_Data0 + Path_Window_Length ;;
  			j0=Receive_Link0_TCB  ;;		
  		    lc0=(Times_Receive_One_Slot_Data);; 
  		    xr4=TCB_INTMEM | TCB_QUAD |  TCB_CHAIN |TCB_TWODIM| 
  		        TCB_DMA8DEST   ;; 		    
  		    set_Ant_Data0_TCB_Linkport0:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | ( SAMPLE_SEQUENCE_LENGTH +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_Data0_TCB_Linkport0;k0=k0+Chips_in_One_Buffer ;;
  			
  			/////////////////////////////////////////////////////////////////////////////////
  			
  			k0=Ant_Data1  + Path_Window_Length ;;		
  		    lc0=(Times_Receive_One_Slot_Data - 1);; 
  		    xr4=TCB_INTMEM | TCB_QUAD | TCB_CHAIN | TCB_DMA8DEST |TCB_TWODIM  ;; 	
  		    	    
  		    set_Ant_Data1_TCB_Linkport0:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | ( SAMPLE_SEQUENCE_LENGTH +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_Data1_TCB_Linkport0;k0=k0+Chips_in_One_Buffer ;;
  			
  		        j1 = Receive_Link0_TCB ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | ( SAMPLE_SEQUENCE_LENGTH +Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;;  

       ////////////////////////////////////////////////////////////////////////////////////////////////
 
  		set_Linkport1_TCB:   
        
  			k0=Ant_Data0_Sample1 + Path_Window_Length ;;
  			j0=Receive_Link1_TCB  ;;		
  		    lc0=(Times_Receive_One_Slot_Data);; 
  		    xr4=TCB_INTMEM | TCB_QUAD |  TCB_CHAIN |TCB_TWODIM| 
  		        TCB_DMA9DEST   ;; 		    
  		    set_Ant_Data0_TCB_Linkport1:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | ( SAMPLE_SEQUENCE_LENGTH +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_Data0_TCB_Linkport1;k0=k0+Chips_in_One_Buffer ;;
  			
  			//////////////////////////////////////////////////////////////////////////////
  			
  			k0=Ant_Data1_Sample1 + Path_Window_Length ;;
  		    lc0=(Times_Receive_One_Slot_Data - 1);; 
  		    xr4=TCB_INTMEM | TCB_QUAD | TCB_CHAIN | TCB_DMA9DEST |TCB_TWODIM  ;; 	
  		    	    
  		    set_Ant_Data1_TCB_Linkport1:
  		        
  		        j1 =j0 + 4 ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | ( SAMPLE_SEQUENCE_LENGTH +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_Data1_TCB_Linkport1;k0=k0+Chips_in_One_Buffer ;;
  			
  			/////////////////////////////////////////////////////////////////////////////////
  			
  		        j1 = Receive_Link1_TCB ;;
  		    	xr0=k0;;
  		    	xr1=Chips_in_One_Buffer<<16 | Modify_RLinkport ;;
  		    	xr2=(Sample_Times>>1)<<16 | ( SAMPLE_SEQUENCE_LENGTH +Modify_RLinkport-Chips_in_One_Buffer ) ;;
  		         
  		        xr3=j1;;
  		        xr3=lshift r3 by  -2;;
  		        xr3=r3 or r4;;
  		        q[j0+=4]=xr3:0;; 
  
  
  _initial_Received_TCB_end:       
  
  
   
  //////////////////////////////////////////////////////////
  
  xr0=TRK_TH;;
  [j31+cp_trk_status]=xr0;;
  
  _initial_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;;
				
   _initial_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);;


      
_user_initial.end:

⌨️ 快捷键说明

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