📄 l1_trace.h
字号:
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 + -