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

📄 l1_trace.h

📁 是一个手机功能的模拟程序
💻 H
📖 第 1 页 / 共 5 页
字号:
  UWORD8 dl_status[8];
  UWORD8 ul_status[8];
} T_PDTCH_TRACE;


#if (defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1))
  // L1S trace function pointers
  typedef struct
  {
    T_RTT_RET (*rtt_refresh_status) (T_RTT_USER_ID  user_id);

    T_RTT_PTR (*rtt_get_fill_ptr)   (T_RTT_USER_ID  user_id,
                                     T_RTT_SIZE     size);

    T_RTT_RET (*rtt_dump_buffer)    (T_RTT_USER_ID  user_id,
                                     T_RTT_SIZE     dump_size);
  } T_L1S_TRACE_FUNC;
#endif


// L1S trace buffer size
#define L1S_RTT_BUF_LENGTH 1000

// Trace configuration
typedef struct
{
  UWORD32   l1_dyn_trace;
  UWORD32   rttl1_cell_enable[8];
  UWORD32   rttl1_event_enable;
} T_TRACE_CONFIG;

// Debug info structure
typedef struct
{
  // User IDs
  T_RVT_USER_ID       l1_trace_user_id;
#if (defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1))
  T_RTT_USER_ID       l1s_trace_user_id;
#endif

  UWORD8    PM_equal_0;
  UWORD8    PM_Task;
  UWORD8    Not_PM_Task;

  UWORD8    DSP_misaligned;

  UWORD8    facch_dl_count;
  UWORD8    facch_ul_count;
  UWORD8    facch_dl_fail_count;
  UWORD8    facch_dl_fail_count_trace;

  UWORD8    sacch_d_nerr;

  UWORD8    rxlev_req_count;
  BOOL      init_trace;
  UWORD8    abort_task;

#if (L1_BINARY_TRACE == 0)
  UWORD8    l1_memorize_error;

  UWORD8    trace_fct_buff[TRACE_FCT_BUFF_SIZE];
  UWORD8    trace_fct_buff_index;
  BOOL      trace_buff_stop;
  BOOL      trace_filter;
#endif

  BOOL      sleep_performed;
  UWORD8    reset_gauging_algo;

#if L1_GPRS
  BOOL          new_tcr_list;
  T_PDTCH_TRACE pdtch_trace;
#endif

#if L1_GTT
  T_RVT_USER_ID  gtt_trace_user_id;
#endif

#if (D_ERROR_STATUS_TRACE_ENABLE)
  // define a mask array for handling of the d_error_status field
  UWORD16 d_error_status_masks[2];
  API     d_error_status_old;
#endif

#if (DSP_DEBUG_TRACE_ENABLE)
  // Variable used to flag a DSP error, COM mismatch or PM=0 occured
  // Array x 2 --> double buffered
  // Contains 0 if no error / DSP trace start address if an error occured
  UWORD16 dsp_debug_buf_start[2];
  UWORD32 dsp_debug_fn[2];
  UWORD16 dsp_debug_time[2];
  UWORD32 fn_last_dsp_debug;
#endif

  // RTT
#if (defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1))
  T_L1S_TRACE_FUNC l1s_rtt_func;
  UWORD8           l1s_trace_buf[L1S_RTT_BUF_LENGTH];
#endif
  UWORD32          task_bitmap[8];
  UWORD32          mem_task_bitmap[8];

  // Dynamic trace
  T_TRACE_CONFIG   config[2];
  T_TRACE_CONFIG   *current_config;
  T_TRACE_CONFIG   *pending_config;
}
T_TRACE_INFO_STRUCT;

extern T_TRACE_INFO_STRUCT trace_info;


/***********************/
/* Function prototypes */
/***********************/

void  l1_trace_init              ();
void  Trace_L1s_Abort            (UWORD8 task);
void  Trace_MCU_DSP_Com_Mismatch (UWORD8 task);
void  Trace_PM_Equal_0           (UWORD32 pm, UWORD8 task);
void  Trace_rlc_ul_param         (UWORD8  assignment_id,
                                  UWORD8  tx_no,
                                  UWORD32 fn,
                                  UWORD8  ta,
                                  UWORD32 a_pu_gprs,
                                  UWORD32 a_du_gprs,
                                  BOOL    fix_alloc_exhaust);
void  Trace_rlc_dl_param         (UWORD8  assignment_id,
                                  UWORD32 fn,
                                  UWORD32 d_rlcmac_rx_no_gprs,
                                  UWORD8  rx_no,
                                  UWORD8  rlc_blocks_sent,
                                  UWORD8  last_poll_response);
void  Trace_uplink_no_TA         ();
void  Trace_condensed_pdtch      (UWORD8  rx_allocation, UWORD8 tx_allocation);
void  Trace_dl_ptcch             (UWORD8 ordered_ta, UWORD8 crc);
void  Trace_d_error_status       ();
void  Trace_dsp_debug            ();
#if (AMR == 1)
  void Trace_dsp_amr_debug       (void);
#endif
void  Trace_params               (UWORD8   debug_code,
                                  UWORD32  param0,
                                  UWORD32  param1,
                                  UWORD32  param2,
                                  UWORD32  param3,
                                  UWORD32  param4,
                                  UWORD32  param5,
                                  UWORD32  param6);
void  Trace_L1S_CPU_load         ();
void  Trace_dyn_trace_change     ();
void  l1_trace_sleep             (UWORD32 start_fn,
                                  UWORD32 end_fn,
                                  UWORD8 type_sleep,
                                  UWORD8 wakeup_type,
                                  UWORD8 big_sleep_type);
void  l1_trace_gauging_reset     (void);
void  l1_trace_gauging           (void);
void  l1_trace_new_toa           (void);
void  l1_trace_toa_not_updated   (void);
void  l1_trace_IT_DSP_error      (void);
void  l1_trace_ADC               (UWORD8 type);
void  l1_check_com_mismatch      (UWORD8 task);
void  l1_check_pm_error          (UWORD32 pm,UWORD8 task);
void  Trace_PM_Equal_0_balance   (void);
void  l1_trace_ptcch_disable     (void);
void trace_fct                   (UWORD8 fct_id, UWORD32 radio_freq);

/****************/
/* Trace macros */
/****************/

#if (CODE_VERSION != SIMULATION)
#define GTT_send_trace_cpy(s)    rvt_send_trace_cpy    ((T_RVT_BUFFER)s, trace_info.gtt_trace_user_id, strlen(s), RVT_ASCII_FORMAT)
#define GTT_send_trace_no_cpy(s) rvt_send_trace_no_cpy ((T_RVT_BUFFER)s, trace_info.gtt_trace_user_id, strlen(s), RVT_ASCII_FORMAT)
#else
  void GTT_send_trace_cpy(char *s);
#endif

/***********************************************************/
/* Trace data (parsed by the decoder)                      */
/***********************************************************/

// Trace version
//--------------

#define L1_TRACE_VERSION 5

// Dynamic traces
//---------------

//TRACE_CONF/
#define L1_DYN_TRACE_L1A_MESSAGES      0 //NAME/ L1A messages
#define L1_DYN_TRACE_L1S_DEBUG         1 //NAME/ L1S errors
#define L1_DYN_TRACE_DSP_DEBUG         2 //NAME/ DSP debug trace
#define L1_DYN_TRACE_RLC_PARAM         3 //NAME/ RLC parameters
#define L1_DYN_TRACE_UL_NO_TA          4 //NAME/ Uplink while no TA
#define L1_DYN_TRACE_DL_PTCCH          5 //NAME/ DL PTCCH blocks
#define L1_DYN_TRACE_CONDENSED_PDTCH   7 //NAME/ PDTCH UL + DL
#define L1_DYN_TRACE_L1S_CPU_LOAD      8 //NAME/ L1S CPU load peaks
#define L1_DYN_TRACE_ULPD              9 //NAME/ ULPD
#define L1_DYN_TRACE_FULL_LIST_REPORT 10 //NAME/ Full list report
#define L1_DYN_TRACE_GTT              11 //NAME/ GTT trace
#define L1_DYN_TRACE_DSP_AMR_DEBUG    12 //NAME/ DSP AMR debug trace
//END_TRACE_CONF/

#define L1_DYN_TRACE_DL_PDTCH_CRC      6 // DL PDTCH blocks CRC, only used if L1_BINARY_TRACE == 0

// L1 RTT event definitions
//-------------------------

//RTT_EVENTS/
#define RTTL1_EVENT_FNMOD13_EQUAL_12                         0 //NAME/ Every FN%13 = 12
#define RTTL1_EVENT_ERROR                                    1 //NAME/ When error occurs
//END_RTT_EVENTS/

// Buffer length for each event
#define RTTL1_EVENT_SIZE_FNMOD13_EQUAL_12   L1S_RTT_BUF_LENGTH  // All buffer is traced because it's a regular trace
#define RTTL1_EVENT_SIZE_ERROR              L1S_RTT_BUF_LENGTH

// Measurement codes used in trace
//--------------------------------

//MEAS_ID/
#define FULL_LIST_MEAS_ID   200 //NAME/ Full list meas
#define I_BA_MEAS_ID        201 //NAME/ Idle BA list meas
#define D_BA_MEAS_ID        202 //NAME/ Dedicated BA list meas
#define MS_AGC_ID           203 //NAME/ AGC setting meas
#define CR_MEAS_ID          204 //NAME/ CR meas
#define TCR_MEAS_ID         205 //NAME/ Packet transfer CR meas
#define PC_MEAS_CHAN_ID     206 //NAME/ Beacon meas
//END_MEAS_ID/

// Trace tables
//-------------

//TABLE/ RRBP
#define RRBP_BLOCK1   0 //NAME/ N+1
#define RRBP_BLOCK2   1 //NAME/ N+2
#define RRBP_BLOCK3   2 //NAME/ N+3
#define RRBP_BLOCK4   3 //NAME/ N+4
//END_TABLE/

//TABLE/ DL CS
#define DL_CS1   0 //NAME/ CS1
#define DL_CS2   1 //NAME/ CS2
#define DL_CS3   2 //NAME/ CS3
#define DL_CS4   3 //NAME/ CS4
//END_TABLE/

//TABLE/ MFTAB
#define CST_L1S_CTRL_ADC                    0  //NAME/ l1s_ctrl_ADC()
#define CST_L1S_CTRL_MSAGC                  1  //NAME/ l1s_ctrl_msagc()
#define CST_L1S_CTRL_SB2                    2  //NAME/ l1s_ctrl_sb2()
#define CST_L1S_CTRL_SB26                   3  //NAME/ l1s_ctrl_sb26()
#define CST_L1S_CTRL_SB51                   4  //NAME/ l1s_ctrl_sb51()
#define CST_L1S_CTRL_SBCONF                 5  //NAME/ l1s_ctrl_sbconf()
#define CST_L1S_CTRL_SBCNF26                6  //NAME/ l1s_ctrl_sbcnf26()
#define CST_L1S_CTRL_SBCNF51                7  //NAME/ l1s_ctrl_sbcnf51()
#define CST_L1S_CTRL_FB                     8  //NAME/ l1s_ctrl_fb()
#define CST_L1S_CTRL_FB26                   9  //NAME/ l1s_ctrl_fb26()
#define CST_L1S_CTRL_SMSCB                 10  //NAME/ l1s_ctrl_smscb()
#define CST_L1S_CTRL_SNB_DL                11  //NAME/ l1s_ctrl_snb_dl()
#define CST_L1S_CTRL_SNB_DL_BURST0         12  //NAME/ l1s_ctrl_snb_dl(burst 0)
#define CST_L1S_CTRL_SNB_DL_BURST1         13  //NAME/ l1s_ctrl_snb_dl(burst 1)
#define CST_L1S_CTRL_SNB_DL_BURST2         14  //NAME/ l1s_ctrl_snb_dl(burst 2)
#define CST_L1S_CTRL_SNB_DL_BURST3         15  //NAME/ l1s_ctrl_snb_dl(burst 3)
#define CST_L1S_CTRL_SNB_UL                16  //NAME/ l1s_ctrl_snb_ul()
#define CST_L1S_CTRL_NNB                   17  //NAME/ l1s_ctrl_nnb()
#define CST_L1S_CTRL_RACH                  18  //NAME/ l1s_ctrl_rach()
#define CST_L1S_CTRL_TCHT_DUMMY__DL        19  //NAME/ l1s_ctrl_tcht_dummy(DL)
#define CST_L1S_CTRL_TCHTH__DL             20  //NAME/ l1s_ctrl_tchth(DL)
#define CST_L1S_CTRL_TCHTH__UL             21  //NAME/ l1s_ctrl_tchth(UL)
#define CST_L1S_CTRL_TCHA___DL             22  //NAME/ l1s_ctrl_tcha(DL)
#define CST_L1S_CTRL_TCHA___UL             23  //NAME/ l1s_ctrl_tcha(UL)
#define CST_L1S_CTRL_TCHTF__DL             24  //NAME/ l1s_ctrl_tchtf(DL)
#define CST_L1S_CTRL_TCHTF__UL             25  //NAME/ l1s_ctrl_tchtf(UL)
#define CST_L1PS_CTRL_POLL                 26  //NAME/ l1ps_ctrl_poll()
#define CST_L1PS_CTRL_SNB_DL               27  //NAME/ l1ps_ctrl_snb_dl
#define CST_L1PS_CTRL_SINGLE               28  //NAME/ l1ps_ctrl_single()
#define CST_L1PS_CTRL_PBCCHS               29  //NAME/ l1ps_ctrl_pbcchs()
#define CST_L1PS_CTRL_PBCCHN               30  //NAME/ l1ps_ctrl_pbcchn()
#define CST_L1PS_CTRL_ITMEAS               31  //NAME/ l1ps_ctrl_itmeas()
#define CST_L1PS_CTRL_PDTCH                32  //NAME/ l1ps_ctrl_pdtch
#define CST_L1PS_CTRL_PDTCH_UL             33  //NAME/ l1ps_ctrl_pdtch(UL)
#define CST_L1PS_CTRL_PDTCH_DL             34  //NAME/ l1ps_ctrl_pdtch(DL)
#define CST_L1PS_CTRL_PDTCH_DL_BURST0      35  //NAME/ l1ps_ctrl_pdtch(DL burst0)
#define CST_L1PS_CTRL_PDTCH_DL_BURST1      36  //NAME/ l1ps_ctrl_pdtch(DL burst1)
#define CST_L1PS_CTRL_PDTCH_DL_BURST2      37  //NAME/ l1ps_ctrl_pdtch(DL burst2)
#define CST_L1PS_CTRL_PDTCH_DL_BURST3      38  //NAME/ l1ps_ctrl_pdtch(DL burst3)
#define CST_L1PS_CTRL_PDTCH_RA             39  //NAME/ l1ps_ctrl_pdtch(RA)
#define CST_L1PS_CTRL_PDTCH_DUMMY          40  //NAME/ l1ps_ctrl_pdtch(dummy)
#define CST_L1PS_CTRL_PTCCH_UL             41  //NAME/ l1ps_ctrl_ptcch(UL)
#define CST_L1PS_CTRL_PTCCH_EMPTY          42  //NAME/ l1ps_ctrl_ptcch(empty)
#define CST_L1PS_CTRL_PTCCH_DL_BURST0      43  //NAME/ l1ps_ctrl_ptcch(DL burst0)
#define CST_L1PS_CTRL_PTCCH_DL_BURST1      44  //NAME/ l1ps_ctrl_ptcch(DL burst1)
#define CST_L1PS_CTRL_PTCCH_DL_BURST2      45  //NAME/ l1ps_ctrl_ptcch(DL burst2)
#define CST_L1PS_CTRL_PTCCH_DL_BURST3      46  //NAME/ l1ps_ctrl_ptcch(DL burst3)
#define CST_CTRL_CR_MEAS                   47  //NAME/ ctrl_cr_meas
#define CST_CTRL_I_BA_MEAS                 48  //NAME/ ctrl_i_ba_meas
#define CST_CTRL_D_BA_MEAS                 49  //NAME/ ctrl_d_ba_meas
#define CST_CTRL_TCR_MEAS_1                50  //NAME/ ctrl_tcr_meas_1
#define CST_CTRL_TCR_MEAS_2                51  //NAME/ ctrl_tcr_meas_2
#define CST_CTRL_PC_MEAS_CHAN              52  //NAME/ ctrl_pc_meas_chan
#define CST_CTRL_TRANSFER_MEAS             53  //NAME/ ctrl_transfer_meas
#define CST_CTRL_FULL_LIST_MEAS            54  //NAME/ ctrl_full_list_meas
#define CST_CTRL_SCELL_TRANSFER_MEAS       55  //NAME/ ctrl_Scell_transfer_meas
#define CST_L1S_READ_RA                    56  //NAME/ l1s_read_ra()
#define CST_L1S_READ_NNB                   57  //NAME/ l1s_read_nnb
#define CST_L1S_READ_SNB_DL                58  //NAME/ l1s_read_snb_dl
#define CST_L1S_READ_TX_NB__DUL            59  //NAME/ l1s_read_tx_nb(DUL)
#define CST_L1S_READ_TX_NB__AUL            60  //NAME/ l1s_read_tx_nb(AUL)
#define CST_L1S_READ_TX_NB__TCHF           61  //NAME/ l1s_read_tx_nb(TCHF)

⌨️ 快捷键说明

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