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

📄 l1tm_tpu61.c

📁 MMI层OBJ不能完全编译
💻 C
📖 第 1 页 / 共 2 页
字号:
           tm_return->size =NB_TPU_TIMINGS*sizeof(WORD16);
           memcpy(tm_return->result, (UWORD8 *) l1_config.tmode.rx_params.p_rf_rx_tpu_timings,  tm_return->size);
    	break;
    
    	case 1: // The entire RF_TX_TPU_TMINGS Table 
    	  tm_return->size = NB_TPU_TIMINGS*sizeof(WORD16);
             memcpy(tm_return->result, (UWORD8 *)  l1_config.tmode.tx_params.p_rf_tx_tpu_timings, tm_return->size);
    	break;
    
            // From 10 - 41 RF_RX_TPU_TIMINGS
          case 10: 
          memcpy(tm_return->result, (UWORD8 *) &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[0]), 2);
    	break;
    
          case 11: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[1]), tm_return->size);
    	break;
    
          case 12: 
          memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[2]), tm_return->size);
    	break;
    
          case 13: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[3]), tm_return->size);
    	break;
    
          case 14: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[4]), tm_return->size);
    	break;
    
          case 15: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[5]), tm_return->size);
    	break;
    
          case 16: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[6]), tm_return->size);
    	break;
    
          case 17: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[7]), tm_return->size);
    	break;
    
          case 18: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[8]), tm_return->size);
    	break;
    
          case 19: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[9]), tm_return->size);
    	break;
    
          case 20: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[10]), tm_return->size);
    	break;
    	
          case 21: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[11]), tm_return->size);
    	break;
    	
          case 22: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[12]), tm_return->size);
    	break;
    
          case 23: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[13]), tm_return->size);
    	break;
    
          case 24: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[14]), tm_return->size);
    	break;
    
          case 25: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[15]), tm_return->size);
    	break;
    	
          case 26: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[16]), tm_return->size);
    	break;
    
          case 27: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[17]), tm_return->size);
    	break;
    
          case 28: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[18]), tm_return->size);
    	break;
    
          case 29: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[19]), tm_return->size);
    	break;
    
          case 30: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[20]), tm_return->size);
    	break;
    
          case 31: 
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[21]), tm_return->size);
    	break;
    
          case 32:
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[22]),tm_return->size);      
    	break;
    
          case 33:
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[23]),tm_return->size);
    	break;
    
          case 34:
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[24]),tm_return->size);
    	break;
    
          case 35:
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[25]),tm_return->size);
    	break;
    
          case 36:
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[26]),tm_return->size);
    	break;
    
          case 37:
            
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[27]),tm_return->size);
    	break;
    
          case 38:
            
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[28]),tm_return->size);
    	break;
    
          case 39:
            
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[29]),tm_return->size);
    	break;
          case 40:
            
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[30]),tm_return->size);
    	break;
    
          case 41:
            
           memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[31]),tm_return->size);
    	break;
    
           //From 42-73 RF_TX_TPU_TIMINGS 
    	case 42:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[0]), tm_return->size);
    	break;
    
    	case 43:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[1]), tm_return->size);
    	break;
    
    	case 44:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[2]), tm_return->size);
    	break;
    
    	case 45:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[3]), tm_return->size);
    	break;
    
    	case 46:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[4]), tm_return->size);
    	break;
    
    	case 47:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[5]), tm_return->size);
    	break;
    
    	case 48:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[6]), tm_return->size);
    	break;
    
    	case 49:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[7]), tm_return->size);
    	break;
    
    	case 50:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[8]), tm_return->size);
    	break;
    
    	case 51:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[9]), tm_return->size);
    	break;
    
    
    	case 52:  
    	  
             memcpy( tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[10]), tm_return->size);
    	break;
    
    	case 53:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[11]), tm_return->size);
    	break;
    	
    	case 54:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[12]), tm_return->size);
    	break;
    	
    	case 55:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[13]), tm_return->size);
    	break;
    
    	case 56:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[14]), tm_return->size);
    	break;
    
    	case 57:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[15]), tm_return->size);
    	break;
    
    	case 58:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[16]), tm_return->size);
    	break;
    
    	case 59:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[17]), tm_return->size);
    	break;
    
    	case 60:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[18]), tm_return->size);
    	break;
    
    	case 61:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[19]), tm_return->size);
    	break;
    
    	case 62:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[20]), tm_return->size);
    	break;
    
    	case 63:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[21]), tm_return->size);
    	break;
    
    	case 64:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[22]), tm_return->size);
    	break;
    
    	case 65:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[23]), tm_return->size);
    	break;
    
    	case 66:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[24]), tm_return->size);
    	break;
    
    	case 67:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[25]), tm_return->size);
    	break;
    
    	case 68:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[26]), tm_return->size);
    	break;
    
    	case 69:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[27]), tm_return->size);
    	break;
    
    	case 70:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[28]), tm_return->size);
    	break;
    
    	case 71:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[29]), tm_return->size);
    	break;
    
    	case 72:  
    	  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[30]), tm_return->size);
    	break;
    
          case 73:  
             memcpy(tm_return->result, (UWORD8 *)  &(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[31]), tm_return->size);
    	break;
    	
            default:
              tm_return->size = 0;
          #if (ETM_PROTOCOL == 1)
            tm_return->status = -ETM_INVAL;
          #else
            tm_return->status = E_BADINDEX;
          #endif
              break;
        } // end of switch
    }
    
    //Flexi ABB Delays
    /*
     Flexible ABB DELAYS related ...
     The following function writes the Values meant for the tables (arrays rf_flexi_abb_delays)
     into the RAM so that TPU can pick those values.
    */
    
    void Cust_tm_flexi_abb_write        (T_TM_RETURN *tm_return, WORD8 index, UWORD8 size, WORD16 table16[])
    {
    
      // fill in the cid
      tm_return->cid = FLEXI_ABB_WRITE;
      tm_return->size = 0;
    
      #if (ETM_PROTOCOL == 1)
          tm_return->status = -ETM_OK;
        #else
          tm_return->status = E_OK;
      #endif
         
    //Decide on the various Indices in the Table and do the required actions in this case
    if  (index == 0)
      {
    	 // The entire table
           memcpy(l1_config.tmode.rf_params.p_rf_flexi_abb_delays, table16, NB_ABB_DELAYS*sizeof(WORD16));
      }
    if (index > 0 && index < 32)
      {
           memcpy( &(l1_config.tmode.rf_params.p_rf_flexi_abb_delays[index]), table16, sizeof(WORD16));
       }
    else
      {
        #if (ETM_PROTOCOL == 1)
            tm_return->status = -ETM_INVAL;
         #else
            tm_return->status = E_BADINDEX;
        #endif
       } // else
    
	switch(index)
		{
               case 1:
			    break;


		case 6: // APCDELDOWN
		{
    		  UWORD16 apcdel1 = (((APCDEL_DOWN & 0x1f)<<5)  |(APCDEL_UP & 0x1f) );
    		  UWORD16 apcdel2 = (((APCDEL_DOWN & 0x3e0)) |((APCDEL_UP >>5) & 0x1f) );
    
                 // Changing to write the APCDEL1, APCDEL2  via API 
                 l1s_dsp_com.dsp_ndb_ptr->d_apcdel1  = apcdel1;
                 l1s_dsp_com.dsp_ndb_ptr->d_apcdel2  = apcdel2;

		  break;
		}
		case 7 : // APCDELUP
		{
    		   UWORD16 apcdel1 = (((APCDEL_DOWN & 0x1f)<<5)  |(APCDEL_UP & 0x1f) );
    		   UWORD16 apcdel2 = (((APCDEL_DOWN & 0x3e0)) |((APCDEL_UP >>5) & 0x1f) );
			  
                 // Changing to write the APCDEL1, APCDEL2  via API 
                 l1s_dsp_com.dsp_ndb_ptr->d_apcdel1  = apcdel1;
                 l1s_dsp_com.dsp_ndb_ptr->d_apcdel2  = apcdel2;

		   break;
		}

		case 8 : // GUARD BIT
		{
                 // Changing to write the GUARD BITS  via API 
                  l1s_dsp_com.dsp_ndb_ptr->d_tch_mode    |= (((GUARD_BITS) & 0x000F) << 7); //Bit 7..10: guard bits
  
                 break;
		}

		default: // Do Nothing
		break;

		} // Switch
		
    }
    
    void Cust_tm_flexi_abb_read         (T_TM_RETURN *tm_return, WORD8 index)
    {
    /*
    	INDICES BETWEEN in [0..63] RANGE ARE RESERVED FOR TI RF MODULE
    */
      UWORD16 value;
    
        // fill in the cid
        tm_return->cid = FLEXI_ABB_READ;
        tm_return->size = 2; 
        tm_return->index = index;
    
      #if (ETM_PROTOCOL == 1)
          tm_return->status = -ETM_OK;
        #else
          tm_return->status = E_OK;
      #endif
    	
    //TBD... Copy the relevant data into the tm_return cid,index,status,size, result
    
    if (index == 0)
      {
       //Read the Entire table
           tm_return->size =NB_ABB_DELAYS*sizeof(WORD16);
           memcpy(tm_return->result, (UWORD8 *) l1_config.tmode.rf_params.p_rf_flexi_abb_delays,  tm_return->size);
       }
    
    if (index > 0 && index < 32)
      {
          memcpy(tm_return->result, (UWORD8 *) &(l1_config.tmode.rf_params.p_rf_flexi_abb_delays[index]), 2);
      }
    else
      {
           #if (ETM_PROTOCOL == 1)
            tm_return->status = -ETM_INVAL;
           #else
           tm_return->status = E_BADINDEX;
           #endif
    
        } // else
    }
    
  #endif // L1_TPU_DEV
#endif //TESTMODE

⌨️ 快捷键说明

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