📄 l1tm_tpu61.c
字号:
/************* Revision Controle System Header *************
* GSM Layer 1 software
* L1TM_TPU12.C
*
* Filename l1tm_tpu61.c
* Copyright 2003 (C) Texas Instruments
*
*
* This file would have definitions of functions specific to UppCosto/Locosto TPU Development.
* Currently this would be definitons of functions meant for Flexible TPU Timings. These would need to
* be ported to earlier platforms of Syren/Rita if TPU Flexible Timings Feature is to be used there
*
*
************* Revision Controle System Header *************/
#include "l1_macro.h"
#include "l1_confg.h"
#if (TESTMODE == 1)
#include "tm_defs.h"
#include "l1_const.h"
#include "l1_types.h"
#include "l1tm_defty.h"
#include "l1tm_cust.h"
#include "l1tm_tpu61.h"
#if (AUDIO_TASK == 1)
#include "l1audio_const.h"
#include "l1audio_cust.h"
#include "l1audio_defty.h"
#endif
#if (L1_GTT == 1)
#include "l1gtt_const.h"
#include "l1gtt_defty.h"
#endif
#if (L1_MP3 == 1)
#include "l1mp3_defty.h"
#endif
#if (L1_MIDI == 1)
#include "l1midi_defty.h"
#endif
#include "l1_defty.h"
#include "l1_msgty.h"
#include "l1_tabs.h"
#include "l1tm_msgty.h"
#include "l1tm_varex.h"
#if ((ANLG_FAM == 1) || (ANLG_FAM == 2) || (ANLG_FAM == 3))
#include "spi_drv.h"
#endif
#include "sys_types.h"
#include "general.h"
#include "l1_time.h"
#include "tpudrv.h"
#include "tpudrv61.h"
#include <string.h>
#if (L1_TPU_DEV == 1)
#include "l1_varex.h"
#endif
//Import TPU Definitions
extern T_L1_CONFIG l1_config;
// External function prototypes
//Function Definitions
void Cust_tm_tpu_table_write (T_TM_RETURN *tm_return, WORD8 index, UWORD8 size, UWORD8 table[])
{
/*
INDICES BETWEEN in [0..63] RANGE ARE RESERVED FOR TI RF MODULE
*/
// fill in the cid
tm_return->cid = TPU_TABLE_WRITE;
switch (index)
{
default:
tm_return->size = 0;
tm_return->status = E_BADINDEX;
break;
} // end of switch
}
void Cust_tm_tpu_table_read (T_TM_RETURN *tm_return, WORD8 index)
{
/*
INDICES BETWEEN in [0..63] RANGE ARE RESERVED FOR TI RF MODULE
*/
// fill in the cid
tm_return->cid = TPU_TABLE_READ;
switch (index)
{
default:
tm_return->size = 0;
tm_return->status = E_BADINDEX;
break;
} // end of switch
}
#if (L1_TPU_DEV == 1)
/*Flexible TPU Timings related ...
The following function writes the Values meant for the tables (arrays rf_rx_tpu_timings &
rf_tx_tpu_timings into the RAM so that TPU can pick those values.
*/
void Cust_tm_flexi_tpu_table_write (T_TM_RETURN *tm_return, WORD8 index, UWORD8 size, WORD16 table16[])
{
/*
INDICES BETWEEN in [0..63] RANGE ARE RESERVED FOR TI RF MODULE
*/
// fill in the cid
tm_return->cid = FLEXI_TPU_TABLE_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
//copy the relevant values in the TPU Table...
switch (index)
{
case 2: // The entire RF_RX_TPU_TIMING Table
memcpy(l1_config.tmode.rx_params.p_rf_rx_tpu_timings, table16, NB_TPU_TIMINGS*sizeof(WORD16));
break;
case 1: // The entire RF_TX_TPU_TMINGS Table
memcpy(l1_config.tmode.tx_params.p_rf_tx_tpu_timings, table16, NB_TPU_TIMINGS*sizeof(WORD16));
break;
case 10: // From 10 - 41 l1_config.tmode.rx_params.p_rf_rx_tpu_timings
memcpy( &(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[0]), table16, sizeof(WORD16));
break;
case 11:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[1]), table16, sizeof(WORD16));
break;
case 12:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[2]), table16, sizeof(WORD16));
break;
case 13:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[3]), table16, sizeof(WORD16));
break;
case 14:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[4]), table16, sizeof(WORD16));
break;
case 15:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[5]), table16, sizeof(WORD16));
break;
case 16:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[6]), table16, sizeof(WORD16));
break;
case 17:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[7]), table16, sizeof(WORD16));
break;
case 18:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[8]), table16, sizeof(WORD16));
break;
case 19:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[9]), table16, sizeof(WORD16));
break;
case 20:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[10]), table16, sizeof(WORD16));
break;
case 21:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[11]), table16, sizeof(WORD16));
break;
case 22:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[12]), table16, sizeof(WORD16));
break;
case 23:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[13]), table16, sizeof(WORD16));
break;
case 24:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[14]), table16, sizeof(WORD16));
break;
case 25:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[15]), table16, sizeof(WORD16));
break;
case 26:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[16]), table16, sizeof(WORD16));
break;
case 27:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[17]), table16, sizeof(WORD16));
break;
case 28:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[18]), table16, sizeof(WORD16));
break;
case 29:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[19]), table16, sizeof(WORD16));
break;
case 30:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[20]), table16, sizeof(WORD16));
break;
case 31:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[21]), table16, sizeof(WORD16));
break;
case 32:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[22]), table16, sizeof(WORD16));
break;
case 33:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[23]), table16, sizeof(WORD16));
break;
case 34:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[24]), table16, sizeof(WORD16));
break;
case 35:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[25]), table16, sizeof(WORD16));
break;
case 36:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[26]), table16, sizeof(WORD16));
break;
case 37:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[27]), table16, sizeof(WORD16));
break;
case 38:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[28]), table16, sizeof(WORD16));
break;
case 39:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[29]), table16, sizeof(WORD16));
break;
case 40:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[30]), table16, sizeof(WORD16));
break;
case 41:
memcpy(&(l1_config.tmode.rx_params.p_rf_rx_tpu_timings[31]), table16, sizeof(WORD16));
break;
//From 42-73 l1_config.tmode.tx_params.rf_tx_tpu_timings
case 42:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[0]), table16, sizeof(WORD16));
break;
case 43:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[1]), table16, sizeof(WORD16));
break;
case 44:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[2]), table16, sizeof(WORD16));
break;
case 45:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[3]), table16, sizeof(WORD16));
break;
case 46:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[4]), table16, sizeof(WORD16));
break;
case 47:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[5]), table16, sizeof(WORD16));
break;
case 48:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[6]), table16, sizeof(WORD16));
break;
case 49:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[7]), table16, sizeof(WORD16));
break;
case 50:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[8]), table16, sizeof(WORD16));
break;
case 51:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[9]), table16, sizeof(WORD16));
break;
case 52:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[10]), table16, sizeof(WORD16));
break;
case 53:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[11]), table16, sizeof(WORD16));
break;
case 54:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[12]), table16, sizeof(WORD16));
break;
case 55:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[13]), table16, sizeof(WORD16));
break;
case 56:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[14]), table16, sizeof(WORD16));
break;
case 57:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[15]), table16, sizeof(WORD16));
break;
case 58:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[16]), table16, sizeof(WORD16));
break;
case 59:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[17]), table16, sizeof(WORD16));
break;
case 60:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[18]), table16, sizeof(WORD16));
break;
case 61:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[19]), table16, sizeof(WORD16));
break;
case 62:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[20]), table16, sizeof(WORD16));
break;
case 63:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[21]),table16, sizeof(WORD16));
break;
case 64:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[22]), table16, sizeof(WORD16));
break;
case 65:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[23]), table16, sizeof(WORD16));
break;
case 66:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[24]), table16, sizeof(WORD16));
break;
case 67:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[25]), table16, sizeof(WORD16));
break;
case 68:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[26]), table16, sizeof(WORD16));
break;
case 69:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[27]), table16, sizeof(WORD16));
break;
case 70:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[28]), table16, sizeof(WORD16));
break;
case 71:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[29]), table16, sizeof(WORD16));
break;
case 72:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[30]), table16, sizeof(WORD16));
break;
case 73:
memcpy(&(l1_config.tmode.tx_params.p_rf_tx_tpu_timings[31]), table16, sizeof(WORD16));
break;
default:
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_INVAL;
#else
tm_return->status = E_BADINDEX;
#endif
break;
} // end of switch
}
void Cust_tm_flexi_tpu_table_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_TPU_TABLE_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
switch (index)
{
case 2: // The entire RF_RX_TPU_TIMING Table
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -