FreeCalypso > hg > fc-magnetite
view src/cs/layer1/cfile/l1_trace.c @ 581:a0a45c5eb3ef
gsmcomp.c: bumping trace partition size to 220 like in gprscomp.c
This change is safe in terms of RAM usage because all of these partition
pools have already been moved from XRAM to IRAM earlier, and our IRAM
usage in VO configs is currently quite low - the one near the limit
is XRAM on C11x.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 29 Jan 2019 03:52:49 +0000 |
parents | 68e0373035d7 |
children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1_TRACE.C * * Filename l1_trace.c * Copyright 2003 (C) Texas Instruments * ************* Revision Controle System Header *************/ #define L1_TRACE_C //#pragma DUPLICATE_FOR_INTERNAL_RAM_START #include "l1sw.cfg" #if (OP_L1_STANDALONE == 0) #include "debug.cfg" #endif #include "l1_macro.h" #include "l1_confg.h" #include <string.h> #include "l1_types.h" #include "sys_types.h" #include "l1_const.h" #include "l1_signa.h" #if (AUDIO_TASK == 1) #include "l1audio_const.h" #include "l1audio_cust.h" #include "l1audio_signa.h" #include "l1audio_defty.h" #include "l1audio_msgty.h" #endif #if TESTMODE #include "l1tm_defty.h" #endif #if (L1_GTT == 1) #include "l1gtt_const.h" #include "l1gtt_defty.h" #include "l1gtt_msgty.h" #include "l1gtt_signa.h" #endif #if (L1_MP3 == 1) #include "l1mp3_defty.h" #include "l1mp3_signa.h" #include "l1mp3_msgty.h" #endif #if (L1_MIDI == 1) #include "l1midi_defty.h" #include "l1midi_signa.h" #include "l1midi_msgty.h" #endif #if (L1_AAC == 1) #include "l1aac_defty.h" #include "l1aac_signa.h" #include "l1aac_msgty.h" #endif #if (L1_DYN_DSP_DWNLD == 1) #include "l1_dyn_dwl_signa.h" #include "l1_dyn_dwl_msgty.h" #endif #include "l1_defty.h" #include "cust_os.h" #include "l1_msgty.h" #include "l1_varex.h" #include "l1_proto.h" #include "l1_mftab.h" #include "l1_tabs.h" #include "l1_ver.h" #include "ulpd.h" #if TESTMODE #include "l1tm_msgty.h" #include "l1tm_signa.h" #include "l1tm_varex.h" #endif #include "mem.h" #if ( CHIPSET == 12 ) || (CHIPSET == 15) #include "sys_inth.h" #else #include "iq.h" #include "inth.h" #endif #if L1_GPRS #include "l1p_cons.h" #include "l1p_msgt.h" #include "l1p_deft.h" #include "l1p_vare.h" #include "l1p_sign.h" #include "l1p_ver.h" #endif #if (L1_DRP == 1) extern UWORD32 drp_ref_sw_tag; extern UWORD32 drp_ref_sw_ver; #endif #include <string.h> #include <stdio.h> #if (OP_L1_STANDALONE == 1) #include "serialswitch_core.h" #else #include "uart/serialswitch.h" #endif //void dt_trace_event(UWORD16 id, char *fmt_string, ...); #if (TRACE_TYPE==7) #include "timer2.h" #endif #if 0 /* FreeCalypso: LoCosto junk removed */ unsigned int x,y,fer_sacch ,dl_good_norep; #endif extern UWORD16 toa_tab[4]; #if (TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 7) #include "l1_trace.h" #endif #if FF_TBF #if ((TRACE_TYPE==1) || (TRACE_TYPE == 4)) #include "armio.h" // for GPIO toggle #endif #endif #if (GSM_IDLE_RAM != 0) #if (OP_L1_STANDALONE == 1) #include "csmi_simul.h" #else #include "csmi/sleep.h" #endif void l1_intram_put_trace(CHAR * msg); void l1s_trace_mftab(void); void l1s_keep_mftab_hist(void); BOOL l1s_mftab_has_changed(void); #endif #if (TRACE_TYPE == 5) #include "l1_trace.h" #endif #if (TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 7) #include "l1_trace.h" extern T_TRACE_INFO_STRUCT trace_info; void l1_trace_configuration(T_RVT_BUFFER trace_msg, UINT16 trace_msg_size); void l1_send_trace_version(); #if 0 /* FreeCalypso TCS211 reconstruction */ void l1_trace_full_dsp_buffer( void ); #endif #if L1_BINARY_TRACE #define L1_send_trace_cpy(s,length) rvt_send_trace_cpy ((T_RVT_BUFFER) s, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)length, RVT_BINARY_FORMAT) #define L1_send_trace_no_cpy(s,length) rvt_send_trace_no_cpy ((T_RVT_BUFFER) s, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)length, RVT_BINARY_FORMAT) #else #define L1_send_trace_cpy(s) rvt_send_trace_cpy ((T_RVT_BUFFER) s, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)strlen(s), RVT_ASCII_FORMAT) #define L1_send_trace_no_cpy(s) rvt_send_trace_no_cpy ((T_RVT_BUFFER) s, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)strlen(s), RVT_ASCII_FORMAT) #endif // inform the DAR system by tracing a Warning (used to inform DAR system a Recovery) #define L1_send_trace_cpy_DAR(s) rvf_send_trace1 (s, (T_RVT_MSG_LG)strlen(s),0,RV_TRACE_LEVEL_WARNING,trace_info.l1_trace_user_id)// omaps00090550 #define L1_send_low_level_trace(s) SER_tr_EncapsulateNChars (SER_LAYER_1, (char *)s, strlen(s)); #elif (TRACE_TYPE == 5) #include "l1_trace.h" extern T_TRACE_INFO_STRUCT trace_info; #endif //(TRACE_TYPE == 5) #if (TRACE_TYPE == 1) #include "timer2.h" // Variables for L1S CPU load measurement extern unsigned long max_cpu, fn_max_cpu; extern unsigned short layer_1_sync_end_time; extern unsigned short max_cpu_flag; #if 0 /* FreeCalypso */ // Variables for DSP CPU load measurement extern unsigned short l1_dsp_cpu_load_trace_flag; extern UWORD32 dsp_max_cpu_load_trace_array[4]; extern UWORD32 dsp_max_cpu_load_idle_frame; #endif #endif // (TRACE_TYPE == 1) // External variables for internal RAM download trace //--------------------------------------------------- #if (( ((CHIPSET !=2 ) ) && ((LONG_JUMP != 0))) || (CHIPSET == 12) || (CHIPSET == 15)) extern UWORD16 d_checksum1; extern UWORD16 d_checksum2; #endif //(( ((CHIPSET !=2 ) ) && ((LONG_JUMP != 0))) || (CHIPSET == 12)) // External variables for L1S CPU load peaks trace //------------------------------------------------ #if (TRACE_TYPE==4) extern UWORD32 max_cpu,fn_max_cpu; extern UWORD16 layer_1_sync_end_time; extern UWORD16 max_cpu_flag; #if 0 /* FreeCalypso */ // Variables for DSP CPU load measurement extern unsigned short l1_dsp_cpu_load_trace_flag; extern UWORD32 dsp_max_cpu_load_trace_array[4]; extern UWORD32 dsp_max_cpu_load_idle_frame; #endif // extern BOOL l1_trace_enabled; #endif //(TRACE_TYPE==4) // External variables and definitions for L1S CPU load trace //---------------------------------------------------------- #if (TRACE_TYPE==7) // CPU_LOAD #define CPU_LOAD_TIMER_RESET_VALUE (0xFFFF) #define C_PTV (0) #define CPU_LOAD_TICK (2.416) // microsecond // prototype #if (GSM_IDLE_RAM != 0) void l1_trace_buf_meas(void); #else void l1_trace_buf_meas_intram(void); #endif //(GSM_IDLE_RAM != 0) // array that store the cpu load measurements for each TDMA. extern T_MESURE d_mesure[C_MESURE_DEPTH]; extern UWORD8 d_mesure_index; #endif //(TRACE_TYPE==7) #if (AUDIO_DEBUG == 1) #define DSP_AUDIO_DEBUG_API_ADDR 0xFFD06BA6 void Trace_l1_audio_regs(); extern void l1_audio_regs_debug_read(); #endif #if (OP_L1_STANDALONE == 1) #ifdef _INLINE #define INLINE static inline // Inline functions when -v option is set #else // when the compiler is ivoked. #define INLINE #endif //INLINE #endif //omaps00090550 extern UWORD16 toa_tab[4]; #if(L1_DRC == 1) extern T_DRC_MCU_DSP *drc_ndb; #endif #if L1_BINARY_TRACE #if (DSP_DEBUG_TRACE_ENABLE == 1) #define DSP_DEBUG_ENABLE \ if (trace_info.dsp_debug_buf_start[l1s_dsp_com.dsp_r_page] == 0) \ { \ trace_info.dsp_debug_buf_start[l1s_dsp_com.dsp_r_page] = l1s_dsp_com.dsp_db2_current_r_ptr->d_debug_ptr_begin; \ trace_info.dsp_debug_fn[l1s_dsp_com.dsp_r_page] = l1s.actual_time.fn; \ trace_info.dsp_debug_time[l1s_dsp_com.dsp_r_page] = (UWORD16)l1s.debug_time; \ } #endif // (DSP_DEBUG_TRACE_ENABLE) #else #if (DSP_DEBUG_TRACE_ENABLE == 1) #define DSP_DEBUG_ENABLE \ if (trace_info.dsp_debug_buf_start[l1s_dsp_com.dsp_r_page] == 0) \ { \ trace_info.dsp_debug_buf_start[l1s_dsp_com.dsp_r_page] = l1s_dsp_com.dsp_db2_current_r_ptr->d_debug_ptr_begin; \ trace_info.dsp_debug_fn[l1s_dsp_com.dsp_r_page] = l1s.actual_time.fn; \ trace_info.dsp_debug_time[l1s_dsp_com.dsp_r_page] = (UWORD16)l1s.debug_time; \ } #endif // (DSP_DEBUG_TRACE_ENABLE) #endif //#pragma DUPLICATE_FOR_INTERNAL_RAM_END #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) // MOVE TO INTERNAL MEM IN CASE GSM_IDLE_RAM enabled //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START // KEEP IN EXTERNAL MEM otherwise #if (TRACE_TYPE==7) // CPU_LOAD // array that store the cpu load measurements for each TDMA. static T_MESURE d_mesure[C_MESURE_DEPTH]; static UWORD8 d_mesure_index; #endif #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 5) || (TRACE_TYPE == 7)) T_TRACE_INFO_STRUCT trace_info; #endif #if (TRACE_TYPE == 1) #include "timer2.h" // Variables for L1S CPU load measurement unsigned long max_cpu = 0, fn_max_cpu; unsigned short layer_1_sync_end_time; unsigned short max_cpu_flag = 0; #if 0 /* FreeCalypso */ // Variables for DSP CPU load measurement UWORD32 dsp_max_cpu_load_trace_array[4] = {0L, 0L, 0L, 0L}; UWORD32 dsp_max_cpu_load_idle_frame = 0L; unsigned short l1_dsp_cpu_load_trace_flag = 0; #endif #endif //(TRACE_TYPE == 1) //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif #if ((GSM_IDLE_RAM != 0)) // Compiled only if (GSM_IDLE_RAM != 0) //omaps00090550 //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START // Mapped automatically in the appropriate memory region #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 5)) CHAR intram_trace_buffer[INTRAM_TRACE_BUFFER_SIZE]; // buffer containing temporary ASCII trace CHAR * intram_buffer_current_ptr; // pointer on next available CHAR available T_RVT_MSG_LG intram_trace_size; // size of the meaningful trace (circular buffer) #endif //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif #if (OP_L1_STANDALONE == 0) #if (TI_PROFILER == 1) // Returns the absolute frame number UWORD32 l1_get_next_absolute_fn(void) { return (l1s.next_time.fn); } #endif #if (TI_NUC_MONITOR == 1) || (WCP_PROF == 1) // Returns the absolute frame number UWORD16 l1_get_actual_fn_mod42432(void) { return (l1s.actual_time.fn_mod42432); } #endif #if (TI_PROFILER == 1) || (TI_NUC_MONITOR == 1) void SendTraces(char *s) { L1_send_trace_cpy(s); } #endif #endif //(OP_L1_STANDALONE == 0) #if ((OP_L1_STANDALONE == 1) && ((DSP == 38)|| (DSP == 39)) && (CODE_VERSION != SIMULATION)) #include "clkm.h" void l1_api_dump(void); UWORD16 api_dump_cnvt_mcu_to_dsp(UWORD32 address); #endif #if ((TRACE_TYPE==1) || (TRACE_TYPE==2) || (TRACE_TYPE==3) || (TRACE_TYPE==4) || (TRACE_TYPE==7)) extern void L1_trace_string(char *s); #endif #if (BURST_PARAM_LOG_ENABLE == 1) #define BURST_PARAM_LOG_BUFFER_LENGTH 32768 typedef struct { UWORD16 fn_mod42432; UWORD16 l1_mode; UWORD16 task; UWORD16 SNR_val; UWORD16 TOA_val; UWORD16 angle; UWORD16 pm; UWORD16 IL_for_rxlev; UWORD16 l1s_afc; UWORD16 hole; // to ensure 32-bit alignment }T_burst_param_log_debug; //#pragma DATA_SECTION(burst_param_log_debug,".debug_data"); T_burst_param_log_debug burst_param_log_debug[BURST_PARAM_LOG_BUFFER_LENGTH]; UWORD32 burst_param_log_index; #endif #if (TRACE_TYPE==1) || (TRACE_TYPE==4) || (TRACE_TYPE==5) UWORD16 int_id = 0; UWORD32 pgoset = 0; /*************************************************************************/ /* Initialization */ /*************************************************************************/ /*-------------------------------------------------------*/ /* l1_trace_init_var() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* Description: L1 Trace variables initialization. */ /*-------------------------------------------------------*/ void l1_init_trace_var(void) { UWORD8 i; // Global variables used for trace trace_info.PM_equal_0 = 0; trace_info.PM_Task = 255; trace_info.Not_PM_Task = 255; trace_info.DSP_misaligned = 0; trace_info.facch_ul_count = 0; trace_info.facch_dl_count = 0; trace_info.facch_dl_fail_count = 0; trace_info.facch_dl_fail_count_trace = 0; #if ( FF_REPEATED_DL_FACCH == 1) trace_info.facch_dl_combined_good_count = 0; trace_info.facch_dl_repetition_block_count = 0; trace_info.facch_dl_count_all = 0; trace_info.facch_dl_good_block_reported = 0; #endif/* (FF_REPEATED_DL_FACCH == 1)*/ trace_info.sacch_d_nerr = 0; #if (FF_REPEATED_SACCH == 1) trace_info.repeat_sacch.dl_count = 0; trace_info.repeat_sacch.dl_combined_good_count = 0; trace_info.repeat_sacch.dl_error_count = 0; trace_info.repeat_sacch.srr= 0; trace_info.repeat_sacch.sro= 0; trace_info.repeat_sacch.dl_good_norep = 0; trace_info.repeat_sacch.dl_buffer_empty = TRUE; #endif /* (FF_REPEATED_SACCH == 1) */ trace_info.rxlev_req_count = 0; trace_info.init_trace = 0; trace_info.reset_gauging_algo = FALSE; // trace Reset gauging Algorithm trace_info.sleep_performed = FALSE; #if (L1_BINARY_TRACE == 0) trace_info.l1_memorize_error = ' '; trace_info.trace_filter = FALSE; trace_info.trace_fct_buff_index = 0; trace_info.trace_buff_stop = FALSE; // start buffer trace for (i=0;i<TRACE_FCT_BUFF_SIZE;i++) trace_info.trace_fct_buff[i] =255; #endif #if L1_GPRS trace_info.new_tcr_list = 0; #endif #if (D_ERROR_STATUS_TRACE_ENABLE) trace_info.d_error_status_old = 0; trace_info.d_error_status_masks[GSM_SCHEDULER-1] = DSP_DEBUG_GSM_MASK; #if (L1_GPRS) trace_info.d_error_status_masks[GPRS_SCHEDULER-1] = DSP_DEBUG_GPRS_MASK; #endif #endif #if (DSP_DEBUG_TRACE_ENABLE == 1) trace_info.dsp_debug_buf_start[0] = 0; trace_info.dsp_debug_buf_start[1] = 0; trace_info.fn_last_dsp_debug = 0xFFFFFFFF - 104; #endif trace_info.mem_task_bitmap[0] = 0; trace_info.mem_task_bitmap[1] = 0; trace_info.mem_task_bitmap[2] = 0; trace_info.mem_task_bitmap[3] = 0; trace_info.mem_task_bitmap[4] = 0; trace_info.mem_task_bitmap[5] = 0; trace_info.mem_task_bitmap[6] = 0; trace_info.mem_task_bitmap[7] = 0; trace_info.task_bitmap[0] = 0; trace_info.task_bitmap[1] = 0; trace_info.task_bitmap[2] = 0; trace_info.task_bitmap[3] = 0; trace_info.task_bitmap[4] = 0; trace_info.task_bitmap[5] = 0; trace_info.task_bitmap[6] = 0; trace_info.task_bitmap[7] = 0; #if (GSM_IDLE_RAM != 0) // Init of the circular trace buffer intram_buffer_current_ptr=intram_trace_buffer; intram_trace_size = 0; #endif #if 0 /* FreeCalypso TCS211 reconstruction */ #if ((TRACE_TYPE==1) || (TRACE_TYPE == 4)) #if (MELODY_E2 || L1_MP3 || L1_AAC || L1_DYN_DSP_DWNLD) trace_info.dsptrace_handler_globals.nested_disable_count = 0; trace_info.dsptrace_handler_globals.trace_flag_blocked = FALSE; trace_info.dsptrace_handler_globals.dsp_trace_level_copy = 0x0000; #endif #endif // ((TRACE_TYPE==1) || (TRACE_TYPE == 4)) #endif #if (BURST_PARAM_LOG_ENABLE == 1) burst_param_log_index = 0; #endif #if (AUDIO_DEBUG == 1) trace_info.audio_debug_var.vocoder_enable_status = 0; trace_info.audio_debug_var.ul_state = 0; trace_info.audio_debug_var.dl_state = 0; trace_info.audio_debug_var.ul_onoff_counter = 0; trace_info.audio_debug_var.dl_onoff_counter = 0; #endif #if(L1_SAIC != 0) trace_info.prev_saic_flag_val = 2; trace_info.prev_swh_flag_val = 2; #endif #if 0 /* FreeCalypso TCS211 reconstruction */ trace_info.pwmgt_trace_var.fail_step = 0xFF; trace_info.pwmgt_trace_var.fail_id = 0xFF; trace_info.pwmgt_trace_var.fail_cause = 0xFF; #endif // NO SIMULATION } /*-------------------------------------------------------*/ /* l1_trace_init() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* Description: L1 Trace initialization. */ /*-------------------------------------------------------*/ void l1_trace_init() { // Registration to RVT #if (TRACE_TYPE==1) || (TRACE_TYPE == 4) #if L1_BINARY_TRACE rvt_register_id("L1", &trace_info.l1_trace_user_id, l1_trace_configuration); #else rvt_register_id("L1", &trace_info.l1_trace_user_id, (RVT_CALLBACK_FUNC)NULL); #endif #endif // Initialize global variables l1_init_trace_var(); /******************************/ /* L1 RTT trace configuration */ /******************************/ trace_info.current_config = &(trace_info.config[0]); trace_info.pending_config = &(trace_info.config[1]); trace_info.current_config->l1_dyn_trace = DEFAULT_DYN_TRACE_CONFIG; trace_info.current_config->rttl1_cell_enable[0] = 0x00000000; trace_info.current_config->rttl1_cell_enable[1] = 0x00000000; trace_info.current_config->rttl1_cell_enable[2] = 0x00000000; trace_info.current_config->rttl1_cell_enable[3] = 0x00000000; trace_info.current_config->rttl1_cell_enable[4] = 0x00000000; trace_info.current_config->rttl1_cell_enable[5] = 0x00000000; trace_info.current_config->rttl1_cell_enable[6] = 0x00000000; trace_info.current_config->rttl1_cell_enable[7] = 0x00000000; trace_info.current_config->rttl1_event_enable = 0; /*******************************/ /* L1 RTT trace initialization */ /*******************************/ #if (defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1)) #if L1_BINARY_TRACE if (rtt_create("L1RTT", &trace_info.l1s_trace_user_id, 10, (T_RTT_BUF) trace_info.l1s_trace_buf, L1S_RTT_BUF_LENGTH, NULL) == RTT_OK) { trace_info.l1s_rtt_func.rtt_refresh_status = &rtt_refresh_status; trace_info.l1s_rtt_func.rtt_get_fill_ptr = &rtt_get_fill_ptr; trace_info.l1s_rtt_func.rtt_dump_buffer = &rtt_dump_buffer; } else #endif { trace_info.l1s_rtt_func.rtt_refresh_status = &rtt_refresh_status_dummy; trace_info.l1s_rtt_func.rtt_get_fill_ptr = &rtt_get_fill_ptr_dummy; trace_info.l1s_rtt_func.rtt_dump_buffer = &rtt_dump_buffer_dummy; } // Missing... ERROR HANDLING !!! #endif /*************************/ /* Send trace version */ /*************************/ #if L1_BINARY_TRACE l1_send_trace_version(); #endif } #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) // MOVE TO INTERNAL MEM IN CASE GSM_IDLE_RAM enabled //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START // KEEP IN EXTERNAL MEM otherwise #if (TRACE_TYPE==1) || (TRACE_TYPE==4) || (TRACE_TYPE==5) //////////////////////// // RTT dummy funtions // //////////////////////// #if (defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1)) // These function are used when RTT isn't active or no RTT L1 trace is enabled T_RTT_RET rtt_refresh_status_dummy (T_RTT_USER_ID user_id) { return(RTT_OK); } T_RTT_PTR rtt_get_fill_ptr_dummy (T_RTT_USER_ID user_id, T_RTT_SIZE size) { return(NULL); } T_RTT_RET rtt_dump_buffer_dummy (T_RTT_USER_ID user_id, T_RTT_SIZE dump_size) { return(RTT_OK); } #endif //(defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1)) #endif //(TRACE_TYPE==1) || (TRACE_TYPE==4) || (TRACE_TYPE==5) //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif /************************************ Binary trace ********************************************************/ #if L1_BINARY_TRACE /* * FreeCalypso: the binary trace code has been excised * because we have no way of reconstructing what it was * in the TCS211 version before LoCosto changes. */ /************************************ ASCII trace *********************************************************/ #else // L1_BINARY_TRACE = 0 /*-------------------------------------------------------*/ /* l1_trace_L1_task() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* Traces the status of the L1 tasks */ /*-------------------------------------------------------*/ void l1_trace_L1_tasks(void) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) UWORD8 i; char str2[NBR_DL_L1S_TASKS+5]; // trace enabled task for(i=0;i<NBR_DL_L1S_TASKS;i++) str2[i]= '0'+ l1a_l1s_com.l1s_en_task[i]; str2[NBR_DL_L1S_TASKS] = '\n'; str2[NBR_DL_L1S_TASKS+1]= '\r'; str2[NBR_DL_L1S_TASKS+1]= 0; L1_send_trace_cpy(str2); L1_send_trace_cpy("\n\r"); #endif } /*-------------------------------------------------------*/ /* l1_trace_ADC() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_ADC(UWORD8 type) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1A_MESSAGES) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = TRACE_ADC; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = type; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } /*-------------------------------------------------------*/ /* l1_trace_IT_DSP_error() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_IT_DSP_error() { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; trace_info.l1_memorize_error = '.'; // memorize an error in the L1 if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = IT_DSP_ERROR; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } #if (L1_PCM_EXTRACTION) /*-------------------------------------------------------*/ /* l1_trace_PCM_DSP_error() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_PCM_DSP_error(void) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = L1S_PCM_ERROR_TRACE; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s_dsp_com.dsp_ndb_ptr->d_pcm_api_error; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif l1s_dsp_com.dsp_ndb_ptr->d_pcm_api_error = 0; } /* end function l1_trace_PCM_DSP_error */ #endif /* L1_PCM_EXTRACTION */ #if 0 /* LoCosto function not present in TCS211 */ /*-------------------------------------------------------*/ /* l1_trace_burst_param() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_burst_param (UWORD32 angle, UWORD32 snr, UWORD32 afc, UWORD32 task, UWORD32 pm, UWORD32 toa_val, UWORD32 IL_for_rxlev) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_BURST_PARAM) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = BURST_PARAM; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = angle; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = snr; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = afc; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = pm; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = toa_val; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = task; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = IL_for_rxlev; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } #endif #if (L1_SAIC !=0) /*-------------------------------------------------------*/ /* l1_trace_saic() */ /*-------------------------------------------------------*/ /* Parameters : SWH_flag */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_saic(UWORD32 SWH_flag, UWORD32 SAIC_flag) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_SAIC_DEBUG) { if(trace_info.prev_swh_flag_val != SWH_flag || trace_info.prev_saic_flag_val != SAIC_flag) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = SAIC_DEBUG; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = SWH_flag; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = SAIC_flag; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) trace_info.prev_saic_flag_val = SAIC_flag; trace_info.prev_swh_flag_val = SWH_flag; } } #endif } #endif #if (L1_NAVC_TRACE == 1) /*-------------------------------------------------------*/ /* l1_trace_navc() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_navc(UWORD32 status, UWORD32 energy_level) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = NAVC_VALUE; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = status; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = energy_level; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) #endif } #endif /*-------------------------------------------------------*/ /* l1_trace_new_toa() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_new_toa(void) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1A_MESSAGES) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = NEW_TOA; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; #if (TOA_ALGO == 2) ((T_TRACE_INFO *)(msg->SigP))->tab[1] = l1s.toa_var.toa_shift; #else ((T_TRACE_INFO *)(msg->SigP))->tab[1] = l1s.toa_shift; #endif #if (TOA_ALGO == 2) ((T_TRACE_INFO *)(msg->SigP))->tab[2] = trace_info.toa_trace_var.toa_frames_counter; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = trace_info.toa_trace_var.toa_accumul_counter; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = trace_info.toa_trace_var.toa_accumul_value; #endif // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } /*-------------------------------------------------------*/ /* l1_trace_toa_not_updated() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* TOA ERROR: TOA not updated */ /*-------------------------------------------------------*/ void l1_trace_toa_not_updated(void) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) // !!!!!!!!!!!!!!!!!!!!!!!! // !!! should not occur !!! // !!!!!!!!!!!!!!!!!!!!!!!! xSignalHeaderRec *msg; trace_info.l1_memorize_error = '.'; // memorize an error in the L1 if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = TOA_NOT_UPDATED; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; #if (TOA_ALGO == 2) ((T_TRACE_INFO *)(msg->SigP))->tab[1] = l1s.toa_var.toa_shift; #else ((T_TRACE_INFO *)(msg->SigP))->tab[1] = l1s.toa_shift; #endif // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } #if (L1_RF_KBD_FIX == 1) /*-------------------------------------------------------*/ /* l1_trace_correction_ratio() */ /*-------------------------------------------------------*/ /* Parameters : correction_ratio */ /* Return : */ /* */ /*-------------------------------------------------------*/ void l1_trace_correction_ratio(UWORD16 correction_ratio) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_RF_KBD) { if(trace_info.prev_correction_ratio != correction_ratio) { msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = KPD_CR; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = correction_ratio; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) trace_info.prev_correction_ratio = correction_ratio; } } #endif } #endif #if (TRACE_TYPE==1) || (TRACE_TYPE==4) /*************************************************************************/ /* L1A Messages traces */ /*************************************************************************/ /*-------------------------------------------------------*/ /* l1_trace_message() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* Description: L1 Trace formatting. */ /*-------------------------------------------------------*/ void l1_trace_message(xSignalHeaderRec *msg) { char str[240]; // Max 240 bytes with current RVT char str2[30]; /***********************************************************************/ /* Debug messages */ /***********************************************************************/ switch(msg->SignalCode) { #if (DSP_DEBUG_TRACE_ENABLE == 1) #define BIN_TO_HEX(i) i<10 ? '0' + i : 'a' + i - 10 ////////////////////// // DSP debug buffer // ////////////////////// case TRACE_DSP_DEBUG: { volatile UWORD16 size = ((T_DSP_DEBUG_INFO *)(msg->SigP))->size; UWORD16 index = 0; BOOL first_buffer = TRUE; UWORD8 return_line = 0; char *buf; while (size != 0) { if (rvt_mem_alloc(trace_info.l1_trace_user_id, 240, (T_RVT_BUFFER *) &buf) == RVT_OK) { char *str_ptr = buf; UWORD8 i = 3; if (first_buffer) { sprintf(buf,"DEBUG %d %ld %xh %xh\n\r", ((T_DSP_DEBUG_INFO *)(msg->SigP))->fn % 42432, ((T_DSP_DEBUG_INFO *)(msg->SigP))->debug_time, ((T_DSP_DEBUG_INFO *)(msg->SigP))->patch_version, ((T_DSP_DEBUG_INFO *)(msg->SigP))->trace_level); i = (strlen(buf) / 4) + 1; str_ptr = str_ptr + strlen(buf); first_buffer = FALSE; } // Copy less that 223 bytes (240 - 4 x '\n\r' - 9 bytes margin(footer)) => 55 API for (; (i < 55) && (size != 0); i++) { API val = ((T_DSP_DEBUG_INFO *)(msg->SigP))->buffer[index]; *str_ptr++ = BIN_TO_HEX(((val & 0xF000) >> 12)); *str_ptr++ = BIN_TO_HEX(((val & 0x0F00) >> 8)); *str_ptr++ = BIN_TO_HEX(((val & 0x00F0) >> 4)); *str_ptr++ = BIN_TO_HEX( (val & 0x000F)); if (return_line++ == 12) { *str_ptr++ = '\n'; *str_ptr++ = '\r'; return_line = 0; } index++; size -= 2; } if (size == 0) { if (return_line != 0) { *str_ptr++ = '\n'; *str_ptr++ = '\r'; } *str_ptr++ = 'D'; *str_ptr++ = 'E'; *str_ptr++ = 'B'; *str_ptr++ = 'U'; *str_ptr++ = 'G'; *str_ptr++ = '\n'; *str_ptr++ = '\r'; } #if (OP_L1_STANDALONE == 0) else { *str_ptr++ = '\r'; // 'Dummy' char for Riviera Tracer } #endif //(OP_L1_STANDALONE == 0) *str_ptr = 0; // End char L1_send_trace_no_cpy(buf); } else { // Error in trace message allocation --> ABORT trace ! break; } } } break; /////////////////// // DSP AMR debug // /////////////////// case TRACE_DSP_AMR_DEBUG: { volatile UWORD16 size = ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->size; UWORD16 index = 0; BOOL first_buffer = TRUE; UWORD8 return_line = 0; char *buf; while (size != 0) { if (rvt_mem_alloc(trace_info.l1_trace_user_id, 240, (T_RVT_BUFFER *) &buf) == RVT_OK) { char *str_ptr = buf; UWORD8 i = 3; if (first_buffer) { sprintf(buf,"AMR %ld\n\r", ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->fn % 42432); i = (strlen(buf) / 4) + 1; str_ptr = str_ptr + strlen(buf); first_buffer = FALSE; } // Copy less that 245 bytes (255 - 5 x '\n\r' - 2 bytes margin(footer)) => 48 API words // 1 API <=> 4 digits <=> 4 bytes + 1 space for (; (i < 48) && (size != 0); i++) { API val = ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->buffer[index]; *str_ptr++ = BIN_TO_HEX(((val & 0xF000) >> 12)); *str_ptr++ = BIN_TO_HEX(((val & 0x0F00) >> 8)); *str_ptr++ = BIN_TO_HEX(((val & 0x00F0) >> 4)); *str_ptr++ = BIN_TO_HEX( (val & 0x000F)); *str_ptr++ = ' '; if (return_line++ == 12) { *str_ptr++ = '\n'; *str_ptr++ = '\r'; return_line = 0; } index++; size -= 2; } if (size == 0) { if (return_line != 0) { *str_ptr++ = '\n'; *str_ptr++ = '\r'; } } #if (OP_L1_STANDALONE == 0) else { *str_ptr++ = '\r'; // 'Dummy' char for Riviera Tracer } #endif //(OP_L1_STANDALONE == 0) *str_ptr = 0; // End char L1_send_trace_no_cpy(buf); } else { // Error in trace message allocation --> ABORT trace ! break; } } } break; #endif // DSP_DEBUG_ENABLE #if (L1_GPRS) ////////////////////////// // Packet transfer mode // ////////////////////////// case TRACE_CONDENSED_PDTCH: { UWORD8 blk_id,i; BOOL flag_tx = FALSE; // Process block ID blk_id = 3 * (((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->fn / 13) + (((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->fn % 13) / 4; // Create string sprintf(str,"%x",blk_id); i = 0; while(i<4) // limited to 4 Rx { if (((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->rx_allocation & (0x80 >> i)) { sprintf(str2,"%02x",((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->dl_status[i]); strcat(str,str2); } i++; } strcat(str," "); for(i=0; i<8; i++) { if (((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[i] != 0) { flag_tx = TRUE; sprintf(str2,"%02x",((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[i] | ((((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->blk_status & 0x01) << 8)); strcat(str,str2); } } if ((flag_tx == FALSE) && (((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->blk_status & 0x01)) { strcat(str,"08"); } strcat(str,"\n\r"); // Send trace L1_send_trace_cpy(str); } break; #endif // L1_GPRS //////////////// // Debug info // //////////////// case TRACE_INFO: { UWORD8 debug_code = ((T_TRACE_INFO *)(msg->SigP))->debug_code; switch(debug_code) { // General debug info #if (L1_AUDIO_MCU_ONOFF == 1) case L1_AUDIO_UL_ONOFF_TRACE: { sprintf (str,"AUL :%ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; case L1_AUDIO_DL_ONOFF_TRACE: { sprintf (str,"ADL :%ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; #endif case TRACE_ADC: { sprintf (str," ADC :%ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; #if (L1_PCM_EXTRACTION) case L1S_PCM_ERROR_TRACE: { sprintf (str," PCM Err :%ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; #endif /* L1_PCM_EXTRACTION */ case NEW_TOA: { #if (TOA_ALGO == 2) sprintf (str," TOA updated:%ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4]); #else sprintf (str," TOA updated:%ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); #endif L1_send_trace_cpy(str); } break; /* the following LoCosto stanzas don't exist in TCS211 */ #if 0 case SAIC_DEBUG: { sprintf (str," SWH : %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2]); L1_send_trace_cpy(str); } break; case NAVC_VALUE: sprintf (str," NAVC: %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); break; case KPD_CR: { sprintf (str," KPD CR UPADTED : %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; case BURST_PARAM: { sprintf (str," BP:%ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7]); L1_send_trace_cpy(str); } break; #endif case TOA_NOT_UPDATED: // should not occur { sprintf (str,"> ERROR: TOA not updated:%ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; case IT_DSP_ERROR: { #if 0 /* FreeCalypso TCS211 reconstruction */ WORD8 cause = ((T_TRACE_INFO *)(msg->SigP))->tab[1]; if (cause == IT_DSP_ERROR_CPU_OVERLOAD) { sprintf (str,"> MCU CPU overload %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); } #if (FF_L1_FAST_DECODING == 1) else if (cause == IT_DSP_ERROR_FAST_DECODING) { sprintf (str,"> ERROR: Fast Decoding IT not received! %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); } else if (cause == IT_DSP_ERROR_FAST_DECODING_UNEXP) { sprintf (str,"> ERROR: Fast Decoding IT received but not expected! %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); } #endif /* end FF_L1_FAST_DECODING */ else { sprintf (str,"> ERROR: Unknown IT_DSP_ERROR! %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); } #else sprintf (str,"> MCU CPU overload %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); #endif L1_send_trace_cpy(str); } /* end case IT_DSP_ERROR */ break; case PM_EQUAL_0: { #if 0 /* TCS211 bogus format string */ sprintf (str,"> PM %ld %ld %ld %ld %ld %ld %ld %d %ld %d\n\r", #else /* LoCosto correction */ sprintf (str,"> PM %ld %ld %ld %ld %ld %ld %ld %d %ld\n\r", #endif ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7] & 0xffff, ((T_TRACE_INFO *)(msg->SigP))->tab[7] >> 16); L1_send_trace_cpy(str); if (trace_info.trace_filter == FALSE) { l1_trace_L1_tasks(); // trace L1 tasks status l1_display_buffer_trace_fct(); // display buffer fct called trace_info.trace_filter = TRUE; // avoid too much traces displayed } } break; case NO_PM_EQUAL_0: { sprintf (str,"> !PM %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7] & 0xffff); L1_send_trace_cpy(str); } break; case MCU_DSP_MISMATCH: { sprintf (str,"> COM %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7] & 0xffff); L1_send_trace_cpy(str); if (trace_info.trace_filter == FALSE) { l1_trace_L1_tasks(); // trace L1 tasks status l1_display_buffer_trace_fct(); // display buffer fct called trace_info.trace_filter = TRUE; // avoid too much traces displayed } } break; case NO_MCU_DSP_MISMATCH: { sprintf (str,">!COM %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7] & 0xffff); L1_send_trace_cpy(str); } break; case L1S_ABORT: { sprintf (str,"ABORT %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7] & 0xffff); L1_send_trace_cpy(str); } break; /* * FreeCalypso TCS211 reconstruction: removing the following * DSP trace enable/disable traces in order to pass compilation. */ #if 0 //(MELODY_E2 || L1_MP3 || L1_AAC || L1_DYN_DSP_DWNLD) case DSP_TRACE_DISABLE: { sprintf (str,"\n\r****DSP-TRACE = Disabled %ld ****\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case DSP_TRACE_ENABLE: { sprintf (str,"\n\r****DSP-TRACE = Enabled %ld ****\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif /* * FreeCalypso TCS211 reconstruction: removing the following stanza * in order to pass compilation. */ #if 0 case PWMGT_FAIL_SLEEP: { #if (CODE_VERSION!= SIMULATION) /* Need to be aligned with defintions in l1_pwmgr.h */ char *array_periph_string[]={"uart","usb","usim","i2c","lcd","cam","blght","madc","madcas","bci"}; char *array_application_string[]={"BTstack"}; char *array_osload_string[]={"osload","hwtimer","mintimegauging"}; char **ptr = NULL; if (((T_TRACE_INFO *)(msg->SigP))->tab[1] != FAIL_SLEEP_L1SYNCH) { if (((T_TRACE_INFO *)(msg->SigP))->tab[1] == FAIL_SLEEP_OSTIMERGAUGE) { ptr = array_osload_string; } if ( (((T_TRACE_INFO *)(msg->SigP))->tab[1] == FAIL_SLEEP_PERIPH_CHECK) || (((T_TRACE_INFO *)(msg->SigP))->tab[1] == FAIL_SLEEP_PERIPH_SLEEP)) { ptr = array_periph_string; if((((T_TRACE_INFO *)(msg->SigP))->tab[2] >= L1_PWMGR_APP_OFFSET)){ (((T_TRACE_INFO *)(msg->SigP))->tab[2]) = (((T_TRACE_INFO *)(msg->SigP))->tab[2]) - L1_PWMGR_APP_OFFSET; ptr = array_application_string; } } if(ptr != NULL) { sprintf (str," FSL: %ld %d %s %d\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ptr[(((T_TRACE_INFO *)(msg->SigP))->tab[2])], ((T_TRACE_INFO *)(msg->SigP))->tab[3]); } } else { /* tab[2] and tab[3] are invalid if called from L1S */ sprintf (str," FSL: %ld L1S\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); } L1_send_trace_cpy(str); #endif //NO SIMULATION } break; #endif case TRACE_SLEEP: { // trace special events -> usefulf for debug char *array_special_cases[]={"", "ASYNC_0", "SLEEP_0"}; UWORD8 index = 0; if (((T_TRACE_INFO *)(msg->SigP))->tab[3] == WAKEUP_ASYNCHRONOUS_ULPD_0) index = 1; else if ( ((T_TRACE_INFO *)(msg->SigP))->tab[3] == WAKEUP_ASYNCHRONOUS_SLEEP_DURATION_0) index = 2; else index = 0; if (((T_TRACE_INFO *)(msg->SigP))->tab[2] == CLOCK_STOP) // deep sleep trace { sprintf (str," deep_sleep: %ld %ld %d %d %s\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[3], int_id, array_special_cases[index]); } else // big sleep { char *array_string[]={"undefined","light on","uart","sim","gauging","sleep mode","DSP","BT","charging"}; sprintf (str," big sleep: %ld %ld %d %d (cause:%s) %s\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[3], int_id, array_string[((T_TRACE_INFO *)(msg->SigP))->tab[4]], array_special_cases[index]); } int_id = 0; L1_send_trace_cpy(str); } break; case TRACE_GAUGING: { if (trace_info.reset_gauging_algo == TRUE) { sprintf (str," reset gauging algo\n\r"); L1_send_trace_cpy(str); trace_info.reset_gauging_algo = FALSE; } sprintf (str," gauging %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0]); if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_GAUGING) { sprintf (str," gauging %ld\n\r GAUGE: State =%ld, LF=%ld, HF=%ld, root=%ld, frac=%ld\n", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5]); } L1_send_trace_cpy(str); } break; #if (D_ERROR_STATUS_TRACE_ENABLE) case L1S_D_ERROR_STATUS: { // trace the d_error_status word with the correct mask applied sprintf (str,"> DSP %ld %ld %xh %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3]); L1_send_trace_cpy(str); } break; #endif //(D_ERROR_STATUS_TRACE_ENABLE) #if L1_GPRS case L1S_PACKET_TRANSFER: { sprintf (str,"PDTCH %ld %lx\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; case RLC_UL_PARAM: { sprintf (str,"RLC_U %ld %ld %ld %ld %lx %lx %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6]); L1_send_trace_cpy(str); } break; case RLC_DL_PARAM: { sprintf (str,"RLC_D %ld %ld %lx %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5]); L1_send_trace_cpy(str); } break; case FORBIDDEN_UPLINK: { sprintf (str,"> WARNING: UL allocated while no TA\n\r"); L1_send_trace_cpy(str); } break; case DL_PTCCH: { // PTCCH value if(!((T_TRACE_INFO *)(msg->SigP))->tab[0]) { sprintf (str,"-> PTCCH %d %d %d %d (%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d)\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], //crc ((T_TRACE_INFO *)(msg->SigP))->tab[1], //ordered_ta ((T_TRACE_INFO *)(msg->SigP))->tab[2], //ta_index ((T_TRACE_INFO *)(msg->SigP))->tab[3], //timeslot ((T_TRACE_INFO *)(msg->SigP))->tab[4] >> 0x10 & 0xFF,//TA values ((T_TRACE_INFO *)(msg->SigP))->tab[4] >> 0x18 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[4] & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[4] >> 0x08 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[5] >> 0x10 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[5] >> 0x18 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[5] & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[5] >> 0x08 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[6] >> 0x10 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[6] >> 0x18 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[6] & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[6] >> 0x08 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[7] >> 0x10 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[7] >> 0x18 & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[7] & 0xFF, ((T_TRACE_INFO *)(msg->SigP))->tab[7] >> 0x08 & 0xFF); } else sprintf(str,"-> PTCCH %d %d %d %d (%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d)\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], // in case crc has occurred all other values are obsolete -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); L1_send_trace_cpy(str); } break; case PTCCH_DISABLED: { sprintf (str,"> WARNING: PTCCH disabled by L1S\n\r"); L1_send_trace_cpy(str); } break; #if (RLC_DL_BLOCK_STAT) case L1S_RLC_STAT: { sprintf (str,"RLC STAT : cs typ=%d nb frm=%ld nb bad frm=%ld nb cs1 frm=%ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3]); L1_send_trace_cpy(str); } break; #endif //(RLC_DL_BLOCK_STAT) #endif // L1_GPRS #if (TRACE_TYPE == 4) case DYN_TRACE_CHANGE: { sprintf (str,"\n\r>> L1 TRACE CONFIG = 0x%lx <<\n\r", trace_info.current_config->l1_dyn_trace); L1_send_trace_cpy(str); } break; #if (OP_L1_STANDALONE == 0) case DYN_TRACE_DEBUG: { // the message depends on the message type included in this message: switch (((T_TRACE_INFO *)(msg->SigP))->tab[0]) { // common to all: // ((T_TRACE_INFO *)(msg->SigP))->tab[7] contains the absolute fn case DYN_TRACE_1: { // trace when we override the sti present information sprintf (str," >> STI discarded\n\r"); break; } default: { sprintf (str,"Default: %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7]); break; } } L1_send_trace_cpy(str); } break; #endif // #if (OP_L1_STANDALONE == 0) #endif // #if (TRACE_TYPE == 4) #if (DEBUG_DEDIC_TCH_BLOCK_STAT == 1) case DEDIC_TCH_BLOCK_STAT: { sprintf (str,"DD_BL %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2]); L1_send_trace_cpy(str); } break; #endif //(DEBUG_DEDIC_TCH_BLOCK_STAT == 1) #if (AMR == 1) case TRACE_RATSCCH: { // tab[1] contains a bitmap of the AMR parameters updated UWORD16 amr_change_bitmap=((T_TRACE_INFO *)(msg->SigP))->tab[1]; char modified[2]={' ','*'}; sprintf(str,"RAT_I %ld acs%c 0x%02X,icm%c%d,cmip%c%d,thr1%c%02d,thr2%c%02d,thr3%c%02d,hyst1%c%02d,hyst2%c%02d,hyst3%c%02d\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_ACS))>>C_AMR_CHANGE_ACS], l1a_l1s_com.dedic_set.aset->amr_configuration.active_codec_set, modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_ICM))>>C_AMR_CHANGE_ICM], l1a_l1s_com.dedic_set.aset->amr_configuration.initial_codec_mode, modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_CMIP))>>C_AMR_CHANGE_CMIP], l1a_l1s_com.dedic_set.aset->cmip, modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_THR1))>>C_AMR_CHANGE_THR1], l1a_l1s_com.dedic_set.aset->amr_configuration.threshold[0], modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_THR2))>>C_AMR_CHANGE_THR2], l1a_l1s_com.dedic_set.aset->amr_configuration.threshold[1], modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_THR3))>>C_AMR_CHANGE_THR3], l1a_l1s_com.dedic_set.aset->amr_configuration.threshold[2], modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_HYST1))>>C_AMR_CHANGE_HYST1], l1a_l1s_com.dedic_set.aset->amr_configuration.hysteresis[0], modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_HYST2))>>C_AMR_CHANGE_HYST2], l1a_l1s_com.dedic_set.aset->amr_configuration.hysteresis[1], modified[(amr_change_bitmap & (1<<C_AMR_CHANGE_HYST3))>>C_AMR_CHANGE_HYST3], l1a_l1s_com.dedic_set.aset->amr_configuration.hysteresis[2]); L1_send_trace_cpy(str); } break; #endif /* FreeCalypso TCS211 reconstruction: IQ_LOW undefined */ #if 0 case IQ_LOW: { sprintf(str,"Warning : IQ LOW %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1]); L1_send_trace_cpy(str); } break; #endif default: { sprintf (str,"DEB_I %ld %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->debug_code, ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7]); L1_send_trace_cpy(str); } break; } // switch(debug_code) } // case TRACE_INFO: break; } // End switch (SignalCode) /***********************************************************************/ /* L1S CPU load */ /***********************************************************************/ if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_CPU_LOAD) { if(max_cpu_flag) { sprintf(str,"> CPU %ld %d\n\r", fn_max_cpu % 42432, max_cpu); L1_send_trace_cpy(str); max_cpu_flag = 0; } } #if 0 /* FreeCalypso: feature not present in our chipset */ /***********************************************************************/ /* DSP CPU load */ /***********************************************************************/ if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_DSP_CPU_LOAD) { if(l1_dsp_cpu_load_trace_flag) { sprintf(str,"DSP_CPU_T0:%ld T1:%ld T2:%ld T3:%ld I:%ld \n\r", dsp_max_cpu_load_trace_array[0], dsp_max_cpu_load_trace_array[1], dsp_max_cpu_load_trace_array[2], dsp_max_cpu_load_trace_array[3], dsp_max_cpu_load_idle_frame); L1_send_trace_cpy(str); dsp_max_cpu_load_trace_array[0] = 0L; dsp_max_cpu_load_trace_array[1] = 0L; dsp_max_cpu_load_trace_array[2] = 0L; dsp_max_cpu_load_trace_array[3] = 0L; dsp_max_cpu_load_idle_frame = 0L; l1_dsp_cpu_load_trace_flag = 0; } } #endif /***********************************************************************/ /* L1A messages */ /***********************************************************************/ if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1A_MESSAGES) { // Trace message content... //========================= switch(msg->SignalCode) { /********************************************************************************/ /* CIRCUIT SWITCHED */ /********************************************************************************/ ///////////////////////////////////////// // Message to set the right radio band // ///////////////////////////////////////// case MPHC_INIT_L1_REQ: { #if (L1_FF_MULTIBAND == 0) sprintf (str, "BAND_R %d\n\r",((T_MPHC_INIT_L1_REQ *)(msg->SigP))-> radio_band_config); #else sprintf(str,"BAND_R"); #endif /*#if (L1_FF_MULTIBAND == 1)*/ L1_send_trace_cpy(str); } break; case MPHC_INIT_L1_CON: { #if (L1_FF_MULTIBAND == 0) sprintf (str, "BAND_C \n\r"); #else UWORD16 n = 0; UWORD8 i = 0; n = sprintf(str, "BAND_C %ld", (l1s.actual_time.fn)); for(i = 0; i < NB_MAX_SUPPORTED_BANDS; i ++) { n += sprintf (str + n, "%d %d\n", ((T_MPHC_INIT_L1_CON *)(msg->SigP))->multiband_power_class[i].radio_band, ((T_MPHC_INIT_L1_CON *)(msg->SigP))->multiband_power_class[i].power_class ); } #endif L1_send_trace_cpy(str); } break; //////////////////////////// // Serving Cell selection // //////////////////////////// case MPHC_NEW_SCELL_REQ: { sprintf(str,"CEL_R %ld %d %ld %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NEW_SCELL_REQ *)(msg->SigP))->radio_freq, ((T_MPHC_NEW_SCELL_REQ *)(msg->SigP))->fn_offset, ((T_MPHC_NEW_SCELL_REQ *)(msg->SigP))->time_alignmt, ((T_MPHC_NEW_SCELL_REQ *)(msg->SigP))->bsic); L1_send_trace_cpy(str); } break; ////////////////////////////// // Neighbor cell monitoring // ////////////////////////////// case MPHC_NETWORK_LOST_IND: { sprintf(str,"LOS_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Idle mode neighbor cell synchronization case MPHC_NETWORK_SYNC_REQ: { sprintf(str,"NET_R %ld %d %ld %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NETWORK_SYNC_REQ *)(msg->SigP))->radio_freq, ((T_MPHC_NETWORK_SYNC_REQ *)(msg->SigP))->fn_offset, ((T_MPHC_NETWORK_SYNC_REQ *)(msg->SigP))->time_alignmt, ((T_MPHC_NETWORK_SYNC_REQ *)(msg->SigP))->timing_validity, ((T_MPHC_NETWORK_SYNC_REQ *)(msg->SigP))->search_mode); L1_send_trace_cpy(str); } break; case MPHC_STOP_NETWORK_SYNC_REQ: { sprintf(str,"NET_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MPHC_NCELL_SYNC_REQ: { sprintf(str,"NSY_R %ld %d %ld %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_SYNC_REQ *)(msg->SigP))->radio_freq, ((T_MPHC_NCELL_SYNC_REQ *)(msg->SigP))->fn_offset, ((T_MPHC_NCELL_SYNC_REQ *)(msg->SigP))->time_alignmt, ((T_MPHC_NCELL_SYNC_REQ *)(msg->SigP))->timing_validity); L1_send_trace_cpy(str); } break; #if (L1_12NEIGH ==1) case MPHC_NCELL_LIST_SYNC_REQ: { UWORD8 i; pgoset++; sprintf(str,"NSYL_R %ld %d %ld\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->eotd, ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->list_size); for (i=0; i < ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->list_size; i++) { sprintf(str2,"(%ld %ld %ld %ld)", ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->ncell_list[i].timing_validity, ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->ncell_list[i].time_alignmt, ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->ncell_list[i].fn_offset, ((T_MPHC_NCELL_LIST_SYNC_REQ *)(msg->SigP))->ncell_list[i].radio_freq); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; #endif //(L1_12NEIGH ==1) case MPHC_STOP_NCELL_SYNC_REQ: { UWORD8 i; sprintf(str,"NSY_S %ld", l1s.actual_time.fn_mod42432); // New sprintf(str2," %d", ((T_MPHC_STOP_NCELL_SYNC_REQ *)(msg->SigP))->radio_freq_array_size); strcat(str, str2); for (i=0; i < ((T_MPHC_STOP_NCELL_SYNC_REQ *)(msg->SigP))->radio_freq_array_size; i++) { sprintf(str2," %d", ((T_MPHC_STOP_NCELL_SYNC_REQ *)(msg->SigP))->radio_freq_array[i]); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; // Dedicated mode neigbor cell synchronization case MPHC_NCELL_FB_SB_READ: { sprintf(str,"FB_R %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_FB_SB_READ *)(msg->SigP))->radio_freq); L1_send_trace_cpy(str); } break; case MPHC_NCELL_SB_READ: { sprintf(str,"SB_R %ld %d %ld %ld\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_SB_READ *)(msg->SigP))->radio_freq, ((T_MPHC_NCELL_SB_READ *)(msg->SigP))->fn_offset, ((T_MPHC_NCELL_SB_READ *)(msg->SigP))->time_alignmt); L1_send_trace_cpy(str); } break; case L1C_FB_INFO: { #if(L1_FF_MULTIBAND == 1) UWORD16 operative_radio_freq; operative_radio_freq = l1_multiband_radio_freq_convert_into_operative_radio_freq(((T_L1C_FB_INFO*)(msg->SigP))->radio_freq); #endif sprintf(str,"FB_I %ld %d %d %ld %ld %ld %ld %d %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1C_FB_INFO*)(msg->SigP))->fb_flag, ((T_L1C_FB_INFO*)(msg->SigP))->radio_freq, ((T_L1C_FB_INFO*)(msg->SigP))->pm, ((T_L1C_FB_INFO*)(msg->SigP))->toa, ((T_L1C_FB_INFO*)(msg->SigP))->angle, ((T_L1C_FB_INFO*)(msg->SigP))->snr, #if(L1_FF_MULTIBAND == 0) l1a_l1s_com.last_input_level[((T_L1C_FB_INFO*)(msg->SigP))->radio_freq - l1_config.std.radio_freq_index_offset].input_level, #else // L1_FF_MULTIBAND l1a_l1s_com.last_input_level[operative_radio_freq].input_level, #endif // L1_FF_MULTIBAND l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; case L1C_SB_INFO: { #if(L1_FF_MULTIBAND == 1) UWORD16 operative_radio_freq; operative_radio_freq = l1_multiband_radio_freq_convert_into_operative_radio_freq(((T_L1C_SB_INFO*)(msg->SigP))->radio_freq); #endif sprintf(str,"SB_I %ld %d %d %d %ld %ld %ld %ld %ld %ld %d %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1C_SB_INFO *)(msg->SigP))->sb_flag, ((T_L1C_SB_INFO *)(msg->SigP))->radio_freq, ((T_L1C_SB_INFO *)(msg->SigP))->bsic, ((T_L1C_SB_INFO *)(msg->SigP))->fn_offset, ((T_L1C_SB_INFO *)(msg->SigP))->time_alignmt, ((T_L1C_SB_INFO *)(msg->SigP))->pm, ((T_L1C_SB_INFO *)(msg->SigP))->toa, ((T_L1C_SB_INFO *)(msg->SigP))->angle, ((T_L1C_SB_INFO *)(msg->SigP))->snr, #if(L1_FF_MULTIBAND == 0) l1a_l1s_com.last_input_level[((T_L1C_SB_INFO *)(msg->SigP))->radio_freq - l1_config.std.radio_freq_index_offset].input_level, #else l1a_l1s_com.last_input_level[operative_radio_freq].input_level, #endif l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; #if ((REL99 == 1) && (FF_BHO == 1)) case L1C_FBSB_INFO: { sprintf(str,"FBSB_I %ld %d %d %d %ld %ld %ld %ld %ld %ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1C_FBSB_INFO *)(msg->SigP))->fb_flag, ((T_L1C_FBSB_INFO *)(msg->SigP))->sb_flag, ((T_L1C_FBSB_INFO *)(msg->SigP))->bsic, ((T_L1C_FBSB_INFO *)(msg->SigP))->fn_offset, ((T_L1C_FBSB_INFO *)(msg->SigP))->time_alignmt, ((T_L1C_FBSB_INFO *)(msg->SigP))->pm, ((T_L1C_FBSB_INFO *)(msg->SigP))->toa, ((T_L1C_FBSB_INFO *)(msg->SigP))->angle, ((T_L1C_FBSB_INFO *)(msg->SigP))->snr ); L1_send_trace_cpy(str); } break; #endif case L1C_SBCONF_INFO: { #if(L1_FF_MULTIBAND == 1) UWORD16 operative_radio_freq; operative_radio_freq = l1_multiband_radio_freq_convert_into_operative_radio_freq(((T_L1C_SB_INFO *)(msg->SigP))->radio_freq); #endif sprintf(str,"SBC_I %ld %d %d %d %ld %ld %ld %ld %ld %ld %d %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1C_SB_INFO *)(msg->SigP))->sb_flag, ((T_L1C_SB_INFO *)(msg->SigP))->radio_freq, ((T_L1C_SB_INFO *)(msg->SigP))->bsic, ((T_L1C_SB_INFO *)(msg->SigP))->fn_offset, ((T_L1C_SB_INFO *)(msg->SigP))->time_alignmt, ((T_L1C_SB_INFO *)(msg->SigP))->pm, ((T_L1C_SB_INFO *)(msg->SigP))->toa, ((T_L1C_SB_INFO *)(msg->SigP))->angle, ((T_L1C_SB_INFO *)(msg->SigP))->snr, #if(L1_FF_MULTIBAND == 0) l1a_l1s_com.last_input_level[((T_L1C_SB_INFO *)(msg->SigP))->radio_freq - l1_config.std.radio_freq_index_offset].input_level, #else l1a_l1s_com.last_input_level[operative_radio_freq].input_level, #endif l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; case MPHC_NETWORK_SYNC_IND: { sprintf(str,"NET_I %ld %d %d %ld %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NETWORK_SYNC_IND*)(msg->SigP))->sb_flag, ((T_MPHC_NETWORK_SYNC_IND*)(msg->SigP))->radio_freq, ((T_MPHC_NETWORK_SYNC_IND*)(msg->SigP))->fn_offset, ((T_MPHC_NETWORK_SYNC_IND*)(msg->SigP))->time_alignmt, ((T_MPHC_NETWORK_SYNC_IND*)(msg->SigP))->bsic); L1_send_trace_cpy(str); } break; case MPHC_NCELL_SYNC_IND: { /* * Bug in TCS211, fixed in LoCosto, has to be restored for * binary-matching source reconstruction: TCS211 version always * printed all fields even without L1_EOTD. */ #if (L1_EOTD) sprintf(str,"NSY_I %ld %d %d %ld %ld %d %d %ld %ld %ld %ld %ld %ld %ld %ld\n\r", #else sprintf(str,"NSY_I %ld %d %d %ld %ld %d %d\n\r", #endif l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->sb_flag, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->radio_freq, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->fn_offset, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->time_alignmt, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->bsic, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->neigh_id #if (L1_EOTD) ,l1a_l1s_com.nsync.current_list_size, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->d_eotd_first, pgoset, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->fn_sb_neigh, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->fn_in_SB, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->timetag, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->delta_fn, ((T_MPHC_NCELL_SYNC_IND*)(msg->SigP))->delta_qbit #endif //(L1_EOTD) ); L1_send_trace_cpy(str); } break; // Neighbor cell BCCH reading case MPHC_NCELL_BCCH_REQ: { #if L1_GPRS sprintf(str,"BN_R %ld %d %ld %ld %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->radio_freq, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->fn_offset, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->time_alignmt, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->tsc, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->bcch_blks_req, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->gprs_priority); #else sprintf(str,"BN_R %ld %d %ld %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->radio_freq, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->fn_offset, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->time_alignmt, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->tsc, ((T_MPHC_NCELL_BCCH_REQ *)(msg->SigP))->bcch_blks_req); #endif //L1_GPRS L1_send_trace_cpy(str); } break; case MPHC_STOP_NCELL_BCCH_REQ: { UWORD8 i; sprintf(str,"BN_S %ld", l1s.actual_time.fn_mod42432); for (i=0; i < ((T_MPHC_STOP_NCELL_BCCH_REQ *)(msg->SigP))->radio_freq_array_size; i++) { sprintf(str2," %d", ((T_MPHC_STOP_NCELL_BCCH_REQ *)(msg->SigP))->radio_freq_array[i]); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; case L1C_BCCHN_INFO: { #if(L1_FF_MULTIBAND == 1) UWORD16 operative_radio_freq; operative_radio_freq = l1_multiband_radio_freq_convert_into_operative_radio_freq(((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq); #endif sprintf(str,"BN_I %ld %d %d %d %ld %d\n\r", ((T_MPHC_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHC_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq, #if(L1_FF_MULTIBAND == 0) l1a_l1s_com.last_input_level[((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq - l1_config.std.radio_freq_index_offset].input_level, #else l1a_l1s_com.last_input_level[operative_radio_freq].input_level, #endif l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; /////////////////////////////////////// // Serving cell normal burst reading // /////////////////////////////////////// // CCCH reading case MPHC_START_CCCH_REQ: { trace_info.rxlev_req_count = 0; sprintf(str,"CCH_R %ld %d %d %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->bs_pa_mfrms, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->bs_ag_blks_res, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->bcch_combined, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->ccch_group, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->page_group, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->page_block_index, ((T_MPHC_START_CCCH_REQ *)(msg->SigP))->page_mode); L1_send_trace_cpy(str); } break; case MPHC_STOP_CCCH_REQ: { sprintf(str,"CCH_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1C_NP_INFO: { #if (FF_L1_FAST_DECODING == 1) sprintf(str,"NP_I %ld %d %d %d %ld %d %d %d %d %d %d %c\n\r", #else sprintf(str,"NP_I %ld %d %d %d %ld %d %d %d %d %d %c\n\r", #endif ((T_MPHC_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHC_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc, #if (FF_L1_FAST_DECODING == 1) l1a_l1s_com.last_fast_decoding, #endif toa_tab[0],toa_tab[1],toa_tab[2], toa_tab[3], trace_info.l1_memorize_error); L1_send_trace_cpy(str); } break; case L1C_EP_INFO: { sprintf(str,"EP_I %ld %d %d %d %ld %d\n\r", ((T_MPHC_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHC_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; case L1C_ALLC_INFO: { sprintf(str,"CC_I %ld %d %d %d %ld %d\n\r", ((T_MPHC_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHC_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; // BCCH reading case MPHC_SCELL_NBCCH_REQ: { UWORD8 i; sprintf(str,"NBS_R %ld ", l1s.actual_time.fn_mod42432); for (i = 0; i < ((T_MPHC_SCELL_EBCCH_REQ *)(msg->SigP))->schedule_array_size; i++) { sprintf(str2,"(%d %d)", ((T_MPHC_SCELL_EBCCH_REQ *)(msg->SigP))->schedule_array[i].modulus, ((T_MPHC_SCELL_EBCCH_REQ *)(msg->SigP))->schedule_array[i].relative_position); strcat(str, str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; case MPHC_SCELL_EBCCH_REQ: { UWORD8 i; sprintf(str,"EBS_R %ld ", l1s.actual_time.fn_mod42432); for (i = 0; i < ((T_MPHC_SCELL_EBCCH_REQ *)(msg->SigP))->schedule_array_size; i++) { sprintf(str2,"(%d %d)", ((T_MPHC_SCELL_EBCCH_REQ *)(msg->SigP))->schedule_array[i].modulus, ((T_MPHC_SCELL_EBCCH_REQ *)(msg->SigP))->schedule_array[i].relative_position); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; case MPHC_STOP_SCELL_BCCH_REQ: { sprintf(str,"BS_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1C_BCCHS_INFO: { #if (FF_L1_FAST_DECODING == 1) sprintf(str,"BS_I %ld %d %d %d %ld %d %d\n\r", #else sprintf(str,"BS_I %ld %d %d %d %ld %d\n\r", #endif ((T_MPHC_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHC_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc #if (FF_L1_FAST_DECODING == 1) ,l1a_l1s_com.last_fast_decoding #endif ); L1_send_trace_cpy(str); } break; ////////// // CBCH // ////////// case MPHC_CONFIG_CBCH_REQ: { sprintf(str,"CBC_R %ld %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CONFIG_CBCH_REQ *)(msg->SigP))->cbch_desc.chan_sel.h, ((T_MPHC_CONFIG_CBCH_REQ *)(msg->SigP))->cbch_desc.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHC_CONFIG_CBCH_REQ *)(msg->SigP))->cbch_desc.timeslot_no); L1_send_trace_cpy(str); } break; case MPHC_CBCH_SCHEDULE_REQ: { sprintf(str,"CBS_R %ld %d %d %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CBCH_SCHEDULE_REQ *)(msg->SigP))->extended_cbch, ((T_MPHC_CBCH_SCHEDULE_REQ *)(msg->SigP))->schedule_length, ((T_MPHC_CBCH_SCHEDULE_REQ *)(msg->SigP))->first_block_0, ((T_MPHC_CBCH_SCHEDULE_REQ *)(msg->SigP))->first_block_1); L1_send_trace_cpy(str); } break; case MPHC_CBCH_INFO_REQ: { sprintf(str,"CBI_R %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CBCH_INFO_REQ *)(msg->SigP))->tb_bitmap); L1_send_trace_cpy(str); } break; case MPHC_CBCH_UPDATE_REQ: { sprintf(str,"CBU_R %ld %d %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CBCH_UPDATE_REQ*)(msg->SigP))->extended_cbch, ((T_MPHC_CBCH_UPDATE_REQ*)(msg->SigP))->first_block_0, ((T_MPHC_CBCH_UPDATE_REQ*)(msg->SigP))->first_block_1); L1_send_trace_cpy(str); } break; case L1C_CB_INFO: { sprintf(str,"CB_I %ld %d %d %d %ld %d\n\r", ((T_MPHC_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHC_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHC_DATA_IND *)(msg->SigP))->radio_freq, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; // Stop CBCH case MPHC_STOP_CBCH_REQ: { sprintf(str,"ECB_S %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_STOP_CBCH_REQ*)(msg->SigP))->normal_cbch, ((T_MPHC_STOP_CBCH_REQ*)(msg->SigP))->extended_cbch); L1_send_trace_cpy(str); } break; case MPHC_STOP_CBCH_CON: { sprintf(str,"ECB_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; /////////////////// // Random Access // /////////////////// case MPHC_RA_REQ: { sprintf(str,"RA_R %ld %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_RA_REQ *)(msg->SigP))->txpwr, ((T_MPHC_RA_REQ *)(msg->SigP))->rand, ((T_MPHC_RA_REQ *)(msg->SigP))->channel_request #if (L1_FF_MULTIBAND == 0) ,((T_MPHC_RA_REQ *)(msg->SigP))->powerclass_band1, ((T_MPHC_RA_REQ *)(msg->SigP))->powerclass_band2 #endif ); L1_send_trace_cpy(str); } break; case MPHC_STOP_RA_REQ: { sprintf(str,"RA_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1C_RA_DONE: { sprintf(str,"RA_C %ld\n\r", ((T_MPHC_RA_CON *)(msg->SigP))->fn % 42432); L1_send_trace_cpy(str); } break; ///////////////////////////// // Dedicated mode channels // ///////////////////////////// // Immediate assignment case MPHC_IMMED_ASSIGN_REQ: { sprintf(str,"\n\rIAS_R %ld %d %d %d %d %d %d %d %d %ld %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->channel_desc.chan_sel.h, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->channel_desc.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->channel_desc.channel_type, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->channel_desc.subchannel, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->channel_desc.timeslot_no, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->channel_desc.tsc, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->timing_advance, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->frequency_list.rf_chan_cnt, l1a_decode_starting_time(((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->starting_time), ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->frequency_list_bef_sti.rf_chan_cnt, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->dtx_allowed, ((T_MPHC_IMMED_ASSIGN_REQ *)(msg->SigP))->pwrc); L1_send_trace_cpy(str); // a message was received correctly from the Network, it means the system behavior is nice // and so we can allow more trace on a PM/COM error. trace_info.trace_filter = FALSE; } break; case MPHC_IMMED_ASSIGN_CON: { sprintf(str,"IAS_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Channel assignment case MPHC_CHANNEL_ASSIGN_REQ: { #if (AMR == 1) sprintf(str,"\n\rCAS_R %ld %d %d %d %d %d %d %d %d %d %ld %d %d %d %d %1d %1d %1d %2x %2d %2d %2d %2d %2d %2d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.chan_sel.h, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.channel_type, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.subchannel, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.timeslot_no, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.tsc, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_mode_1, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->txpwr, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->frequency_list.rf_chan_cnt, l1a_decode_starting_time(((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->starting_time), ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->frequency_list_bef_sti.rf_chan_cnt, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->cipher_mode, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->a5_algorithm, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->dtx_allowed, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.noise_suppression_bit, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.initial_codec_mode_indicator, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.initial_codec_mode, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.active_codec_set, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.threshold[0], ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.threshold[1], ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.threshold[2], ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.hysteresis[0], ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.hysteresis[1], ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->amr_configuration.hysteresis[2]); #else sprintf(str,"\n\rCAS_R %ld %d %d %d %d %d %d %d %d %d %ld %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.chan_sel.h, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.channel_type, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.subchannel, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.timeslot_no, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_desc_1.tsc, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->channel_mode_1, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->txpwr, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->frequency_list.rf_chan_cnt, l1a_decode_starting_time(((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->starting_time), ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->frequency_list_bef_sti.rf_chan_cnt, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->cipher_mode, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->a5_algorithm, ((T_MPHC_CHANNEL_ASSIGN_REQ *)(msg->SigP))->dtx_allowed); #endif //(AMR == 1) L1_send_trace_cpy(str); } break; case MPHC_CHANNEL_ASSIGN_CON: { sprintf(str,"CAS_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // SACCH reception case L1C_SACCH_INFO: { #if FF_REPEATED_SACCH sprintf(str,"SA_I %ld %d %d (%d %d) %ld %d %d %d %d %d %d %d\n\r", #else sprintf(str,"SA_I %ld %d %d (%d %d) %ld %d %d\n\r", #endif /* FF_REPEATED_SACCH */ l1s.actual_time.fn_mod42432, ((T_PH_DATA_IND *)(msg->SigP))->error_cause, ((T_PH_DATA_IND *)(msg->SigP))->rf_chan_num, l1a_l1s_com.Scell_info.traffic_meas_beacon.input_level, l1a_l1s_com.Scell_info.traffic_meas.input_level, l1s.tpu_offset, l1s.afc, trace_info.sacch_d_nerr #if FF_REPEATED_SACCH ,trace_info.repeat_sacch.dl_count, trace_info.repeat_sacch.dl_combined_good_count, trace_info.repeat_sacch.srr, trace_info.repeat_sacch.sro, trace_info.repeat_sacch.dl_error_count #endif /* FF_REPEATED_SACCH */ ); L1_send_trace_cpy(str); #if (AUDIO_DEBUG == 1) { char str3[100]; char str4[100]; volatile UWORD16 *p_audio_debug_buffer; p_audio_debug_buffer = (UWORD16 *) (DSP_AUDIO_DEBUG_API_ADDR); sprintf(str3,"AU_DBG D %x %x %x %x %x %x %x %x %x %x %x %x M %x %x %x %x %x\n\r", p_audio_debug_buffer[0], p_audio_debug_buffer[1], p_audio_debug_buffer[2], p_audio_debug_buffer[3], p_audio_debug_buffer[4], p_audio_debug_buffer[5], p_audio_debug_buffer[6], p_audio_debug_buffer[7], p_audio_debug_buffer[8], p_audio_debug_buffer[9], p_audio_debug_buffer[10], p_audio_debug_buffer[11], trace_info.audio_debug_var.vocoder_enable_status, trace_info.audio_debug_var.ul_state, trace_info.audio_debug_var.dl_state, trace_info.audio_debug_var.ul_onoff_counter, trace_info.audio_debug_var.dl_onoff_counter); L1_send_trace_cpy(str3); Trace_l1_audio_regs(); } #endif } break; // Channel modification case MPHC_CHANGE_FREQUENCY: { sprintf(str,"FRQ_R %ld %d %d %d %d %d %d %d %ld\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->channel_desc.chan_sel.h, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->channel_desc.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->channel_desc.channel_type, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->channel_desc.subchannel, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->channel_desc.timeslot_no, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->channel_desc.tsc, ((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->frequency_list.rf_chan_cnt, l1a_decode_starting_time(((T_MPHC_CHANGE_FREQUENCY *)(msg->SigP))->starting_time)); L1_send_trace_cpy(str); } break; case L1C_REDEF_DONE: { sprintf(str,"FRQ_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MPHC_CHANNEL_MODE_MODIFY_REQ: { #if (AMR == 1) sprintf(str,"MOD_R %ld %d %d %1d %1d %1d %2x %2d %2d %2d %2d %2d %2d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->subchannel, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->channel_mode, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.noise_suppression_bit, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.initial_codec_mode_indicator, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.initial_codec_mode, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.active_codec_set, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.threshold[0], ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.threshold[1], ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.threshold[2], ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.hysteresis[0], ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.hysteresis[1], ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->amr_configuration.hysteresis[2]); #else sprintf(str,"MOD_R %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->subchannel, ((T_MPHC_CHANNEL_MODE_MODIFY_REQ *)(msg->SigP))->channel_mode); #endif //(AMR == 1) L1_send_trace_cpy(str); } break; // Ciphering case MPHC_SET_CIPHERING_REQ: { sprintf(str,"CIP_R %ld %d %d %d %d %d %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->cipher_mode, ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->a5_algorithm, ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[0], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[1], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[2], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[3], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[4], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[5], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[6], ((T_MPHC_SET_CIPHERING_REQ *)(msg->SigP))->new_ciph_param.A[7]); L1_send_trace_cpy(str); } break; // Generic stop case MPHC_STOP_DEDICATED_REQ: { #if (FF_REPEATED_DL_FACCH == 1) // float fer_facch = 100* (1- ((trace_info.facch_dl_good_block_reported / trace_info.facch_dl_count_all)<<1)); unsigned int x1= (100*(trace_info.facch_dl_count_all >> 1)) - (100*trace_info.facch_dl_good_block_reported); unsigned int y1 = trace_info.facch_dl_count_all >> 1; unsigned int fer_facch = (x1+(y1-1))/y1; #endif /*(FF_REPEATED_DL_FACCH == 1)*/ #if (FF_REPEATED_SACCH ==1) unsigned int errors = trace_info.repeat_sacch.dl_error_count; unsigned int fer_sacch1 = (errors *100)/trace_info.repeat_sacch.dl_count; #if 0 if ((trace_info.repeat_sacch.dl_count>> 1) > trace_info.repeat_sacch.dl_good_norep ) x = 100*(trace_info.repeat_sacch.dl_count >> 1) - 100*(trace_info.repeat_sacch.dl_good_norep); else x = 100*(trace_info.repeat_sacch.dl_count) - 100*(trace_info.repeat_sacch.dl_good_norep); dl_good_norep = (trace_info.repeat_sacch.dl_good_norep); y = (trace_info.repeat_sacch.dl_count / 2); fer_sacch = (x+(y-1))/y; #endif #endif/* FF_REPEATED_SACCH */ #if (FF_REPEATED_SACCH == 1) ||(FF_REPEATED_DL_FACCH == 1) // sprintf(str,"DDS_R %ld (dl_good_norep : %u ) (x = frame errors : %u ) (y = dl_count/2 = %u) FER_S(%u) \n\r", // sprintf(str,"DDS_R %ld|%u|%u|%u|%u|\n\r", l1s.actual_time.fn_mod42432,dl_good_norep,x,y,fer_sacch); sprintf(str,"DDS_R %ld|%u|%u|%u |%u | %u \n\r", l1s.actual_time.fn_mod42432,fer_sacch1 #if (FF_REPEATED_DL_FACCH == 1) , fer_facch, trace_info.facch_dl_count_all, trace_info.facch_dl_good_block_reported #endif ); #else sprintf(str,"DDS_R %ld\n\r", l1s.actual_time.fn_mod42432); #endif/* FF_REPEATED_SACCH */ L1_send_trace_cpy(str); } break; case MPHC_STOP_DEDICATED_CON: { sprintf(str,"DDS_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; ////////////// // HANDOVER // ////////////// // Asynchronous handover request case MPHC_ASYNC_HO_REQ: { #define msg_aho ((T_MPHC_ASYNC_HO_REQ *)(msg->SigP)) #if (AMR == 1) sprintf(str,"AHO_R %ld %d %d %d %d %d %d %d %d %d %d %d %ld %d %d %d %d %d %d %ld %ld\n\r%1d %1d %1d %2x %2d %2d %2d %2d %2d %2d\n\r", l1s.actual_time.fn_mod42432, msg_aho->handover_command.cell_description.ncc, msg_aho->handover_command.cell_description.bcc, msg_aho->handover_command.cell_description.bcch_carrier, msg_aho->handover_command.channel_desc_1.chan_sel.h, msg_aho->handover_command.channel_desc_1.chan_sel.rf_channel.single_rf.radio_freq, msg_aho->handover_command.channel_desc_1.channel_type, msg_aho->handover_command.channel_desc_1.subchannel, msg_aho->handover_command.channel_desc_1.timeslot_no, msg_aho->handover_command.channel_desc_1.tsc, msg_aho->handover_command.channel_mode_1, msg_aho->handover_command.frequency_list.rf_chan_cnt, l1a_decode_starting_time(msg_aho->handover_command.starting_time), msg_aho->handover_command.ho_acc, msg_aho->handover_command.txpwr, msg_aho->handover_command.report_time_diff, msg_aho->handover_command.frequency_list_bef_sti.rf_chan_cnt, msg_aho->handover_command.cipher_mode, msg_aho->handover_command.a5_algorithm, msg_aho->fn_offset, msg_aho->time_alignmt, msg_aho->amr_configuration.noise_suppression_bit, msg_aho->amr_configuration.initial_codec_mode_indicator, msg_aho->amr_configuration.initial_codec_mode, msg_aho->amr_configuration.active_codec_set, msg_aho->amr_configuration.threshold[0], msg_aho->amr_configuration.threshold[1], msg_aho->amr_configuration.threshold[2], msg_aho->amr_configuration.hysteresis[0], msg_aho->amr_configuration.hysteresis[1], msg_aho->amr_configuration.hysteresis[2]) #if ((REL99 == 1) && (FF_BHO == 1)) ,msg_aho->handover_type #endif ; #else sprintf(str,"AHO_R %ld %d %d %d %d %d %d %d %d %d %d %d %ld %d %d %d %d %d %d %ld %ld\n\r", l1s.actual_time.fn_mod42432, msg_aho->handover_command.cell_description.ncc, msg_aho->handover_command.cell_description.bcc, msg_aho->handover_command.cell_description.bcch_carrier, msg_aho->handover_command.channel_desc_1.chan_sel.h, msg_aho->handover_command.channel_desc_1.chan_sel.rf_channel.single_rf.radio_freq, msg_aho->handover_command.channel_desc_1.channel_type, msg_aho->handover_command.channel_desc_1.subchannel, msg_aho->handover_command.channel_desc_1.timeslot_no, msg_aho->handover_command.channel_desc_1.tsc, msg_aho->handover_command.channel_mode_1, msg_aho->handover_command.frequency_list.rf_chan_cnt, l1a_decode_starting_time(msg_aho->handover_command.starting_time), msg_aho->handover_command.ho_acc, msg_aho->handover_command.txpwr, msg_aho->handover_command.report_time_diff, msg_aho->handover_command.frequency_list_bef_sti.rf_chan_cnt, msg_aho->handover_command.cipher_mode, msg_aho->handover_command.a5_algorithm, msg_aho->fn_offset, msg_aho->time_alignmt); #endif //(AMR == 1) L1_send_trace_cpy(str); } break; case MPHC_ASYNC_HO_CON: { sprintf(str,"AHO_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Synchronous handover request case MPHC_SYNC_HO_REQ: case MPHC_PRE_SYNC_HO_REQ: case MPHC_PSEUDO_SYNC_HO_REQ: { #define msg_sho ((T_MPHC_SYNC_HO_REQ *)(msg->SigP)) #if (AMR == 1) sprintf(str,"SHO_R %ld %d %d %d %d %d %d %d %d %d %d %d %ld %d %d %d %d %d %d %ld %ld %1d\n\r%1d %1d %2x %2d %2d %2d %2d %2d %2d\n\r", l1s.actual_time.fn_mod42432, msg_sho->handover_command.cell_description.ncc, msg_sho->handover_command.cell_description.bcc, msg_sho->handover_command.cell_description.bcch_carrier, msg_sho->handover_command.channel_desc_1.chan_sel.h, msg_sho->handover_command.channel_desc_1.chan_sel.rf_channel.single_rf.radio_freq, msg_sho->handover_command.channel_desc_1.channel_type, msg_sho->handover_command.channel_desc_1.subchannel, msg_sho->handover_command.channel_desc_1.timeslot_no, msg_sho->handover_command.channel_desc_1.tsc, msg_sho->handover_command.channel_mode_1, msg_sho->handover_command.frequency_list.rf_chan_cnt, l1a_decode_starting_time(msg_sho->handover_command.starting_time), msg_sho->handover_command.ho_acc, msg_sho->handover_command.txpwr, msg_sho->handover_command.report_time_diff, msg_sho->handover_command.frequency_list_bef_sti.rf_chan_cnt, msg_sho->handover_command.cipher_mode, msg_sho->handover_command.a5_algorithm, msg_sho->fn_offset, msg_sho->time_alignmt, msg_sho->amr_configuration.noise_suppression_bit, msg_sho->amr_configuration.initial_codec_mode_indicator, msg_sho->amr_configuration.initial_codec_mode, msg_sho->amr_configuration.active_codec_set, msg_sho->amr_configuration.threshold[0], msg_sho->amr_configuration.threshold[1], msg_sho->amr_configuration.threshold[2], msg_sho->amr_configuration.hysteresis[0], msg_sho->amr_configuration.hysteresis[1], msg_sho->amr_configuration.hysteresis[2]) #if ((REL99 == 1) && (FF_BHO == 1)) ,msg_aho->handover_type #endif ; #else sprintf(str,"SHO_R %ld %d %d %d %d %d %d %d %d %d %d %d %ld %d %d %d %d %d %d %ld %ld\n\r", l1s.actual_time.fn_mod42432, msg_sho->handover_command.cell_description.ncc, msg_sho->handover_command.cell_description.bcc, msg_sho->handover_command.cell_description.bcch_carrier, msg_sho->handover_command.channel_desc_1.chan_sel.h, msg_sho->handover_command.channel_desc_1.chan_sel.rf_channel.single_rf.radio_freq, msg_sho->handover_command.channel_desc_1.channel_type, msg_sho->handover_command.channel_desc_1.subchannel, msg_sho->handover_command.channel_desc_1.timeslot_no, msg_sho->handover_command.channel_desc_1.tsc, msg_sho->handover_command.channel_mode_1, msg_sho->handover_command.frequency_list.rf_chan_cnt, l1a_decode_starting_time(msg_sho->handover_command.starting_time), msg_sho->handover_command.ho_acc, msg_sho->handover_command.txpwr, msg_sho->handover_command.report_time_diff, msg_sho->handover_command.frequency_list_bef_sti.rf_chan_cnt, msg_sho->handover_command.cipher_mode, msg_sho->handover_command.a5_algorithm, msg_sho->fn_offset, msg_sho->time_alignmt); #endif //(AMR == 1) L1_send_trace_cpy(str); } break; case MPHC_SYNC_HO_CON: case MPHC_PRE_SYNC_HO_CON: { sprintf(str,"SHO_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1C_HANDOVER_FINISHED: { #if ((REL99 == 1) && (FF_BHO == 1)) sprintf(str,"HOF_I %ld %d %ld %ld\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_HANDOVER_FINISHED *)(msg->SigP))->cause, ((T_MPHC_HANDOVER_FINISHED *)(msg->SigP))->fn_offset, ((T_MPHC_HANDOVER_FINISHED *)(msg->SigP))->time_alignment); #else sprintf(str,"HOF_I %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_HANDOVER_FINISHED *)(msg->SigP))->cause); #endif L1_send_trace_cpy(str); } break; case MPHC_TA_FAIL_IND: { sprintf(str, "TAF_I %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Handover failure case MPHC_HANDOVER_FAIL_REQ: { sprintf(str,"HOF_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MPHC_HANDOVER_FAIL_CON: { sprintf(str,"HOF_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; ////////////////// // Measurements // ////////////////// // Cell selection / PLMN selection / Extended measurements case MPHC_RXLEV_REQ: { trace_info.rxlev_req_count ++; sprintf(str,"RXL_R %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_RXLEV_REQ *)(msg->SigP))->power_array_size); L1_send_trace_cpy(str); } break; case MPHC_STOP_RXLEV_REQ: { trace_info.rxlev_req_count = 0; sprintf(str,"RXL_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1C_VALID_MEAS_INFO: { #define MAX_MEAS 10 sprintf(str,"RXL_I %ld %d %d\n\r", l1s.actual_time.fn_mod42432, l1a_l1s_com.full_list_ptr->power_array_size, trace_info.rxlev_req_count); // If it's the 5th MPHC_RXLEV_REQ message received from L3, trace accum_power_result if (trace_info.rxlev_req_count == 5) { UWORD16 i; trace_info.rxlev_req_count = 0; if (l1a_l1s_com.full_list_ptr->power_array_size > MAX_MEAS) { UWORD8 nbmeas = 0; i = 0; // Trace the MAX_MEAS first carriers those measured RXLEV is > 100 while ((i < l1a_l1s_com.full_list_ptr->power_array_size) && (nbmeas < MAX_MEAS)) { if (l1a_l1s_com.full_list_ptr->power_array[i].accum_power_result > 100) { nbmeas ++; sprintf(str2,"(%d %d)", l1a_l1s_com.full_list_ptr->power_array[i].radio_freq, l1a_l1s_com.full_list_ptr->power_array[i].accum_power_result); strcat(str,str2); } i ++; } // End while } else { // Trace all measurements for (i=0;i<l1a_l1s_com.full_list_ptr->power_array_size;i++) { sprintf(str2,"(%d %d)", l1a_l1s_com.full_list_ptr->power_array[i].radio_freq, l1a_l1s_com.full_list_ptr->power_array[i].accum_power_result); strcat(str, str2); } } strcat(str,"\n\r"); } // End if "rxlev_req_count = 5" L1_send_trace_cpy(str); } break; // Idle mode BA list case MPHC_RXLEV_PERIODIC_REQ: { sprintf(str,"IBA_R %ld %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_RXLEV_PERIODIC_REQ *)(msg->SigP))->num_of_chans, ((T_MPHC_RXLEV_PERIODIC_REQ *)(msg->SigP))->ba_id, ((T_MPHC_RXLEV_PERIODIC_REQ *)(msg->SigP))->next_radio_freq_measured); L1_send_trace_cpy(str); } break; case MPHC_STOP_RXLEV_PERIODIC_REQ: { sprintf(str,"IBA_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1C_RXLEV_PERIODIC_DONE: { sprintf(str,"IBA_I %ld %d %d (%d %d)(%d %d)(%d %d)(%d %d)(%d %d)(%d %d)(%d %d)(%d %d)\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->ba_id, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->s_rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[0].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[0].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[1].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[1].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[2].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[2].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[3].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[3].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[4].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[4].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[5].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[5].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[6].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[6].rxlev, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[7].radio_freq_no, ((T_MPHC_RXLEV_PERIODIC_IND *)(msg->SigP))->A[7].rxlev); L1_send_trace_cpy(str); } break; // Dedicated mode BA list case MPHC_MEAS_REPORT: { #if REL99 #if FF_EMR #if (FF_REPEATED_DL_FACCH == 1 ) sprintf(str,"DBA_I %ld %d %d %d L(%d %d)(%d %d) Q(%d %d)(%d %d) EM(%d %d %ld %d %d %d %d) U%d D%d(CC%d R%d ) DF%d\n\r(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)\n\r", #else sprintf(str,"DBA_I %ld %d %d %d L(%d %d)(%d %d) Q(%d %d)(%d %d) EM(%d %d %ld %d %d %d %d) U%d D%d DF%d\n\r(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)\n\r", #endif l1s.actual_time.fn_mod42432, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->meas_valid, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->txpwr_used, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->timing_advance, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_full_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_full_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_sub_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_sub_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_full_acc_errors, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_full_nbr_bits, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_sub_acc_errors, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_sub_nbr_bits, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_val_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_val_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->mean_bep_block_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->cv_bep_block_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->mean_bep_block_num, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->cv_bep_block_num, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->nbr_rcvd_blocks, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_ul_count, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_dl_count, #if (FF_REPEATED_DL_FACCH == 1 ) ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_dl_combined_good_count, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_dl_repetition_block_count, #endif trace_info.facch_dl_fail_count_trace, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[0].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[0].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[0].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[1].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[1].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[1].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[2].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[2].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[2].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[3].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[3].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[3].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[4].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[4].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[4].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[5].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[5].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[5].rxlev_nbr_meas); #endif #else #if (FF_REPEATED_DL_FACCH == 1 ) sprintf(str,"DBA_I %ld %d %d %d L(%d %d)(%d %d) Q(%d %d)(%d %d) U%d D%d (CC%d R%d ) DF%d\n\r(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)\n\r", #else sprintf(str,"DBA_I %ld %d %d %d L(%d %d)(%d %d) Q(%d %d)(%d %d) U%d D%d DF%d\n\r(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)(%d %d %d)\n\r", #endif l1s.actual_time.fn_mod42432, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->meas_valid, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->txpwr_used, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->timing_advance, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_full_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_full_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_sub_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxlev_sub_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_full_acc_errors, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_full_nbr_bits, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_sub_acc_errors, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->rxqual_sub_nbr_bits, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_ul_count, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_dl_count, #if (FF_REPEATED_DL_FACCH == 1 ) ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_dl_combined_good_count, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->facch_dl_repetition_block_count, #endif trace_info.facch_dl_fail_count_trace, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[0].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[0].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[0].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[1].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[1].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[1].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[2].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[2].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[2].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[3].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[3].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[3].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[4].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[4].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[4].rxlev_nbr_meas, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[5].bcch_freq, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[5].rxlev_acc, ((T_MPHC_MEAS_REPORT *)(msg->SigP))->ncell_meas.A[5].rxlev_nbr_meas); #endif L1_send_trace_cpy(str); } break; // Update BA list case MPHC_UPDATE_BA_LIST: { sprintf(str,"BAU_R %ld %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHC_UPDATE_BA_LIST *)(msg->SigP))->num_of_chans, ((T_MPHC_UPDATE_BA_LIST *)(msg->SigP))->pwrc, ((T_MPHC_UPDATE_BA_LIST *)(msg->SigP))->dtx_allowed, ((T_MPHC_UPDATE_BA_LIST *)(msg->SigP))->ba_id); L1_send_trace_cpy(str); } break; #if L1_GPRS /********************************************************************************/ /* PACKET SWITCHED */ /********************************************************************************/ ////////////////////////////// // Neighbor cell monitoring // ////////////////////////////// // Neighbor PBCCH reading case MPHP_NCELL_PBCCH_REQ: { sprintf(str,"PBN_R %ld %d %d %d %d %d %d %d %d %d %d %ld %ld\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->bs_pbcch_blks, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->pb, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->psi1_repeat_period, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->relative_position, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.chan_sel.h, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.timeslot_no, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.tsc, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->frequency_list.rf_chan_cnt, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->bcch_carrier, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->fn_offset, ((T_MPHP_NCELL_PBCCH_REQ *)(msg->SigP))->time_alignment); L1_send_trace_cpy(str); } break; case MPHP_NCELL_PBCCH_STOP_REQ: { sprintf(str,"PBN_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_PBCCHN_INFO: { #if(L1_FF_MULTIBAND == 1) UWORD16 operative_radio_freq; operative_radio_freq = l1_multiband_radio_freq_convert_into_operative_radio_freq(((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq); #endif sprintf(str,"PBN_I %ld %d %d %d %d %ld %d\n\r", ((T_MPHP_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHP_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq, ((T_MPHP_DATA_IND *)(msg->SigP))->relative_position, #if(L1_FF_MULTIBAND == 0) l1a_l1s_com.last_input_level[l1pa_l1ps_com.pbcchn.bcch_carrier - l1_config.std.radio_freq_index_offset].input_level, #else l1a_l1s_com.last_input_level[operative_radio_freq].input_level, #endif l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; ////////////////////////////////////////////////////// // Serving cell normal burst reading in packet idle // ////////////////////////////////////////////////////// // PCCCH reading case MPHP_START_PCCCH_REQ: { sprintf(str,"PCC_R %ld %d %d %d %d %d %d %d %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->imsimod, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->kcn, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->split_pg_cycle, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->bs_pag_blks_res, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->bs_pbcch_blks, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->pb, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->page_mode, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->packet_chn_desc.chan_sel.h, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->packet_chn_desc.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->packet_chn_desc.timeslot_no, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->packet_chn_desc.tsc, ((T_MPHP_START_PCCCH_REQ *)(msg->SigP))->frequency_list.rf_chan_cnt); L1_send_trace_cpy(str); } break; case MPHP_STOP_PCCCH_REQ: { sprintf(str,"PCC_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_PNP_INFO: { #if (FF_L1_FAST_DECODING == 1) sprintf(str,"PNP_I %ld %d %d %d %d %ld %d %d %c\n\r", #else sprintf(str,"PNP_I %ld %d %d %d %d %ld %d %c\n\r", #endif ((T_MPHP_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHP_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq, ((T_MPHP_DATA_IND *)(msg->SigP))->relative_position, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc, #if (FF_L1_FAST_DECODING == 1) l1a_l1s_com.last_fast_decoding, #endif trace_info.l1_memorize_error); L1_send_trace_cpy(str); } break; case L1P_PEP_INFO: { sprintf(str,"PEP_I %ld %d %d %d %d %ld %d\n\r", ((T_MPHP_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHP_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq, ((T_MPHP_DATA_IND *)(msg->SigP))->relative_position, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; case L1P_PALLC_INFO: { sprintf(str,"PCC_I %ld %d %d %d %d %ld %d\n\r", ((T_MPHP_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHP_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq, ((T_MPHP_DATA_IND *)(msg->SigP))->relative_position, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; // PBCCH reading case MPHP_SCELL_PBCCH_REQ: { UWORD8 i; sprintf(str,"PBS_R %ld %d %d %d %d %d %d %d %d %d", l1s.actual_time.fn_mod42432, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->nbr_psi, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->bs_pbcch_blks, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->pb, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->psi1_repeat_period, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.chan_sel.h, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.timeslot_no, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->packet_chn_desc.tsc, ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->frequency_list.rf_chan_cnt); // Trace relative_position array for(i=0;i<((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->nbr_psi;i++) { sprintf(str2,"%d ", ((T_MPHP_SCELL_PBCCH_REQ *)(msg->SigP))->relative_position_array[i]); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; case MPHP_SCELL_PBCCH_STOP_REQ: { sprintf(str,"PBS_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_PBCCHS_INFO: { sprintf(str,"PBS_I %ld %d %d %d %d %ld %d\n\r", ((T_MPHP_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHP_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq, ((T_MPHP_DATA_IND *)(msg->SigP))->relative_position, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; /////////////////// // Packet Access // /////////////////// // Random access case MPHP_RA_REQ: { sprintf(str,"PRA_R %ld %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_RA_REQ *)(msg->SigP))->txpwr, ((T_MPHP_RA_REQ *)(msg->SigP))->rand, ((T_MPHP_RA_REQ *)(msg->SigP))->channel_request_data, ((T_MPHP_RA_REQ *)(msg->SigP))->bs_prach_blks, ((T_MPHP_RA_REQ *)(msg->SigP))->access_burst_type); L1_send_trace_cpy(str); } break; case MPHP_RA_STOP_REQ: { sprintf(str,"PRA_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_RA_DONE: { sprintf(str,"PRA_C %ld %d\n\r", ((T_MPHP_RA_CON *)(msg->SigP))->fn % 42432, ((T_MPHP_RA_CON *)(msg->SigP))->channel_request_data); L1_send_trace_cpy(str); } break; // Single block case MPHP_SINGLE_BLOCK_REQ: { WORD32 sti; if (((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->tbf_sti.present == 0) sti = -1; else sti = (WORD32) ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->tbf_sti.absolute_fn; sprintf(str,"BLK_R %ld %d %d %d %d %d (%d %d %d) %d %d %d %d %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->assignment_id, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->purpose, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->pc_meas_chan, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->access_burst_type, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->packet_ta.ta, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->dl_pwr_ctl.p0, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->dl_pwr_ctl.bts_pwr_ctl_mode, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->dl_pwr_ctl.pr_mode, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->tsc, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->freq_param.chan_sel.h, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->freq_param.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->freq_param.freq_list.rf_chan_cnt, sti, ((T_MPHP_SINGLE_BLOCK_REQ *)(msg->SigP))->timeslot_number); L1_send_trace_cpy(str); } break; case MPHP_STOP_SINGLE_BLOCK_REQ: { sprintf(str,"BLK_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_PACCH_INFO: { sprintf(str,"BLK_I %ld %d %d %d %d %ld %d\n\r", ((T_MPHP_DATA_IND *)(msg->SigP))->fn % 42432, ((T_MPHP_DATA_IND *)(msg->SigP))->error_flag, ((T_MPHP_DATA_IND *)(msg->SigP))->radio_freq, ((T_MPHP_DATA_IND *)(msg->SigP))->relative_position, l1a_l1s_com.Scell_IL_for_rxlev, l1s.tpu_offset, l1s.afc); L1_send_trace_cpy(str); } break; case L1P_SINGLE_BLOCK_CON: { sprintf(str,"BLK_C %ld %d %d %d %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_SINGLE_BLOCK_CON *)(msg->SigP))->assignment_id, ((T_MPHP_SINGLE_BLOCK_CON *)(msg->SigP))->dl_error_flag, ((T_MPHP_SINGLE_BLOCK_CON *)(msg->SigP))->purpose, ((T_MPHP_SINGLE_BLOCK_CON *)(msg->SigP))->status, l1pa_l1ps_com.transfer.dl_pwr_ctrl.txpwr[0], l1pa_l1ps_com.transfer.dl_pwr_ctrl.txpwr[1], l1pa_l1ps_com.transfer.dl_pwr_ctrl.txpwr[2], l1pa_l1ps_com.transfer.dl_pwr_ctrl.txpwr[3]); L1_send_trace_cpy(str); } break; // Idle mode polling case MPHP_POLLING_RESPONSE_REQ: { sprintf(str,"POL_R %ld %d %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_POLLING_RESPONSE_REQ *)(msg->SigP))->pol_resp_type, ((T_MPHP_POLLING_RESPONSE_REQ *)(msg->SigP))->fn, ((T_MPHP_POLLING_RESPONSE_REQ *)(msg->SigP))->timing_advance, ((T_MPHP_POLLING_RESPONSE_REQ *)(msg->SigP))->txpwr); L1_send_trace_cpy(str); } break; case L1P_POLL_DONE: { sprintf(str,"POL_I %ld\n\r", ((T_MPHP_POLLING_IND *)(msg->SigP))->fn % 42432); L1_send_trace_cpy(str); } break; ////////////////////////// // Packet transfer mode // ////////////////////////// // Temporary block flow assignment case MPHP_ASSIGNMENT_REQ: { WORD32 sti; if (((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->tbf_sti.present == 0) sti = -1; else sti = (WORD32) ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->tbf_sti.absolute_fn; sprintf(str,"\n\rTBF_R %ld %d %d %d %d %d %d (%d %d %d)(%d %d %d) %d %d %d %d %ld | %d %x %x", l1s.actual_time.fn_mod42432, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->assignment_id, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->assignment_command, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->multislot_class, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->interf_meas_enable, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->pc_meas_chan, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->access_burst_type, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->packet_ta.ta, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->packet_ta.ta_index, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->packet_ta.ta_tn, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->dl_pwr_ctl.p0, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->dl_pwr_ctl.bts_pwr_ctl_mode, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->dl_pwr_ctl.pr_mode, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->tsc, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->freq_param.chan_sel.h, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->freq_param.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->freq_param.freq_list.rf_chan_cnt, sti, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->mac_mode, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->dl_ressource_alloc.timeslot_alloc, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->ul_ressource_alloc.timeslot_alloc); if (((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->mac_mode == DYN_ALLOC) sprintf(str2," %d\n\r", ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->ul_ressource_alloc.dynamic_alloc.usf_granularity); else sprintf(str2," %d %d\n\r", ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->ul_ressource_alloc.fixed_alloc.ctrl_timeslot, ((T_MPHP_ASSIGNMENT_REQ *)(msg->SigP))->ul_ressource_alloc.fixed_alloc.bitmap_length); strcat(str,str2); L1_send_trace_cpy(str); // a message was received correctly from the Network, it means the system behavior is nice // and so we can allow more trace on a PM/COM error. trace_info.trace_filter = FALSE; } break; case MPHP_ASSIGNMENT_CON: { sprintf(str,"TBF_C %ld %d\n\r", l1s.actual_time.fn_mod42432, l1a_l1s_com.dl_tn); L1_send_trace_cpy(str); } break; case MPHP_TBF_RELEASE_REQ: { sprintf(str,"REL_R %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_TBF_RELEASE_REQ *)(msg->SigP))->tbf_type); L1_send_trace_cpy(str); } break; case L1P_TBF_RELEASED: { if (((T_L1P_TBF_RELEASED *)(msg->SigP))->released_all == 1) trace_info.new_tcr_list = 0; sprintf(str,"REL_C %ld %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1P_TBF_RELEASED *)(msg->SigP))->released_all, ((T_L1P_TBF_RELEASED *)(msg->SigP))->tbf_type, l1a_l1s_com.dl_tn); L1_send_trace_cpy(str); } break; // PDCH release case MPHP_PDCH_RELEASE_REQ: { sprintf(str,"CHR_R %ld %d %x\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_PDCH_RELEASE_REQ *)(msg->SigP))->assignment_id, ((T_MPHP_PDCH_RELEASE_REQ *)(msg->SigP))->timeslot_available); L1_send_trace_cpy(str); } break; case L1P_PDCH_RELEASED: { sprintf(str,"CHR_C %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_PDCH_RELEASE_CON *)(msg->SigP))->assignment_id, l1a_l1s_com.dl_tn); L1_send_trace_cpy(str); } break; // Timing advance update case MPHP_TIMING_ADVANCE_REQ: { sprintf(str,"TAU_R %ld %d (%d %d %d)\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_TIMING_ADVANCE_REQ *)(msg->SigP))->assignment_id, ((T_MPHP_TIMING_ADVANCE_REQ *)(msg->SigP))->packet_ta.ta, ((T_MPHP_TIMING_ADVANCE_REQ *)(msg->SigP))->packet_ta.ta_index, ((T_MPHP_TIMING_ADVANCE_REQ *)(msg->SigP))->packet_ta.ta_tn); L1_send_trace_cpy(str); } break; case L1P_TA_CONFIG_DONE: { sprintf(str,"TAU_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Update PSI parameters case MPHP_UPDATE_PSI_PARAM_REQ: { sprintf(str,"PSI_R %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_UPDATE_PSI_PARAM_REQ *)(msg->SigP))->pb, ((T_MPHP_UPDATE_PSI_PARAM_REQ *)(msg->SigP))->access_burst_type); L1_send_trace_cpy(str); } break; // Fixed mode repeat allocation case MPHP_REPEAT_UL_FIXED_ALLOC_REQ: { WORD32 sti; if (((T_MPHP_REPEAT_UL_FIXED_ALLOC_REQ *)(msg->SigP))->tbf_sti.present == 0) sti = -1; else sti = (WORD32) ((T_MPHP_REPEAT_UL_FIXED_ALLOC_REQ *)(msg->SigP))->tbf_sti.absolute_fn; sprintf(str,"REP_R %ld %d %x %ld\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_REPEAT_UL_FIXED_ALLOC_REQ *)(msg->SigP))->repeat_allocation, ((T_MPHP_REPEAT_UL_FIXED_ALLOC_REQ *)(msg->SigP))->ts_override, sti); L1_send_trace_cpy(str); } break; case L1P_REPEAT_ALLOC_DONE: { sprintf(str,"REP_C %ld %d\n\r", l1s.actual_time.fn_mod42432, l1a_l1s_com.dl_tn); L1_send_trace_cpy(str); } break; // Fixed mode allocation exhaustion case L1P_ALLOC_EXHAUST_DONE: { sprintf(str,"EXH_I %ld %d\n\r", l1s.actual_time.fn_mod42432, l1a_l1s_com.dl_tn); L1_send_trace_cpy(str); } break; ////////////////////////////// // Packet mode measurements // ////////////////////////////// // BA list measurements in packet idle case MPHP_CR_MEAS_REQ: { sprintf(str,"CR_R %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_CR_MEAS_REQ *)(msg->SigP))->nb_carrier, ((T_MPHP_CR_MEAS_REQ *)(msg->SigP))->list_id); L1_send_trace_cpy(str); } break; case MPHP_CR_MEAS_STOP_REQ: { sprintf(str,"CR_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_CR_MEAS_DONE: { #define MAX_CR 20 UWORD8 i,nmeas; sprintf(str,"CR_I %ld %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1P_CR_MEAS_DONE *)(msg->SigP))->nmeas, ((T_L1P_CR_MEAS_DONE *)(msg->SigP))->list_id, ((T_L1P_CR_MEAS_DONE *)(msg->SigP))->reporting_period); nmeas = ((T_L1P_CR_MEAS_DONE *)(msg->SigP))->nmeas; if (nmeas > MAX_CR) nmeas = MAX_CR; for (i=0;i<nmeas;i++) { sprintf (str2, "(%d %d)", l1pa_l1ps_com.cres_freq_list.alist->freq_list[i], ((T_L1P_CR_MEAS_DONE *)(msg->SigP))->ncell_meas[i].rxlev); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; // BA list measurements in packet transfer case MPHP_TCR_MEAS_REQ: { trace_info.new_tcr_list = 1; sprintf(str,"TCR_R %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_TCR_MEAS_REQ *)(msg->SigP))->nb_carrier, ((T_MPHP_TCR_MEAS_REQ *)(msg->SigP))->list_id); L1_send_trace_cpy(str); } break; case MPHP_TCR_MEAS_STOP_REQ: { trace_info.new_tcr_list = 0; sprintf(str,"TCR_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_TCR_MEAS_DONE: { #define MAX_TCR 10 UWORD8 i, nmeas; T_CRES_LIST_PARAM *list_ptr; if (trace_info.new_tcr_list == 0) // No TCR list update: keep the alist pointer list_ptr = l1pa_l1ps_com.cres_freq_list.alist; else { // In case of TCR list updating, the alist pointer has changed if(l1pa_l1ps_com.cres_freq_list.alist == &(l1pa_l1ps_com.cres_freq_list.list[0])) list_ptr = &(l1pa_l1ps_com.cres_freq_list.list[1]); else list_ptr = &(l1pa_l1ps_com.cres_freq_list.list[0]); //Reset the variable new_tcr_list so that next time onwards the new list of //frequencies will get printed. #if 0 /* FreeCalypso TCS211 reconstruction */ trace_info.new_tcr_list = 0; #endif } sprintf(str,"TCR_I %ld %d %d %ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1P_TCR_MEAS_DONE *)(msg->SigP))->list_id, list_ptr->nb_carrier, l1s.tpu_offset); nmeas = list_ptr->nb_carrier; if (nmeas > MAX_TCR) nmeas = MAX_TCR; for (i=0;i<nmeas;i++) { sprintf (str2, "(%d %d %d)", list_ptr->freq_list[i], ((T_L1P_TCR_MEAS_DONE *)(msg->SigP))->acc_level[i], ((T_L1P_TCR_MEAS_DONE *)(msg->SigP))->acc_nbmeas[i]); strcat(str,str2); } strcat(str,"\n\r"); L1_send_trace_cpy(str); } break; /////////////////////////////// // Interference measurements // /////////////////////////////// // Interference measurements in packet idle case MPHP_INT_MEAS_REQ: { sprintf(str,"ITM_R %ld %d %d %d %x %d\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_INT_MEAS_REQ *)(msg->SigP))->packet_intm_freq_param.chan_sel.h, ((T_MPHP_INT_MEAS_REQ *)(msg->SigP))->packet_intm_freq_param.chan_sel.rf_channel.single_rf.radio_freq, ((T_MPHP_INT_MEAS_REQ *)(msg->SigP))->packet_intm_freq_param.freq_list.rf_chan_cnt, ((T_MPHP_INT_MEAS_REQ *)(msg->SigP))->tn, ((T_MPHP_INT_MEAS_REQ *)(msg->SigP))->multislot_class); L1_send_trace_cpy(str); } break; case MPHP_INT_MEAS_STOP_REQ: { sprintf(str,"ITM_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1P_ITMEAS_IND: { sprintf(str,"IT_I %ld %d %x\n\r", ((T_L1P_ITMEAS_IND *)(msg->SigP))->fn % 42432, ((T_L1P_ITMEAS_IND *)(msg->SigP))->position, ((T_L1P_ITMEAS_IND *)(msg->SigP))->meas_bitmap); L1_send_trace_cpy(str); } break; case MPHP_INT_MEAS_IND: { sprintf(str,"ITM_I %ld (%d %d %d %d %d %d %d %d)(%d %d %d %d %d %d %d %d)\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[0].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[1].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[2].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[3].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[4].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[5].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[6].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[7].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[0].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[1].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[2].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[3].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[4].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[5].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[6].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[7].rxlev[1]); L1_send_trace_cpy(str); } break; // Interference measurements in packet transfer case MPHP_TINT_MEAS_IND: { sprintf(str,"TIT_I %ld (%d %d %d %d %d %d %d %d)(%d %d %d %d %d %d %d %d)\n\r", l1s.actual_time.fn_mod42432, ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[0].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[1].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[2].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[3].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[4].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[5].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[6].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[7].rxlev[0], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[0].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[1].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[2].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[3].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[4].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[5].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[6].rxlev[1], ((T_MPHP_INT_MEAS_IND *)(msg->SigP))->int_meas[7].rxlev[1]); L1_send_trace_cpy(str); } break; #endif //L1_GPRS /********************************************************************************/ /* BACKGROUND TASKS */ /********************************************************************************/ ////////////////// // MMI messages // ////////////////// #if (AUDIO_TASK == 1) // Messages for the new audio design #if (KEYBEEP) // Keybeep case MMI_KEYBEEP_START_REQ: { sprintf(str,"KBP_R %ld %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_KEYBEEP_REQ *)(msg->SigP))->d_k_x1_kt0, ((T_MMI_KEYBEEP_REQ *)(msg->SigP))->d_k_x1_kt1, ((T_MMI_KEYBEEP_REQ *)(msg->SigP))->d_dur_kb); L1_send_trace_cpy(str); } break; case MMI_KEYBEEP_START_CON: { sprintf(str,"KBP_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_KEYBEEP_STOP_REQ: { sprintf(str,"KBP_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_KEYBEEP_STOP_CON: { sprintf(str,"KBP_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // KEYBEEP #if (TONE) // Tone case MMI_TONE_START_REQ: { sprintf(str,"TON_R %ld %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_TONE_REQ *)(msg->SigP))->d_k_x1_t0, ((T_MMI_TONE_REQ *)(msg->SigP))->d_k_x1_t1, ((T_MMI_TONE_REQ *)(msg->SigP))->d_k_x1_t2, ((T_MMI_TONE_REQ *)(msg->SigP))->d_pe_rep, ((T_MMI_TONE_REQ *)(msg->SigP))->d_pe_off, ((T_MMI_TONE_REQ *)(msg->SigP))->d_se_off, ((T_MMI_TONE_REQ *)(msg->SigP))->d_bu_off, ((T_MMI_TONE_REQ *)(msg->SigP))->d_t0_on, ((T_MMI_TONE_REQ *)(msg->SigP))->d_t0_off, ((T_MMI_TONE_REQ *)(msg->SigP))->d_t1_on, ((T_MMI_TONE_REQ *)(msg->SigP))->d_t1_off, ((T_MMI_TONE_REQ *)(msg->SigP))->d_t2_on, ((T_MMI_TONE_REQ *)(msg->SigP))->d_t2_off); L1_send_trace_cpy(str); } break; case MMI_TONE_START_CON: { sprintf(str,"TON_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_TONE_STOP_REQ: { sprintf(str,"TON_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_TONE_STOP_CON: { sprintf(str,"TON_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // TONE #if (MELODY_E1) // Melody 0 case MMI_MELODY0_START_REQ: { sprintf(str,"ME0_R %ld %02lx %01lx %04lx \n\r", l1s.actual_time.fn_mod42432, ((T_MMI_MELODY_REQ *)(msg->SigP))->session_id, ((T_MMI_MELODY_REQ *)(msg->SigP))->loopback, ((T_MMI_MELODY_REQ *)(msg->SigP))->oscillator_used_bitmap); L1_send_trace_cpy(str); } break; case MMI_MELODY0_START_CON: { sprintf(str,"ME0_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY0_STOP_REQ: { sprintf(str,"ME0_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY0_STOP_CON: { sprintf(str,"ME0_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Melody 1 case MMI_MELODY1_START_REQ: { sprintf(str,"ME1_R %ld %02lx %01lx %04lx \n\r", l1s.actual_time.fn_mod42432, ((T_MMI_MELODY_REQ *)(msg->SigP))->session_id, ((T_MMI_MELODY_REQ *)(msg->SigP))->loopback, ((T_MMI_MELODY_REQ *)(msg->SigP))->oscillator_used_bitmap); L1_send_trace_cpy(str); } break; case MMI_MELODY1_START_CON: { sprintf(str,"ME1_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY1_STOP_REQ: { sprintf(str,"ME1_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY1_STOP_CON: { sprintf(str,"ME1_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // MELODY_E1 #if (VOICE_MEMO) // Voice memo recording case MMI_VM_RECORD_START_REQ: { sprintf(str,"VMR_R %ld %02lx %08lx %01lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->session_id, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->maximum_size, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->dtx_used, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->record_coeff_dl, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->record_coeff_ul, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_k_x1_t0, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_k_x1_t1, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_k_x1_t2, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_pe_rep, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_pe_off, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_se_off, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_bu_off, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_t0_on, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_t0_off, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_t1_on, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_t1_off, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_t2_on, ((T_MMI_VM_RECORD_REQ *)(msg->SigP))->d_t2_off); L1_send_trace_cpy(str); } break; case MMI_VM_RECORD_START_CON: { sprintf(str,"VMR_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_RECORD_STOP_REQ: { sprintf(str,"VMR_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_RECORD_STOP_CON: { sprintf(str,"VMR_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Voice memo playing case MMI_VM_PLAY_START_REQ: { sprintf(str,"VMP_R %ld %02lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_VM_PLAY_REQ *)(msg->SigP))->session_id); L1_send_trace_cpy(str); } break; case MMI_VM_PLAY_START_CON: { sprintf(str,"VMP_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_PLAY_STOP_REQ: { sprintf(str,"VMP_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_PLAY_STOP_CON: { sprintf(str,"VMP_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // VOICE_MEMO #if (L1_PCM_EXTRACTION) /* PCM download*/ case MMI_PCM_DOWNLOAD_START_REQ: { sprintf(str,"PDL_R %ld %02lx %02lx %02lx %lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_PCM_DOWNLOAD_START_REQ *)(msg->SigP))->session_id, ((T_MMI_PCM_DOWNLOAD_START_REQ *)(msg->SigP))->download_ul_gain, ((T_MMI_PCM_DOWNLOAD_START_REQ *)(msg->SigP))->download_dl_gain, ((T_MMI_PCM_DOWNLOAD_START_REQ *)(msg->SigP))->maximum_size); L1_send_trace_cpy(str); } break; case MMI_PCM_DOWNLOAD_START_CON: { sprintf(str,"PDL_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_PCM_DOWNLOAD_STOP_REQ: { sprintf(str,"PDL_S %ld %lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_PCM_DOWNLOAD_STOP_REQ *)(msg->SigP))->maximum_size); L1_send_trace_cpy(str); } break; case MMI_PCM_DOWNLOAD_STOP_CON: { sprintf(str,"PDL_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_PCM_UPLOAD_START_REQ: { sprintf(str,"PUL_R %ld %02lx %02lx %02lx %lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_PCM_UPLOAD_START_REQ *)(msg->SigP))->session_id, ((T_MMI_PCM_UPLOAD_START_REQ *)(msg->SigP))->upload_ul_gain, ((T_MMI_PCM_UPLOAD_START_REQ *)(msg->SigP))->upload_dl_gain, ((T_MMI_PCM_UPLOAD_START_REQ *)(msg->SigP))->maximum_size); L1_send_trace_cpy(str); } break; case MMI_PCM_UPLOAD_START_CON: { sprintf(str,"PUL_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_PCM_UPLOAD_STOP_REQ: { sprintf(str,"PUL_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_PCM_UPLOAD_STOP_CON: { sprintf(str,"PUL_E %ld %lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_PCM_UPLOAD_STOP_CON *)(msg->SigP))->uploaded_size); L1_send_trace_cpy(str); } break; #endif /* L1_PCM_EXTRACTION */ #if (L1_VOICE_MEMO_AMR) // Voice memo recording case MMI_VM_AMR_RECORD_START_REQ: { sprintf(str,"VMAR_R %ld %02lx %08lx %01lx %04lx %02lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_VM_AMR_RECORD_REQ *)(msg->SigP))->session_id, ((T_MMI_VM_AMR_RECORD_REQ *)(msg->SigP))->maximum_size, ((T_MMI_VM_AMR_RECORD_REQ *)(msg->SigP))->dtx_used, ((T_MMI_VM_AMR_RECORD_REQ *)(msg->SigP))->record_coeff_ul, ((T_MMI_VM_AMR_RECORD_REQ *)(msg->SigP))->amr_vocoder); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_RECORD_START_CON: { sprintf(str,"VMAR_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_RECORD_STOP_REQ: { sprintf(str,"VMAR_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_RECORD_STOP_CON: { sprintf(str,"VMAR_E %ld %08lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_VM_AMR_RECORD_CON *)(msg->SigP))->recorded_size); L1_send_trace_cpy(str); } break; // Voice memo playing case MMI_VM_AMR_PLAY_START_REQ: { sprintf(str,"VMAP_R %ld %02lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_VM_AMR_PLAY_REQ *)(msg->SigP))->session_id); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_PLAY_START_CON: { sprintf(str,"VMAP_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_PLAY_STOP_REQ: { sprintf(str,"VMAP_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_PLAY_STOP_CON: { sprintf(str,"VMAP_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; /* * FreeCalypso TCS211 reconstruction: PAUSE/RESUME of AMR VM playback * appears to be a LoCosto addition. */ #if 0 // Voice memo playing case MMI_VM_AMR_PAUSE_REQ: { sprintf(str,"VMAPP_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_PAUSE_CON: { sprintf(str,"VMAPP_C %ld\n\r", l1s.actual_time.fn_mod42432 ); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_RESUME_REQ: { sprintf(str,"VMAPR_R %ld \n\r", l1s.actual_time.fn_mod42432 ); L1_send_trace_cpy(str); } break; case MMI_VM_AMR_RESUME_CON: { sprintf(str,"VMAPR_C %ld \n\r", l1s.actual_time.fn_mod42432 ); L1_send_trace_cpy(str); } break; #endif /* FreeCalypso */ #endif // L1_VOICE_MEMO_AMR #if (OP_RIV_AUDIO == 1) #if (L1_AUDIO_DRIVER == 1) case L1_AUDIO_DRIVER_IND: { sprintf(str,"AUD_I %ld %02ld %08lx\n\r", (WORD32) l1s.actual_time.fn_mod42432, (WORD32) ((T_L1_AUDIO_DRIVER_IND *)(msg->SigP))->channel_id, (WORD32)((T_L1_AUDIO_DRIVER_IND *)(msg->SigP))->p_buffer); L1_send_trace_cpy(str); } break; #endif //(L1_AUDIO_DRIVER == 1) #endif //(OP_RIV_AUDIO == 1) #if (SPEECH_RECO) case MMI_SR_ENROLL_START_REQ: { sprintf(str,"SRE_R %ld %02ld %02ld %01ld %08lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_ENROLL_REQ *)(msg->SigP))->database_id, ((T_MMI_SR_ENROLL_REQ *)(msg->SigP))->word_index, ((T_MMI_SR_ENROLL_REQ *)(msg->SigP))->speech, ((T_MMI_SR_ENROLL_REQ *)(msg->SigP))->speech_address); L1_send_trace_cpy(str); } break; case MMI_SR_ENROLL_STOP_REQ: { sprintf(str,"SRE_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_ENROLL_START_CON: { sprintf(str,"SRE_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_ENROLL_STOP_CON: { sprintf(str,"SRE_E %ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_ENROLL_STOP_CON *)(msg->SigP))->error_id); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_START_REQ: { sprintf(str,"SRU_R %ld %02ld %02ld %01ld %08lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_UPDATE_REQ *)(msg->SigP))->database_id, ((T_MMI_SR_UPDATE_REQ *)(msg->SigP))->word_index, ((T_MMI_SR_UPDATE_REQ *)(msg->SigP))->speech, ((T_MMI_SR_UPDATE_REQ *)(msg->SigP))->speech_address); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_STOP_REQ: { sprintf(str,"SRU_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_START_CON: { sprintf(str,"SRU_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_STOP_CON: { sprintf(str,"SRU_E %ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_UPDATE_STOP_CON *)(msg->SigP))->error_id); L1_send_trace_cpy(str); } break; case MMI_SR_RECO_START_REQ: { sprintf(str,"SRR_R %ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_RECO_REQ *)(msg->SigP))->database_id, ((T_MMI_SR_RECO_REQ *)(msg->SigP))->vocabulary_size); L1_send_trace_cpy(str); } break; case MMI_SR_RECO_STOP_REQ: { sprintf(str,"SRR_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_RECO_START_CON: { sprintf(str,"SRR_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_RECO_STOP_CON: { sprintf(str,"SRR_E %ld %02ld %02ld %08lx %02ld %08lx %02ld %08lx %02ld %08lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->error_id, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->best_word_index, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->best_word_score, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->second_best_word_index, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->second_best_word_score, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->third_best_word_index, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->third_best_word_score, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->fourth_best_word_index, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->fourth_best_word_score, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->d_sr_db_level, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->d_sr_db_noise, ((T_MMI_SR_RECO_STOP_CON *)(msg->SigP))->d_sr_model_size); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_CHECK_START_REQ: { sprintf(str,"SRC_R %ld %02ld %02ld %02ld %08lx %01ld %08lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_UPDATE_CHECK_REQ *)(msg->SigP))->database_id, ((T_MMI_SR_UPDATE_CHECK_REQ *)(msg->SigP))->word_index, ((T_MMI_SR_UPDATE_CHECK_REQ *)(msg->SigP))->vocabulary_size, ((T_MMI_SR_UPDATE_CHECK_REQ *)(msg->SigP))->model_address, ((T_MMI_SR_UPDATE_CHECK_REQ *)(msg->SigP))->speech, ((T_MMI_SR_UPDATE_CHECK_REQ *)(msg->SigP))->speech_address); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_CHECK_STOP_REQ: { sprintf(str,"SRC_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_CHECK_START_CON: { sprintf(str,"SRC_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_SR_UPDATE_CHECK_STOP_CON: { sprintf(str,"SRC_E %ld %02ld %02ld %08lx %02ld %08lx %02ld %08lx %02ld %08lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->error_id, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->best_word_index, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->best_word_score, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->second_best_word_index, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->second_best_word_score, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->third_best_word_index, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->third_best_word_score, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->fourth_best_word_index, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->fourth_best_word_score, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->d_sr_db_level, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->d_sr_db_noise, ((T_MMI_SR_UPDATE_CHECK_STOP_CON *)(msg->SigP))->d_sr_model_size); L1_send_trace_cpy(str); } break; case L1_SRBACK_SAVE_DATA_REQ: { sprintf(str,"SRB_SR %ld %02ld %02ld %08lx %01ld %08lx %08lx %08lx %08lx\n\r", l1s.actual_time.fn_mod42432, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->database_id, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->model_index, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->model_RAM_address, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->speech, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->start_buffer, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->stop_buffer, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->start_address, ((T_L1_SRBACK_SAVE_DATA_REQ *)(msg->SigP))->stop_address); L1_send_trace_cpy(str); } break; case L1_SRBACK_SAVE_DATA_CON: { sprintf(str,"SRB_SC %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_SRBACK_LOAD_MODEL_REQ: { sprintf(str,"SRB_LR %ld %02ld %02lx %04lx %01ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1_SRBACK_LOAD_MODEL_REQ *)(msg->SigP))->database_id, ((T_L1_SRBACK_LOAD_MODEL_REQ *)(msg->SigP))->model_index, ((T_L1_SRBACK_LOAD_MODEL_REQ *)(msg->SigP))->model_RAM_address, ((T_L1_SRBACK_LOAD_MODEL_REQ *)(msg->SigP))->CTO_enable); L1_send_trace_cpy(str); } break; case L1_SRBACK_LOAD_MODEL_CON: { sprintf(str,"SRB_LC %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_SRBACK_TEMP_SAVE_DATA_REQ: { sprintf(str,"SRB_TR %ld %08lx %08lx\n\r", l1s.actual_time.fn_mod42432, ((T_L1_SRBACK_TEMP_SAVE_DATA_REQ *)(msg->SigP))->model_RAM_address_input, ((T_L1_SRBACK_TEMP_SAVE_DATA_REQ *)(msg->SigP))->model_RAM_address_output); L1_send_trace_cpy(str); } break; case L1_SRBACK_TEMP_SAVE_DATA_CON: { sprintf(str,"SRB_TC %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // SPEECH_RECO #if (FIR) case MMI_AUDIO_FIR_REQ: { sprintf(str,"FIR_R %ld %01lx %02ld %08lx %08lx\n\r", (WORD32) l1s.actual_time.fn_mod42432, (WORD32) ((T_MMI_AUDIO_FIR_REQ *)(msg->SigP))->fir_loop, (WORD32) ((T_MMI_AUDIO_FIR_REQ *)(msg->SigP))->update_fir, (WORD32) ((T_MMI_AUDIO_FIR_REQ *)(msg->SigP))->fir_ul_coefficient, (WORD32) ((T_MMI_AUDIO_FIR_REQ *)(msg->SigP))->fir_dl_coefficient); L1_send_trace_cpy(str); } break; case MMI_AUDIO_FIR_CON: { sprintf(str,"FIR_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif //FIR #if (AEC) case MMI_AEC_REQ: { #if (L1_NEW_AEC) sprintf(str,"AEC_R %ld %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AEC_REQ *)(msg->SigP))->aec_control, ((T_MMI_AEC_REQ *)(msg->SigP))->cont_filter, ((T_MMI_AEC_REQ *)(msg->SigP))->granularity_att, ((T_MMI_AEC_REQ *)(msg->SigP))->coef_smooth, ((T_MMI_AEC_REQ *)(msg->SigP))->es_level_max, ((T_MMI_AEC_REQ *)(msg->SigP))->fact_vad, ((T_MMI_AEC_REQ *)(msg->SigP))->thrs_abs, ((T_MMI_AEC_REQ *)(msg->SigP))->fact_asd_fil, ((T_MMI_AEC_REQ *)(msg->SigP))->fact_asd_mut); #else sprintf(str,"AEC_R %ld %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AEC_REQ *)(msg->SigP))->aec_control); #endif //(L1_NEW_AEC) L1_send_trace_cpy(str); } break; case MMI_AEC_CON: { sprintf(str,"AEC_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #if (L1_NEW_AEC) case L1_AEC_IND: { sprintf(str,"AEC_I %ld %4.4x %8.8x %8.8x\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AEC_IND *)(msg->SigP))->es_level, ((T_L1_AEC_IND *)(msg->SigP))->far_end_pow, ((T_L1_AEC_IND *)(msg->SigP))->far_end_noise); L1_send_trace_cpy(str); } break; #endif //(L1_NEW_AEC) #endif //AEC #if (AUDIO_MODE) case MMI_AUDIO_MODE_REQ: { sprintf(str,"AUM_R %ld %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AUDIO_MODE *)(msg->SigP))->audio_mode); L1_send_trace_cpy(str); } break; case MMI_AUDIO_MODE_CON: { sprintf(str,"AUM_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // AUDIO_MODE #if (MELODY_E2) // MMI command and request case MMI_MELODY0_E2_START_REQ : { sprintf(str,"E20_R %ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_MELODY_E2_REQ *)(msg->SigP))->session_id, ((T_MMI_MELODY_E2_REQ *)(msg->SigP))->loopback); L1_send_trace_cpy(str); } break; case MMI_MELODY0_E2_STOP_REQ : { sprintf(str,"E20_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY0_E2_START_CON : { sprintf(str,"E20_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY0_E2_STOP_CON : { sprintf(str,"E20_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY1_E2_START_REQ : { sprintf(str,"E21_R %ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_MELODY_E2_REQ *)(msg->SigP))->session_id, ((T_MMI_MELODY_E2_REQ *)(msg->SigP))->loopback); L1_send_trace_cpy(str); } break; case MMI_MELODY1_E2_STOP_REQ : { sprintf(str,"E21_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY1_E2_START_CON : { sprintf(str,"E21_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MELODY1_E2_STOP_CON : { sprintf(str,"E21_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Audio download instrument message case L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ : { sprintf(str,"E2B_L %ld %02ld %02ld %02ld %02ld %02ld %02ld %02ld %02ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->melody_id, ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->number_of_instrument, ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[0], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[1], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[2], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[3], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[4], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[5], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[6], ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_REQ *)(msg->SigP))->waves_table_id[7]); L1_send_trace_cpy(str); } break; case L1_BACK_MELODY_E2_LOAD_INSTRUMENT_CON : { sprintf(str,"E2B_LC %ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1_BACK_MELODY_E2_LOAD_INSTRUMENT_CON *)(msg->SigP))->melody_id); L1_send_trace_cpy(str); } break; case L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_REQ : { sprintf(str,"E2B_U %ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_REQ *)(msg->SigP))->melody_id, ((T_L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_REQ *)(msg->SigP))->number_of_instrument); L1_send_trace_cpy(str); } break; case L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_CON : { sprintf(str,"E2B_UC %ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_CON *)(msg->SigP))->melody_id); L1_send_trace_cpy(str); } break; // L1S stop confirmation case L1_MELODY0_E2_STOP_CON : { sprintf(str,"E20_L1SC %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_MELODY1_E2_STOP_CON : { sprintf(str,"E21_L1SC %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; // Instrument download #endif // MELODY_E2 #if (L1_MP3 == 1) // MP3 case MMI_MP3_START_REQ: { sprintf(str,"MP3_R %ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_MP3_REQ *)(msg->SigP))->session_id, ((T_MMI_MP3_REQ *)(msg->SigP))->loopback); L1_send_trace_cpy(str); } break; case MMI_MP3_START_CON: { sprintf(str,"MP3_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_STOP_REQ: { sprintf(str,"MP3_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_STOP_CON: { sprintf(str,"MP3_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1A_MP3_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case MMI_MP3_PAUSE_REQ: { sprintf(str,"MP3_PAUSE_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_PAUSE_CON: { sprintf(str,"MP3_PAUSE_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_RESUME_REQ: { sprintf(str,"MP3_RESUME_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_RESUME_CON: { sprintf(str,"MP3_RESUME_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_RESTART_REQ: { sprintf(str,"MP3_RESTART_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MP3_RESTART_CON: { sprintf(str,"MP3_RESTART_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_MP3_ENABLE_CON: { sprintf(str,"MPS_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_MP3_DISABLE_CON: { sprintf(str,"MPS_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_MP3_START_CON: { sprintf(str,"MPA_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_MP3_STOP_CON: { sprintf(str,"MPA_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_API_MP3_STOP_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case API_MP3_PAUSE_CON: { sprintf(str,"MPA_PAUSE_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_MP3_RESUME_CON: { sprintf(str,"MPA_RESUME_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_MP3_RESTART_CON: { sprintf(str,"MPA_RESTART_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_MP3 #if (L1_AAC == 1) // AAC case MMI_AAC_START_REQ: { sprintf(str,"AAC_R %ld %02ld %02ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AAC_REQ *)(msg->SigP))->session_id, ((T_MMI_AAC_REQ *)(msg->SigP))->stereo, ((T_MMI_AAC_REQ *)(msg->SigP))->loopback, ((T_MMI_AAC_REQ *)(msg->SigP))->dma_channel_number); L1_send_trace_cpy(str); } break; case MMI_AAC_START_CON: { sprintf(str,"AAC_C %ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1A_AAC_START_CON *)(msg->SigP))->aac_format); L1_send_trace_cpy(str); } break; case MMI_AAC_STOP_REQ: { sprintf(str,"AAC_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_STOP_CON: { sprintf(str,"AAC_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1A_AAC_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case MMI_AAC_PAUSE_REQ: { sprintf(str,"AAC_PAUSE_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_PAUSE_CON: { sprintf(str,"AAC_PAUSE_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_RESUME_REQ: { sprintf(str,"AAC_RESUME_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_RESUME_CON: { sprintf(str,"AAC_RESUME_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_RESTART_REQ: { sprintf(str,"AAC_RESTART_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_RESTART_CON: { sprintf(str,"AAC_RESTART_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_INFO_REQ: { sprintf(str,"AAC_INFO_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_AAC_INFO_CON: { sprintf(str,"AAC_INFO_C %ld %d %d %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_L1A_AAC_INFO_CON *)(msg->SigP))->bitrate, ((T_L1A_AAC_INFO_CON *)(msg->SigP))->frequency, ((T_L1A_AAC_INFO_CON *)(msg->SigP))->aac_format, ((T_L1A_AAC_INFO_CON *)(msg->SigP))->channel); L1_send_trace_cpy(str); } break; case L1_AAC_ENABLE_CON: { sprintf(str,"AACS_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_AAC_DISABLE_CON: { sprintf(str,"AACS_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_AAC_START_CON: { sprintf(str,"AACA_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_AAC_STOP_CON: { sprintf(str,"AACA_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_API_AAC_STOP_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case API_AAC_PAUSE_CON: { sprintf(str,"AACA_PAUSE_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_AAC_RESUME_CON: { sprintf(str,"AACA_RESUME_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_AAC_RESTART_CON: { sprintf(str,"AACA_RESTART_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_AAC #if (L1_CPORT) // Cport case MMI_CPORT_CONFIGURE_REQ: { sprintf(str,"CPO_R %ld %04lx %04lx %02lx %02lx %02lx %02lx %02lx %02lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->configuration, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->ctrl, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cpcfr1, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cpcfr2, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cpcfr3, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cpcfr4, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cptctl, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cpttaddr, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cptdat, ((T_MMI_CPORT_CONFIGURE_REQ *)(msg->SigP))->cptvs); L1_send_trace_cpy(str); } break; case MMI_CPORT_CONFIGURE_CON: { sprintf(str,"CPO_C %ld %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_CPORT_CONFIGURE_CON *)(msg->SigP))->register_id, ((T_MMI_CPORT_CONFIGURE_CON *)(msg->SigP))->register_value); L1_send_trace_cpy(str); } break; #endif // L1_CPORT #if (L1_EXT_AUDIO_MGT == 1) // External audio management case MMI_EXT_AUDIO_MGT_START_REQ: { sprintf(str,"EAM_R %ld %02lx %02lx %02lx %02lx %04lx %08lx %02lx %02lx\n\r", (WORD32) l1s.actual_time.fn_mod42432, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->sampling_frequency, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->DMA_channel_number, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->data_type, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->element_number, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->frame_number, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->source_buffer_address, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->mono_stereo, (WORD32) ((T_MMI_EXT_AUDIO_MGT_START_REQ *)(msg->SigP))->session_id); rvt_send_trace_cpy ((T_RVT_BUFFER) str, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)strlen(str), RVT_ASCII_FORMAT); // L1_send_trace_cpy(str); //omaps00090550 } break; case MMI_EXT_AUDIO_MGT_START_CON: { sprintf(str,"EAM_C %ld\n\r", l1s.actual_time.fn_mod42432); rvt_send_trace_cpy ((T_RVT_BUFFER) str, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)strlen(str), RVT_ASCII_FORMAT); // L1_send_trace_cpy(str); } break; case MMI_EXT_AUDIO_MGT_STOP_REQ: { sprintf(str,"EAM_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_EXT_AUDIO_MGT_STOP_CON: { sprintf(str,"EAM_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_EXT_AUDIO_MGT #if TESTMODE #if ((L1_STEREOPATH == 1) && (OP_L1_STANDALONE == 1)) // Stereopath case TMODE_AUDIO_STEREOPATH_START_REQ: { sprintf(str,"STP_R %ld %02lx %02lx %02lx %02lx %02lx %02lx %04lx %04lx %02lx %02lx\n\r", l1s.actual_time.fn_mod42432, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->configuration, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->sampling_frequency, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->DMA_allocation, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->DMA_channel_number, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->data_type, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->source_port, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->element_number, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->frame_number, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->mono_stereo, ((T_TMODE_AUDIO_STEREOPATH_START_REQ *)(msg->SigP))->pattern_identifier); L1_send_trace_cpy(str); } break; case TMODE_AUDIO_STEREOPATH_START_CON: { sprintf(str,"STP_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case TMODE_AUDIO_STEREOPATH_STOP_REQ: { sprintf(str,"STP_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case TMODE_AUDIO_STEREOPATH_STOP_CON: { sprintf(str,"STP_E %ld %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, l1tm.stereopath.stereopath_source_timeout, l1tm.stereopath.stereopath_dest_timeout, l1tm.stereopath.stereopath_drop, l1tm.stereopath.stereopath_half_block, l1tm.stereopath.stereopath_block); L1_send_trace_cpy(str); } break; #endif // L1_STEREOPATH #endif // TESTMODE #if (L1_ANR == 1) case MMI_ANR_REQ: { sprintf(str,"ANR_R %ld %d %04lx %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_ANR_REQ *)(msg->SigP))->anr_enable, ((T_MMI_ANR_REQ *)(msg->SigP))->min_gain, ((T_MMI_ANR_REQ *)(msg->SigP))->div_factor_shift, ((T_MMI_ANR_REQ *)(msg->SigP))->ns_level); L1_send_trace_cpy(str); } break; case L1_ANR_CON: { sprintf(str,"ANR_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_ANR == 1 #if (L1_ANR == 2) case MMI_AQI_ANR_REQ: { sprintf(str,"ANR_R %ld %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_ANR_REQ *)(msg->SigP))->anr_ul_control, ((T_MMI_AQI_ANR_REQ *)(msg->SigP))->parameters.control, ((T_MMI_AQI_ANR_REQ *)(msg->SigP))->parameters.ns_level, ((T_MMI_AQI_ANR_REQ *)(msg->SigP))->parameters.tone_ene_th, ((T_MMI_AQI_ANR_REQ *)(msg->SigP))->parameters.tone_cnt_th); L1_send_trace_cpy(str); } break; case L1_AQI_ANR_CON: { sprintf(str,"ANR_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_ANR_CON *)(msg->SigP))->anr_ul_action); L1_send_trace_cpy(str); } break; #endif // L1_ANR == 2 #if(L1_AEC == 2) case MMI_AQI_AEC_REQ: { sprintf(str,"AEC_R %1d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d \n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_control, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.aec_mode, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.mu, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.cont_filter, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.scale_input_ul, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.scale_input_dl, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.div_dmax, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.div_swap_good, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.div_swap_bad, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.block_init, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.fact_vad, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.fact_asd_fil, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.fact_asd_mut, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.thrs_abs, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.es_level_max, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.granularity_att, ((T_MMI_AQI_AEC_REQ *)(msg->SigP))->aec_parameters.coef_smooth ); L1_send_trace_cpy(str); } break; case L1_AQI_AEC_CON: { sprintf(str,"AEC_C %ld %d \n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_AEC_CON*)(msg->SigP))->aec_action); L1_send_trace_cpy(str); } break; #endif #if (L1_IIR == 1) case MMI_IIR_REQ: { sprintf(str,"IIR_R %ld %d %d %08lx %d %08lx %ld %ld %ld %ld %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_IIR_REQ *)(msg->SigP))->iir_enable, ((T_MMI_IIR_REQ *)(msg->SigP))->nb_iir_blocks, ((T_MMI_IIR_REQ *)(msg->SigP))->iir_coefs, ((T_MMI_IIR_REQ *)(msg->SigP))->nb_fir_coefs, ((T_MMI_IIR_REQ *)(msg->SigP))->fir_coefs, ((T_MMI_IIR_REQ *)(msg->SigP))->input_scaling, ((T_MMI_IIR_REQ *)(msg->SigP))->fir_scaling, ((T_MMI_IIR_REQ *)(msg->SigP))->input_gain_scaling, ((T_MMI_IIR_REQ *)(msg->SigP))->output_gain_scaling, ((T_MMI_IIR_REQ *)(msg->SigP))->output_gain, ((T_MMI_IIR_REQ *)(msg->SigP))->feedback); L1_send_trace_cpy(str); } break; case L1_IIR_CON: { sprintf(str,"IIR_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_IIR == 1 #if (L1_WCM == 1) case MMI_AQI_WCM_REQ: { sprintf(str,"WCM_R %ld %d %d %d %d %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_WCM_REQ *)(msg->SigP))->wcm_control, ((T_MMI_AQI_WCM_REQ *)(msg->SigP))->parameters.mode, ((T_MMI_AQI_WCM_REQ *)(msg->SigP))->parameters.frame_size, ((T_MMI_AQI_WCM_REQ *)(msg->SigP))->parameters.num_sub_frames, ((T_MMI_AQI_WCM_REQ *)(msg->SigP))->parameters.ratio, ((T_MMI_AQI_WCM_REQ *)(msg->SigP))->parameters.threshold); L1_send_trace_cpy(str); } break; case L1_AQI_WCM_CON: { sprintf(str,"WCM_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_WCM_CON *)(msg->SigP))->wcm_action); L1_send_trace_cpy(str); } break; #endif // L1_WCM == 1 #if (L1_AGC_UL == 1) case MMI_AQI_AGC_UL_REQ: { sprintf(str,"AGCU_R %1d %d %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->agc_ul_control, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.control, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.frame_size, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.targeted_level, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.signal_up, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.signal_down, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.max_scale, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.gain_smooth_alpha, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.gain_smooth_alpha_fast, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.gain_smooth_beta, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.gain_smooth_beta_fast, ((T_MMI_AQI_AGC_UL_REQ *)(msg->SigP))->parameters.gain_intp_flag); L1_send_trace_cpy(str); } break; case L1_AQI_AGC_UL_CON: { sprintf(str,"AGCU_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_AGC_UL_CON *)(msg->SigP))->agc_ul_action ); L1_send_trace_cpy(str); } break; #endif// L1_AGC_UL == 1 #if (L1_AGC_DL == 1) case MMI_AQI_AGC_DL_REQ: { sprintf(str,"AGCD_R %1d %d %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->agc_dl_control, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.control, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.frame_size, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.targeted_level, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.signal_up, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.signal_down, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.max_scale, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.gain_smooth_alpha, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.gain_smooth_alpha_fast, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.gain_smooth_beta, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.gain_smooth_beta_fast, ((T_MMI_AQI_AGC_DL_REQ *)(msg->SigP))->parameters.gain_intp_flag); L1_send_trace_cpy(str); } break; case L1_AQI_AGC_DL_CON: { sprintf(str,"AGCD_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_AGC_DL_CON *)(msg->SigP))->agc_dl_action ); L1_send_trace_cpy(str); } break; #endif // L1_AGC_DL == 1 #if (L1_IIR == 2) case MMI_AQI_IIR_DL_REQ: { sprintf(str,"IIR_R %d %d %d %d %d %d %d %04lx %d %d %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->iir_dl_control, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.control, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.frame_size, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.fir_swap, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.fir_filter.fir_enable, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.fir_filter.fir_length, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.fir_filter.fir_shift, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.sos_filter.sos_enable, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.sos_filter.sos_number, ((T_MMI_AQI_IIR_DL_REQ *)(msg->SigP))->parameters.gain); L1_send_trace_cpy(str); } break; case L1_AQI_IIR_DL_CON: { sprintf(str,"IIR_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_IIR_DL_CON *)(msg->SigP))->iir_dl_action ); L1_send_trace_cpy(str); } break; #endif // L1_IIR == 2 #if (L1_LIMITER == 1) case MMI_LIMITER_REQ: { sprintf(str,"LIM_R %ld %d %ld %ld %ld %08lx %ld %ld %ld %ld %04lx %04lx\n\r", (WORD32) l1s.actual_time.fn_mod42432, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->limiter_enable, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->block_size, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->slope_update_period, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->nb_fir_coefs, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->filter_coefs, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->thr_low_0, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->thr_low_slope, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->thr_high_0, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->thr_high_slope, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->gain_fall, (WORD32) ((T_MMI_LIMITER_REQ *)(msg->SigP))->gain_rise); L1_send_trace_cpy(str); } break; #if (L1_DRC == 1) case MMI_AQI_DRC_REQ: { sprintf(str,"DRC_R %d %d %04lx %d %d %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->drc_dl_control, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.speech_mode_samp_f, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.num_subbands, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.frame_len, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.expansion_knee_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.expansion_knee_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.expansion_ratio_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.expansion_ratio_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.max_amplification_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.max_amplification_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.compression_knee_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.compression_knee_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.compression_ratio_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.compression_ratio_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.energy_limiting_th_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.energy_limiting_th_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_threshold_fb, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_threshold_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_threshold_md, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_threshold_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_hangover_spect_preserve, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_release_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.limiter_release_md_hg, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.gain_track_fb_bs, ((T_MMI_AQI_DRC_REQ *)(msg->SigP))->parameters.gain_track_md_hg ); L1_send_trace_cpy(str); } break; case L1_AQI_DRC_CON: { sprintf(str,"DRC_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_AQI_DRC_CON *)(msg->SigP))->drc_dl_action ); L1_send_trace_cpy(str); } break; #endif // L1_DRC == 1 case L1_LIMITER_CON: { sprintf(str,"LIM_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_LIMITER == 1 #if (L1_ES == 1) case MMI_ES_REQ: { sprintf(str,"ES_R %ld %d %d %d %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx %ld %ld %ld %04lx %04lx %04lx %04lx %04lx %04lx %04lx %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_ES_REQ *)(msg->SigP))->es_enable, ((T_MMI_ES_REQ *)(msg->SigP))->es_behavior, ((T_MMI_ES_REQ *)(msg->SigP))->es_mode, ((T_MMI_ES_REQ *)(msg->SigP))->es_gain_dl, ((T_MMI_ES_REQ *)(msg->SigP))->es_gain_ul_1, ((T_MMI_ES_REQ *)(msg->SigP))->es_gain_ul_2, ((T_MMI_ES_REQ *)(msg->SigP))->tcl_fe_ls_thr, ((T_MMI_ES_REQ *)(msg->SigP))->tcl_dt_ls_thr, ((T_MMI_ES_REQ *)(msg->SigP))->tcl_fe_ns_thr, ((T_MMI_ES_REQ *)(msg->SigP))->tcl_dt_ns_thr, ((T_MMI_ES_REQ *)(msg->SigP))->tcl_ne_thr, ((T_MMI_ES_REQ *)(msg->SigP))->ref_ls_pwr, ((T_MMI_ES_REQ *)(msg->SigP))->switching_time, ((T_MMI_ES_REQ *)(msg->SigP))->switching_time_dt, ((T_MMI_ES_REQ *)(msg->SigP))->hang_time, ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_dl_vect[0], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_dl_vect[1], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_dl_vect[2], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_dl_vect[3], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_ul_vect[0], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_ul_vect[1], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_ul_vect[2], ((T_MMI_ES_REQ *)(msg->SigP))->gain_lin_ul_vect[3]); L1_send_trace_cpy(str); } break; case L1_ES_CON: { sprintf(str,"ES_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_ES == 1 #if (L1_MIDI == 1) // MIDI case MMI_MIDI_START_REQ: { sprintf(str,"MID_R %ld %02ld %02ld\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_MIDI_REQ *)(msg->SigP))->session_id, ((T_MMI_MIDI_REQ *)(msg->SigP))->loopback); L1_send_trace_cpy(str); } break; case MMI_MIDI_START_CON: { sprintf(str,"MID_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1A_MIDI_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case MMI_MIDI_STOP_REQ: { sprintf(str,"MID_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_MIDI_STOP_CON: { sprintf(str,"MID_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1A_MIDI_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case API_MIDI_INIT_CON: { sprintf(str,"MDA_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_API_MIDI_INIT_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case API_MIDI_STOP_CON: { sprintf(str,"MDA_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_API_MIDI_STOP_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case L1_MIDI_ENABLE_CON: { sprintf(str,"MDS_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_MIDI_DISABLE_CON: { sprintf(str,"MDS_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_BACK_MIDI_INIT_CON: { sprintf(str,"MDB_C %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_BACK_MIDI_INIT_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; case L1_BACK_MIDI_STOP_CON: { sprintf(str,"MDB_E %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_L1_BACK_MIDI_STOP_CON *)(msg->SigP))->error_code); L1_send_trace_cpy(str); } break; #endif // L1_MIDI #if (L1_VOCODER_IF_CHANGE == 1) case MMI_TCH_VOCODER_CFG_REQ: { sprintf(str,"VCH_R %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_MMI_TCH_VOCODER_CFG_REQ *)(msg->SigP))->vocoder_state); L1_send_trace_cpy(str); } break; case MMI_TCH_VOCODER_CFG_CON: { sprintf(str,"VCH_C %ld \n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_VOCODER_CFG_ENABLE_CON: { sprintf(str,"VEN_C %ld \n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_VOCODER_CFG_DISABLE_CON: { sprintf(str,"VDS_C %ld \n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif // L1_VOCODER_IF_CHANGE == 1 #endif // AUDIO_TASK ////////////////// // GTT messages // ////////////////// #if (L1_GTT) case MMI_GTT_START_REQ: {UWORD8 length =strlen(str); sprintf(str, "GTT_R %ld\n\r", l1s.actual_time.fn_mod42432); rvt_send_trace_cpy ((T_RVT_BUFFER) str, trace_info.l1_trace_user_id, (T_RVT_MSG_LG)length, RVT_BINARY_FORMAT); // L1_send_trace_cpy(str); //omaps00090550 } break; case MMI_GTT_START_CON: { sprintf(str, "GTT_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_GTT_STOP_REQ: { sprintf(str, "GTT_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_GTT_STOP_CON: { sprintf(str, "GTT_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; #endif //(L1_GTT) #if (L1_DYN_DSP_DWNLD == 1) case API_L1_DYN_DWNLD_START_CON: { sprintf(str, "D_DWL_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_L1_DYN_DWNLD_FINISHED: { sprintf(str, "D_DWL_E %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_DYN_DWNLD_STOP_CON: { sprintf(str, "D_DWL_S_L1s %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_L1_DYN_DWNLD_UNINST_OK: { sprintf(str, "D_UNST_OK %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case API_L1_DYN_DWNLD_STOP: { sprintf(str, "D_DWL_ERR %ld %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_API_L1_DYN_DWNLD_STOP *) (msg->SigP))->error); L1_send_trace_cpy(str); } break; case API_L1_CRC_NOT_OK: { sprintf(str, "D_CRC_KO %ld %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_API_L1_CRC_NOT_OK *) (msg->SigP))->patch_id); L1_send_trace_cpy(str); } break; case API_L1_CRC_OK: { sprintf(str, "D_CRC_OK %ld %04lx\n\r", l1s.actual_time.fn_mod42432, ((T_API_L1_CRC_NOT_OK *) (msg->SigP))->patch_id); L1_send_trace_cpy(str); } break; #endif // L1_DYN_DSP_DWNLD == 1 /////////////////// // OML1 messages // /////////////////// case OML1_CLOSE_TCH_LOOP_REQ: { sprintf(str,"CLO_R %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_OML1_CLOSE_TCH_LOOP_REQ *)(msg->SigP))->sub_channel, ((T_OML1_CLOSE_TCH_LOOP_REQ *)(msg->SigP))->frame_erasure); L1_send_trace_cpy(str); } break; case OML1_OPEN_TCH_LOOP_REQ: { sprintf(str,"OLO_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case OML1_START_DAI_TEST_REQ: { sprintf(str,"SDA_R %ld %d\n\r", l1s.actual_time.fn_mod42432, ((T_OML1_START_DAI_TEST_REQ *)(msg->SigP))->tested_device); L1_send_trace_cpy(str); } break; case OML1_STOP_DAI_TEST_REQ: { sprintf(str,"EDA_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; /////////////////// // Test messages // /////////////////// case TST_TEST_HW_REQ: { sprintf(str,"TST_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case L1_TEST_HW_INFO: { UWORD16 tcs_program_release; tcs_program_release = ((T_TST_TEST_HW_CON*)(msg->SigP))->mcu_tcs_program_release; if (((tcs_program_release & 0xFFF0) == 0x2110) || ((tcs_program_release & 0xFFF0) == 0x2120)) sprintf(str, "TST_C %ld TCS_%d.%d.%d.%d_L1_%x_%x FreeCalypso DSP:%xh DYN:%xh CHECKSUM:%xh\n\r", l1s.actual_time.fn_mod42432, (tcs_program_release & 0xF000) >> 12, (tcs_program_release & 0x0F00) >> 8 , (tcs_program_release & 0x00F0) >> 4 , tcs_program_release & 0x000F, ((T_TST_TEST_HW_CON*)(msg->SigP))->mcu_tcs_official, ((T_TST_TEST_HW_CON*)(msg->SigP))->mcu_tcs_internal, ((T_TST_TEST_HW_CON*)(msg->SigP))->dsp_code_version, ((T_TST_TEST_HW_CON*)(msg->SigP))->dsp_patch_version, ((T_TST_TEST_HW_CON*)(msg->SigP))->dsp_checksum); else sprintf(str, "TST_C %ld TCS_%x.%x.%x_L1_%x_%x FreeCalypso DSP:%xh DYN:%xh CHECKSUM:%xh\n\r", l1s.actual_time.fn_mod42432, (tcs_program_release & 0xF000) >> 12, (tcs_program_release & 0x0F00) >> 8 , tcs_program_release & 0x00FF, ((T_TST_TEST_HW_CON*)(msg->SigP))->mcu_tcs_official, ((T_TST_TEST_HW_CON*)(msg->SigP))->mcu_tcs_internal, ((T_TST_TEST_HW_CON*)(msg->SigP))->dsp_code_version, ((T_TST_TEST_HW_CON*)(msg->SigP))->dsp_patch_version, ((T_TST_TEST_HW_CON*)(msg->SigP))->dsp_checksum); #if ((((CHIPSET !=2 )) && ((LONG_JUMP != 0))) || (CHIPSET == 12) || (CHIPSET == 15)) { sprintf(str2,"CHECKSUM before DWNL:%04x\n\r",d_checksum1); strcat(str,str2); sprintf(str2,"CHECKSUM after DWNL :%04x\n\r",d_checksum2); strcat(str,str2); } #endif //((((CHIPSET !=2 )) && ((LONG_JUMP != 0))) || (CHIPSET == 12)) #if (L1_DRP == 1) { char str3[80]; sprintf(str3,"DRP REF SW Version:%08x AND TAG:%08x RESULT = %d \n\r",drp_ref_sw_ver,drp_ref_sw_tag ,l1s.boot_result); strcat(str,str3); } #endif //L1_DRP L1_send_trace_cpy(str); } break; case TST_SLEEP_REQ: { sprintf(str,"SLE_R %ld %d %d\n\r", l1s.actual_time.fn_mod42432, ((T_TST_SLEEP_REQ*)(msg->SigP))->sleep_mode, ((T_TST_SLEEP_REQ*)(msg->SigP))->clocks); L1_send_trace_cpy(str); } break; ///////// // ADC // ///////// case MMI_ADC_REQ: { sprintf(str,"ADC_R %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_STOP_ADC_REQ: { sprintf(str,"ADC_S %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; case MMI_STOP_ADC_CON: { sprintf(str,"ADC_C %ld\n\r", l1s.actual_time.fn_mod42432); L1_send_trace_cpy(str); } break; } // ...End of switch } // End if L1A message trace enabled or SignalCode = TRACE_INFO } #if L1_RECOVERY /*********************************/ /* Trace in case of system crash */ /*********************************/ void l1_trace_recovery(void) { trace_info.l1_memorize_error = '.'; // memorize an error in the L1 L1_send_trace_cpy("> RECOVERY \n\r"); l1_trace_L1_tasks(); // trace L1 tasks status // inform Riviera DAR system about the Recovery performed. L1_send_trace_cpy_DAR("L1 Recovery performed"); } #endif //L1_RECOVERY #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) // MOVE TO INTERNAL MEM IN CASE GSM_IDLE_RAM enabled //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START // KEEP IN EXTERNAL MEM otherwise #if (TRACE_TYPE==1) || (TRACE_TYPE==4) /*************************************************************************/ /* L1 Dynamic traces */ /*************************************************************************/ /* WARNING : Following functions are called by L1S */ /***************************************************/ ////////////////////// // L1S Error Traces // ////////////////////// /*-------------------------------------------------------*/ /* Trace_L1s_Abort() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_L1s_Abort(UWORD8 task) { send_debug_sig(L1S_ABORT, task); } /*-------------------------------------------------------*/ /* Trace_MCU_DSP_Com_Mismatch() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_MCU_DSP_Com_Mismatch(UWORD8 task) { if((l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff ) != (l1s.debug_time & 0xffff )) // Debug number is different than the one expected... { if(!trace_info.DSP_misaligned) // MCU/DSP com. is misaligned. { trace_info.trace_buff_stop = TRUE; // stop buffer trace trace_info.l1_memorize_error = '.'; // memorize an error in the L1 if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { send_debug_sig(MCU_DSP_MISMATCH, task); #if (DSP_DEBUG_TRACE_ENABLE == 1) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_DSP_DEBUG) // Flag DSP error for DSP trace and memorize address of start of DSP trace { #if 0 /* LoCosto code */ #if(MELODY_E2 || L1_MP3 || L1_AAC || L1_DYN_DSP_DWNLD ) // DSP Trace is output ONLY if melody e2, mp3 or dynamic download are not currently running if(trace_info.dsptrace_handler_globals.trace_flag_blocked == FALSE) #endif #else /* FreeCalypso support for L1_DYN_DSP_DWNLD=1 with MELODY_E2=0 */ #if (L1_DYN_DSP_DWNLD) if (l1a.dyn_dwnld.trace_flag_blocked == FALSE) #endif #endif DSP_DEBUG_ENABLE } #endif //(DSP_DEBUG_TRACE_ENABLE) } trace_info.DSP_misaligned = TRUE; } } else { if(trace_info.DSP_misaligned) // MCU/DSP com. is now realigned. { if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { send_debug_sig(NO_MCU_DSP_MISMATCH, task); } trace_info.DSP_misaligned = FALSE; } } } /*-------------------------------------------------------*/ /* Trace_PM_Equal_0() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_PM_Equal_0(UWORD32 pm, UWORD8 task) { if(pm==0) // PM error in the frame { trace_info.trace_buff_stop = TRUE; // stop buffer trace trace_info.l1_memorize_error = '.'; // memorize an error in the L1 if (trace_info.PM_Task == 255) // 1st PM error in the frame: This PM is memorized trace_info.PM_Task = task; // memorize the Task of this 1st PM error /* * FreeCalypso TCS211 reconstruction: the following logic * appears to be a LoCosto addition. */ #if 0 //( ((TRACE_TYPE==1) || (TRACE_TYPE == 4))) if (trace_info.current_config->l1_dyn_trace & 1 << L1_DSP_TRACE_FULL_DUMP) { #if(MELODY_E2 || L1_MP3 || L1_AAC || L1_DYN_DSP_DWNLD ) // DSP Trace is output ONLY if melody e2, mp3 or dynamic download are not currently running if(trace_info.dsptrace_handler_globals.trace_flag_blocked == FALSE) #endif l1_trace_full_dsp_buffer(); // trace DSP trace buffer in case a PM error occurs } // used only for debug mode, #endif } else // no error in the frame :is it a PM recovery ? { if (trace_info.Not_PM_Task == 255) // 1st PM recovery case: task of recovery needs to be memorized trace_info.Not_PM_Task = task; } /* * FreeCalypso TCS211 reconstruction: the following logic * appears to be a LoCosto addition. */ #if 0 if (pm< 0x00C0) //sajal made changed it from- if (pm<= 0x00C0) { #if ( ((TRACE_TYPE==1) || (TRACE_TYPE == 4))) if (trace_info.current_config->l1_dyn_trace & 1 << L1_DYN_TRACE_L1S_DEBUG) { send_debug_sig(IQ_LOW, task); } #endif } #endif } /*-------------------------------------------------------*/ /* Trace_PM_Equal_0_balance() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_PM_Equal_0_balance(void) { // Here below we handle the case where we have lot of PM occuring during next frames // The PM traces are filtered in order to trace: // => the first PM // => the latest PM when we have no more PM if(trace_info.PM_Task != 255) // at least one PM occured in the current frame { if(!trace_info.PM_equal_0) // We are not in a phase of PM: We trace only the 1st PM { if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { send_debug_sig(PM_EQUAL_0, trace_info.PM_Task); #if (DSP_DEBUG_TRACE_ENABLE == 1) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_DSP_DEBUG) // Flag DSP error for DSP trace and memorize address of start of DSP trace { #if 0 /* LoCosto code */ #if(MELODY_E2 || L1_MP3 || L1_AAC || L1_DYN_DSP_DWNLD) // DSP Trace is output ONLY if melody e2, mp3 or dynamic download are not currently running if(trace_info.dsptrace_handler_globals.trace_flag_blocked == FALSE) #endif #else /* FreeCalypso support for L1_DYN_DSP_DWNLD=1 with MELODY_E2=0 */ #if (L1_DYN_DSP_DWNLD) if (l1a.dyn_dwnld.trace_flag_blocked == FALSE) #endif #endif DSP_DEBUG_ENABLE } #endif //(DSP_DEBUG_TRACE_ENABLE) } trace_info.PM_equal_0 = TRUE; // We enter in a phase of a lot of PM } } else // no PM in the current frame { if(trace_info.PM_equal_0) // this is the end of the PM phase: we trace the latest PM { if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { send_debug_sig(NO_PM_EQUAL_0, trace_info.Not_PM_Task); } trace_info.PM_equal_0 = FALSE; } } trace_info.PM_Task = 255; trace_info.Not_PM_Task = 255; } /*-------------------------------------------------------*/ /* send_debug_sig() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void send_debug_sig(UWORD8 debug_code, UWORD8 task) { #if (GSM_IDLE_RAM == 0) xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = debug_code; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = task; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = l1s.debug_time & 0xffff; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = l1s.actual_time.fn; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = l1s.tpu_offset; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = l1s.tpu_offset_hw; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = l1a_l1s_com.adc_mode | (trace_info.Not_PM_Task << 16); // ADC enabled // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) #else CHAR str[128]; switch (debug_code) { case PM_EQUAL_0: { sprintf (str,"> PM %ld %ld %ld %ld %ld %ld %ld %d %ld %d\n\r", l1s.actual_time.fn_mod42432, task, l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff, l1s.debug_time & 0xffff, l1s.actual_time.fn, l1s.tpu_offset, l1s.tpu_offset_hw, l1a_l1s_com.adc_mode, (trace_info.Not_PM_Task << 16)); if (trace_info.trace_filter == FALSE) { #if (GSM_IDLE_RAM == 0) l1_trace_L1_tasks(); // trace L1 tasks status #else l1s_trace_mftab(); #endif l1_display_buffer_trace_fct(); // display buffer fct called trace_info.trace_filter = TRUE; // avoid too much traces displayed } } break; case NO_PM_EQUAL_0: { sprintf (str,"> !PM %ld %ld %ld %ld %ld %ld %ld %d %ld\n\r", l1s.actual_time.fn_mod42432, task, l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff, l1s.debug_time & 0xffff, l1s.actual_time.fn, l1s.tpu_offset, l1s.tpu_offset_hw, l1a_l1s_com.adc_mode); } break; case L1S_ABORT: { sprintf (str,"ABORT %ld %ld %ld %ld %ld %ld %ld %ld\n\r", l1s.actual_time.fn_mod42432, task, l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff, l1s.debug_time & 0xffff, l1s.actual_time.fn, l1s.tpu_offset, l1s.tpu_offset_hw, l1a_l1s_com.adc_mode); } break; case MCU_DSP_MISMATCH: { sprintf (str,"> COM %ld %ld %ld %ld %ld %ld %ld %ld\n\r", l1s.actual_time.fn_mod42432, task, l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff, l1s.debug_time & 0xffff, l1s.actual_time.fn, l1s.tpu_offset, l1s.tpu_offset_hw, l1a_l1s_com.adc_mode); } break; case NO_MCU_DSP_MISMATCH: { sprintf (str,">!COM %ld %ld %ld %ld %ld %ld %ld %ld\n\r", l1s.actual_time.fn_mod42432, task, l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff, l1s.debug_time & 0xffff, l1s.actual_time.fn, l1s.tpu_offset, l1s.tpu_offset_hw, l1a_l1s_com.adc_mode); } break; } l1_intram_put_trace(str); #endif // (GSM_IDLE_RAM == 0) } #endif //(TRACE_TYPE==1) || (TRACE_TYPE==4) // l1_trace_gauging_reset() // Parameters : // This means instability with the 32Khz // void l1_trace_gauging_reset(void) { // #if (CODE_VERSION != SIMULATION) // #if (TRACE_TYPE == 2) || (TRACE_TYPE == 3) // //trace if the gauging can't succeed // L1_trace_char('#'); // #elif (TRACE_TYPE !=0 ) // if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { */ // // to trace during Gauging interrupt causes issue with Pool memory. // the trace will be done with the next gauging. // trace_info.reset_gauging_algo = TRUE; // trace Reset gauging Algorithm // } #endif // #else // Simulation part // #if (TRACE_TYPE==5) // trace_ULPD("Reset Gauging algorithm", l1s.actual_time.fn); #endif */ // #endif // Simulation part //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif // !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) /////////////////////// // P.Transfer traces // /////////////////////// #if L1_GPRS /* Trace_Packet_Transfer() */ /* Parameters : */ /* Return : */ void Trace_Packet_Transfer(UWORD8 prev_crc_error) // Previous RX blocks CRC_ERROR summary { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = L1S_PACKET_TRANSFER; switch(l1s.actual_time.fn % 52) { case 4: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 0; break; case 8: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 1; break; case 12: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 2; break; case 17: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 3; break; case 21: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 4; break; case 25: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 5; break; case 30: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 6; break; case 34: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 7; break; case 38: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 8; break; case 43: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 9; break; case 47: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 10; break; case 51: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 11; break; default: ((T_TRACE_INFO *)(msg->SigP))->tab[0] = 999; break; } ((T_TRACE_INFO *)(msg->SigP))->tab[1] = prev_crc_error; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #if (RLC_DL_BLOCK_STAT) /* Trace_RLC_statistic() */ /* Parameters : */ /* Return : */ void Trace_RLC_statistic(UWORD8 cs_type, // Previous RX allocation UWORD32 nb_frames, // Previous Number of RX blocks received UWORD32 nb_bad_frames, // Previous RX blocks CRC_ERROR summary UWORD32 nb_cs1_frames) // Current TX allocation for Polling { xSignalHeaderRec *msg; UWORD8 i; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = L1S_RLC_STAT; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = cs_type; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = nb_frames; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = nb_bad_frames; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = nb_cs1_frames; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } // End Trace_RLC_statistic #endif //(RLC_DL_BLOCK_STAT) #if (DEBUG_DEDIC_TCH_BLOCK_STAT == 1) /* Trace_dedic_tch_block_stat */ /* Parameters : */ /* Return : */ void Trace_dedic_tch_block_stat(UWORD8 block_id, // ID of block: FACCH, SPEECH, SID_UPDATE UWORD16 d_nerr, // RXQUAL UWORD8 voco_type) // vocoder type for Half-rate { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = DEDIC_TCH_BLOCK_STAT; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = block_id; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = d_nerr; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = voco_type; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = 0; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = 0; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = 0; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = 0; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = 0; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } // End Trace_dedic_tch_block_stat #endif //(DEBUG_DEDIC_TCH_BLOCK_STAT == 1) /* Trace_dl_ptcch() */ /* Parameters : */ /* Return : */ void Trace_dl_ptcch(UWORD8 ordered_ta, UWORD8 crc, UWORD8 ta_index, UWORD8 ts, UWORD16 elt1, UWORD16 elt2, UWORD16 elt3, UWORD16 elt4, UWORD16 elt5, UWORD16 elt6, UWORD16 elt7, UWORD16 elt8) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = DL_PTCCH; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = crc; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = ordered_ta; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = ta_index; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = ts; //timeslot ((T_TRACE_INFO *)(msg->SigP))->tab[4] = elt1;//16 TA values, each 8 bits ((T_TRACE_INFO *)(msg->SigP))->tab[4] = ((T_TRACE_INFO *)(msg->SigP))->tab[4] << 0x10 | elt2; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = elt3; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = ((T_TRACE_INFO *)(msg->SigP))->tab[5] << 0x10 | elt4; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = elt5; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = ((T_TRACE_INFO *)(msg->SigP))->tab[6] << 0x10 | elt6; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = elt7; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = ((T_TRACE_INFO *)(msg->SigP))->tab[7] << 0x10 | elt8; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } // End Trace_ptcch_error #if FF_TBF /*-------------------------------------------------------*/ /* Trace_rlc_ul_param() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_rlc_ul_param(UWORD8 assignment_id, UWORD32 fn, UWORD8 tx_no, UWORD8 ta, BOOL fix_alloc_exhaust, UWORD32 cs_type) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = RLC_UL_PARAM; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = assignment_id; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = fn; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = tx_no; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = ta; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = fix_alloc_exhaust; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = cs_type; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } /*-------------------------------------------------------*/ /* Trace_rlc_dl_param() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_rlc_dl_param( UWORD8 assignment_id, UWORD32 fn, UWORD8 rx_no, UWORD8 rlc_blocks_sent, UWORD8 last_poll_response, UWORD32 status1, UWORD32 status2 ) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = RLC_DL_PARAM; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = assignment_id; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = fn; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = rx_no; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = rlc_blocks_sent; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = last_poll_response; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = status1; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = status2; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } /*-------------------------------------------------------*/ /* Trace_rlc_poll_param() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* */ /*-------------------------------------------------------*/ void Trace_rlc_poll_param(BOOL poll, UWORD32 fn, UWORD8 poll_ts, UWORD8 tx_alloc, UWORD8 tx_data, UWORD8 rx_alloc, UWORD8 last_poll_resp, UWORD8 ack_type) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = RLC_POLL_PARAM; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = poll; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = fn; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = poll_ts; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = tx_alloc; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = tx_data; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = rx_alloc; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = last_poll_resp; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = ack_type; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #else /* Trace_rlc_ul_param() */ /* Parameters : */ /* Return : */ 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) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = RLC_UL_PARAM; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = assignment_id; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = tx_no; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = fn; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = ta; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = a_pu_gprs; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = a_du_gprs; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = fix_alloc_exhaust; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } /* Trace_rlc_dl_param() */ /* Parameters : */ /* Return : */ 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) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = RLC_DL_PARAM; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = assignment_id; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = fn; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = d_rlcmac_rx_no_gprs; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = rx_no; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = rlc_blocks_sent; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = last_poll_response; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif /* Trace_uplink_no_TA() */ /* Parameters : */ /* Return : */ void Trace_uplink_no_TA() { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = FORBIDDEN_UPLINK; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } /* l1_trace_ptcch_disable() */ /* Parameters : */ /* Return : */ /* Trace the gauging is running */ void l1_trace_ptcch_disable(void) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = PTCCH_DISABLED; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif //(TRACE_TYPE==1) || (TRACE_TYPE==4) } /* Trace_pdtch() */ /* Parameters : */ /* Return : */ void Trace_condensed_pdtch(UWORD8 rx_allocation, UWORD8 tx_allocation) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_CONDENSED_PDTCH_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_CONDENSED_PDTCH; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->fn = l1s.actual_time.fn_mod52; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->rx_allocation = rx_allocation; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->tx_allocation = tx_allocation; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->blk_status = trace_info.pdtch_trace.blk_status; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->dl_cs_type = trace_info.pdtch_trace.dl_cs_type; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->dl_status[0] = trace_info.pdtch_trace.dl_status[0]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->dl_status[1] = trace_info.pdtch_trace.dl_status[1]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->dl_status[2] = trace_info.pdtch_trace.dl_status[2]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->dl_status[3] = trace_info.pdtch_trace.dl_status[3]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[0] = trace_info.pdtch_trace.ul_status[0]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[1] = trace_info.pdtch_trace.ul_status[1]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[2] = trace_info.pdtch_trace.ul_status[2]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[3] = trace_info.pdtch_trace.ul_status[3]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[4] = trace_info.pdtch_trace.ul_status[4]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[5] = trace_info.pdtch_trace.ul_status[5]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[6] = trace_info.pdtch_trace.ul_status[6]; ((T_CONDENSED_PDTCH_INFO *)(msg->SigP))->ul_status[7] = trace_info.pdtch_trace.ul_status[7]; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif // L1_GPRS /////////////////////// // DSP error traces // /////////////////////// #if (D_ERROR_STATUS_TRACE_ENABLE) /* Trace_d_error_status() */ /* Parameters : */ /* Return : */ void Trace_d_error_status() { #if L1_GPRS UWORD16 d_error_status_masked = (l1s_dsp_com.dsp_ndb_ptr->d_error_status) & (trace_info.d_error_status_masks[l1a_l1s_com.dsp_scheduler_mode - 1]); // depends on the scheduler mode #else UWORD16 d_error_status_masked = (l1s_dsp_com.dsp_ndb_ptr->d_error_status) & (trace_info.d_error_status_masks[GSM_SCHEDULER - 1]); #endif //L1_GPRS UWORD16 changed_bits = d_error_status_masked ^ trace_info.d_error_status_old; // trace in case of change of status (field is reseted on change of scheduler) if (changed_bits) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = L1S_D_ERROR_STATUS; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = (UWORD16)l1s.debug_time; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = d_error_status_masked; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) #if (DSP_DEBUG_TRACE_ENABLE == 1) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_DSP_DEBUG) { // DSP debug buffer trace only if an ERROR is detected (not for a End of error detection) if ((changed_bits & d_error_status_masked) & ~trace_info.d_error_status_old) { #if 0 /* LoCosto code */ #if(MELODY_E2 || L1_MP3 || L1_AAC || L1_DYN_DSP_DWNLD ) // DSP Trace is output ONLY if melody e2, mp3 or dynamic download are not currently running if(trace_info.dsptrace_handler_globals.trace_flag_blocked == FALSE) #endif #else /* FreeCalypso support for L1_DYN_DSP_DWNLD=1 with MELODY_E2=0 */ #if (L1_DYN_DSP_DWNLD) if (l1a.dyn_dwnld.trace_flag_blocked == FALSE) #endif #endif // Flag DSP error for DSP trace and memorize address of start of DSP trace DSP_DEBUG_ENABLE } } #endif //(DSP_DEBUG_TRACE_ENABLE) trace_info.d_error_status_old = d_error_status_masked; } // Clear bits that have been set by the DSP l1s_dsp_com.dsp_ndb_ptr->d_error_status &= ~d_error_status_masked; } #endif //(D_ERROR_STATUS_TRACE_ENABLE) #if (DSP_DEBUG_TRACE_ENABLE == 1) /* Trace_dsp_debug() */ /* Parameters : */ /* Return : */ void Trace_dsp_debug() { // WARNING: l1s_dsp_com.dsp_r_page changed in l1s_end_manager() but DSP DB pointers haven't been // updated !!! UWORD32 start_address = trace_info.dsp_debug_buf_start[l1s_dsp_com.dsp_r_page]; UWORD32 end_address, stop_address; UWORD16 size; API *i; UWORD8 j = 0; xSignalHeaderRec *msg; // DSP DEBUG trace only works when GSM activity is enabled if (l1s_dsp_com.dsp_r_page_used == FALSE) { trace_info.dsp_debug_buf_start[0] = trace_info.dsp_debug_buf_start[1] = 0; } // If a DSP error occured... if (start_address) { WORD32 diff = l1s.debug_time - trace_info.fn_last_dsp_debug; if (diff < 0) diff += 0xFFFFFFFF; if (diff >= 104) { // Take the DB_R pointers on the start/end of last TDMA trace start_address = 0xFFD00000 + (start_address - 0x800) * 2; end_address = 0xFFD00000 + (l1s_dsp_com.dsp_db2_other_r_ptr->d_debug_ptr_end - 0x800) * 2; // Process size of block if (end_address >= start_address) { size = end_address - start_address; stop_address = end_address; } else { size = end_address - start_address + C_DEBUG_BUFFER_SIZE * 2; stop_address = (0xFFD00000 + (C_DEBUG_BUFFER_ADD + 1 + C_DEBUG_BUFFER_SIZE - 0x800) * 2); } if ((size > 0) && (size < 1000) && (size < C_DEBUG_BUFFER_SIZE)) { // Allocate memory pool msg = os_alloc_sig(size+sizeof(T_DSP_DEBUG_INFO)-2*sizeof(API)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_DSP_DEBUG; ((T_DSP_DEBUG_INFO *)(msg->SigP))->size = size; ((T_DSP_DEBUG_INFO *)(msg->SigP))->fn = trace_info.dsp_debug_fn[l1s_dsp_com.dsp_r_page]; ((T_DSP_DEBUG_INFO *)(msg->SigP))->debug_time = trace_info.dsp_debug_time[l1s_dsp_com.dsp_r_page]; ((T_DSP_DEBUG_INFO *)(msg->SigP))->patch_version = l1s_dsp_com.dsp_ndb_ptr->d_version_number2; ((T_DSP_DEBUG_INFO *)(msg->SigP))->trace_level = l1s_dsp_com.dsp_ndb_ptr->d_debug_trace_type; // Copy data into message for (i = (API*)start_address; i < (API*)stop_address; i++) { ((T_DSP_DEBUG_INFO *)(msg->SigP))->buffer[j++] = *i; } // Circular buffer management if (i != (API*)end_address) { for (i = (API*) (0xFFD00000 + (C_DEBUG_BUFFER_ADD + 1 - 0x800)*2); i < (API*)end_address; i++) { ((T_DSP_DEBUG_INFO *)(msg->SigP))->buffer[j++] = *i; } } // Send sig to L1A os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) // Set FN to avoid another DSP debug trace in the next 104 frames. trace_info.fn_last_dsp_debug = l1s.debug_time; } } // Enf if diff >= 104 // Clear flag trace_info.dsp_debug_buf_start[l1s_dsp_com.dsp_r_page] = 0; } // End if "DSP error occured" } #if (AMR == 1) /* Trace_dsp_amr_debug() */ /* Parameters : */ /* Return : */ void Trace_dsp_amr_debug() { UWORD32 start_address; UWORD32 end_address, stop_address; UWORD16 size; API *i; UWORD8 j = 0; xSignalHeaderRec *msg; // Start address of the AMR trace in the DSP trace buffer start_address = l1s_dsp_com.dsp_ndb_ptr->p_debug_amr; // Clear the pointer l1s_dsp_com.dsp_ndb_ptr->p_debug_amr = 0; // If start address different of 0 -> trace to be performed if (start_address != 0) { // Process MCU start address start_address = 0xFFD00000 + (start_address - 0x800) * 2; // Check ID and read size if (((*((API *)start_address) & 0xFE00) >> 9) == C_AMR_TRACE_ID) { // Read size size = (*((API *)start_address) & 0x1FF) * 2; start_address += sizeof(API); // Do not dump header // Process stop address end_address = start_address + size; // Circular buffer... if (end_address <= (0xFFD00000 + (C_DEBUG_BUFFER_ADD + 1 + C_DEBUG_BUFFER_SIZE - 0x800) * 2)) { stop_address = end_address; } else { stop_address = (0xFFD00000 + (C_DEBUG_BUFFER_ADD + 1 + C_DEBUG_BUFFER_SIZE - 0x800) * 2); end_address -= C_DEBUG_BUFFER_SIZE * 2; } // Create L1S->L1A message and dump buffer // Allocate memory pool msg = os_alloc_sig(size+sizeof(T_DSP_AMR_DEBUG_INFO)-2*sizeof(API)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_DSP_AMR_DEBUG; ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->size = size; ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->fn = l1s.actual_time.fn; // Copy data into message for (i = (API*)start_address; i < (API*)stop_address; i++) { ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->buffer[j++] = *i; } // Circular buffer management if (i != (API*)end_address) { for (i = (API*) (0xFFD00000 + (C_DEBUG_BUFFER_ADD + 1 - 0x800)*2); i < (API*)end_address; i++) { ((T_DSP_AMR_DEBUG_INFO *)(msg->SigP))->buffer[j++] = *i; } } // Send sig to L1A os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } } } #endif // #if (AMR == 1) #endif //DSP_DEBUG_TRACE_ENABLE #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) // MOVE TO INTERNAL MEM IN CASE GSM_IDLE_RAM enabled //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START // KEEP IN EXTERNAL MEM otherwise #if (TRACE_TYPE==1) || (TRACE_TYPE==4) /* l1_display_buffer_trace_fct() */ /* Parameters : */ /* Return : */ /* Functionality : */ /* trace buffer fct */ void l1_display_buffer_trace_fct(void) { CHAR str[100]; UWORD8 fct_id,i,j; //UWORD8 index = trace_info.trace_fct_buff_index; - OMAPS90550-new trace_info.trace_buff_stop = TRUE; // stop buffer trace if (((l1s.version.mcu_tcs_program_release & 0xFFF0) == 0x2110) || ((l1s.version.mcu_tcs_program_release & 0xFFF0) == 0x2120)) sprintf(str,"SW version: TCS%x.%x.%x.%x_L1_%x_%x\n\r", (l1s.version.mcu_tcs_program_release & 0xF000) >> 12, (l1s.version.mcu_tcs_program_release & 0x0F00) >> 8, (l1s.version.mcu_tcs_program_release & 0x00F0) >> 4, l1s.version.mcu_tcs_program_release & 0x000F, l1s.version.mcu_tcs_official, l1s.version.mcu_tcs_internal); else sprintf(str,"SW version: TCS.%x.%x.%x_L1_%x_%x\n\r", (l1s.version.mcu_tcs_program_release & 0xF000) >> 12, (l1s.version.mcu_tcs_program_release & 0x0F00) >> 8, l1s.version.mcu_tcs_program_release & 0x00FF, l1s.version.mcu_tcs_official, l1s.version.mcu_tcs_internal); #if (GSM_IDLE_RAM == 0) L1_send_trace_cpy(str); #else l1_intram_put_trace(str); #endif sprintf (str,"\n\r array index: %d\n\r",trace_info.trace_fct_buff_index); #if (GSM_IDLE_RAM == 0) L1_send_trace_cpy(str); #else l1_intram_put_trace(str); #endif i = trace_info.trace_fct_buff_index; for (j=0;j<TRACE_FCT_BUFF_SIZE;j++) { fct_id = trace_info.trace_fct_buff[i]; #if TRACE_FULL_NAME // display the function by its name (cost in code size and CPU) sprintf (str,"%d: %d %s\n\r",i,fct_id,string_fct_trace[fct_id]); #else // or display the fct by its id sprintf (str,"%d: %d\n\r",i,fct_id); #endif #if (GSM_IDLE_RAM == 0) L1_send_trace_cpy(str); #else l1_intram_put_trace(str); #endif i = (i + 1) % TRACE_FCT_BUFF_SIZE; } trace_info.trace_buff_stop = FALSE; // start buffer trace } /////////////////////////// // Trace type 1 CPU load // /////////////////////////// #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) && (CODE_VERSION != SIMULATION) /* L1S_CPU_load_process() */ /* Parameters : */ /* Return : */ #if 0 /* FreeCalypso: function not present in TCS211 */ void Trace_L1S_CPU_load() { #define TIMER_RESET_VALUE (0xFFFF) #define TICKS_PER_TDMA (1875) unsigned long cpu; layer_1_sync_end_time = TIMER_RESET_VALUE - Dtimer2_ReadValue(); // Trace cpu = (100 * layer_1_sync_end_time) / TICKS_PER_TDMA; if (cpu > max_cpu) { max_cpu=cpu; fn_max_cpu=l1s.actual_time.fn; max_cpu_flag = 1; } if (((l1s.actual_time.fn%1326) == 0) && (max_cpu_flag == 0)) max_cpu = 0; } /* end of Trace_L1S_CPU_load() */ #endif #if 0 /* FreeCalypso: feature not present in our chipset */ /********** DSP CPU load measurement *************/ void l1_dsp_cpu_load_read() { #define DSP_TIMER_PRESCALER_VALUE (9) T_DB_MCU_TO_DSP_CPU_LOAD *mcu_dsp_cpu_load_r_ptr; // DSP CPU load measurement UWORD32 dsp_fgd_tsk_cycles = 0L; UWORD16 dsp_tdma_fn; UWORD16 d_dsp_page_read; UWORD32 d_dsp_work_period; UWORD32 d_dsp_fgd_tsk_cycles_per_tdma; UWORD16 d_tdma_fnmod4; UWORD16 d_tdma_fnmod13; // **** 1. Read the DSP FGD task cycles from API **** // Check if DSP CPU load has been written in first buffer mcu_dsp_cpu_load_r_ptr = (T_DB_MCU_TO_DSP_CPU_LOAD *)DSP_CPU_LOAD_DB_W_PAGE_0; if ((API)mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim0 & 0x8000) { mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim0 &= ~(0x8000); // reset the bit dsp_fgd_tsk_cycles = (UWORD32)(((UWORD32)mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim0 << 16) + ((UWORD32)mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim1)); dsp_fgd_tsk_cycles = (dsp_fgd_tsk_cycles * DSP_TIMER_PRESCALER_VALUE); dsp_tdma_fn = (API)mcu_dsp_cpu_load_r_ptr->d_tdma_dsp_fn; d_dsp_page_read = 0; } else { // Check if DSP CPU load has been written in second buffer mcu_dsp_cpu_load_r_ptr = (T_DB_MCU_TO_DSP_CPU_LOAD *)DSP_CPU_LOAD_DB_W_PAGE_1; if ((API)mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim0 & 0x8000) { mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim0 &= ~(0x8000); // reset the bit dsp_fgd_tsk_cycles = (UWORD32)(((UWORD32)mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim0 << 16) + ((UWORD32)mcu_dsp_cpu_load_r_ptr->d_dsp_fgd_tsk_tim1)); dsp_fgd_tsk_cycles = (dsp_fgd_tsk_cycles * DSP_TIMER_PRESCALER_VALUE); dsp_tdma_fn = (API)mcu_dsp_cpu_load_r_ptr->d_tdma_dsp_fn; d_dsp_page_read = 1; } } // **** 2. Get the number of DSP cycles per TDMA (based on DSP work period) **** if (dsp_fgd_tsk_cycles != 0L) { /* Take care of TDMA FN overflow */ d_dsp_work_period = (l1s.actual_time.fn_mod42432 - dsp_tdma_fn - 2 + 42432) % 42432; d_dsp_fgd_tsk_cycles_per_tdma = dsp_fgd_tsk_cycles/(d_dsp_work_period + 1); // to avoid divide by 0, just in case // **** 3. For DSP work-period, update max cycles count **** d_tdma_fnmod13 = (l1s.actual_time.fn_mod13 - 1 + 13) % 13; d_tdma_fnmod4 = (l1s.actual_time.fn_mod13_mod4 - 1 + 4) % 4; if (d_tdma_fnmod13 == 12) //Idle/SACCH/PTCCH frames { if (dsp_max_cpu_load_idle_frame <= d_dsp_fgd_tsk_cycles_per_tdma) dsp_max_cpu_load_idle_frame = d_dsp_fgd_tsk_cycles_per_tdma; } else // for TDMA frames 0/1/2/3 (mod 4) { if (dsp_max_cpu_load_trace_array[d_tdma_fnmod4] <= d_dsp_fgd_tsk_cycles_per_tdma) dsp_max_cpu_load_trace_array[d_tdma_fnmod4] = d_dsp_fgd_tsk_cycles_per_tdma; } // **** 4. If 104 TDMA frames have elapsed, print out the DSP CPU cycles **** if ((l1s.actual_time.fn_mod42432 % 104) == 0) { l1_dsp_cpu_load_trace_flag = 1; } } } /* end of l1_dsp_cpu_load_read() */ #endif #endif //((TRACE_TYPE == 1) && (CODE_VERSION != SIMULATION)) #endif // (TRACE_TYPE == 1) // (TRACE_TYPE == 4) //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif ///////////////////////////////////// // Generic function for L1S traces // ///////////////////////////////////// /* Trace_params() */ /* Parameters : */ /* Return : */ /* Description: This function can be used to quickly add */ /* a trace */ /* NOT TO USE FOR PERMANENT TRACES !!! */ void Trace_params(UWORD8 debug_code, UWORD32 param0, UWORD32 param1, UWORD32 param2, UWORD32 param3, UWORD32 param4, UWORD32 param5, UWORD32 param6) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = debug_code; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = param0; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = param1; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = param2; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = param3; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = param4; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = param5; ((T_TRACE_INFO *)(msg->SigP))->tab[6] = param6; ((T_TRACE_INFO *)(msg->SigP))->tab[7] = l1s.actual_time.fn; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #if (TRACE_TYPE == 4) //////////////////////////////////////// // Dynamic trace configuration change // //////////////////////////////////////// /* Trace_dyn_trace_change() */ /* Parameters : */ /* Return : */ void Trace_dyn_trace_change() { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = DYN_TRACE_CHANGE; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif // TRACE_TYPE 4 #endif // TRACE TYPE 1 TRACE TYPE 4 #endif // NOT L1_BINARY_TRACE /************************************ CPU load trace ******************************************************/ #endif // (TRACE_TYPE==1) || (TRACE_TYPE==4) || (TRACE_TYPE==5) #if (TRACE_TYPE==7) /* l1_trace_message() */ /* Parameters : */ /* Return : */ /* Description: L1 Trace formatting. */ void l1_trace_message(xSignalHeaderRec *msg) { char *str; if (msg->SignalCode == TRACE_INFO) { // If memory allocation is OK if (rvt_mem_alloc(trace_info.l1_trace_user_id, 200, (T_RVT_BUFFER *) &str) == RVT_OK) { UWORD8 debug_code = ((T_TRACE_INFO *)(msg->SigP))->debug_code; switch(debug_code) { case TRACE_CPU_LOAD: { UWORD8 i; static char str_r[16]; str[0] = '\0'; str_r[0] = '\0'; for (i=0;i<C_MESURE_DEPTH;i++) { if (((T_TRACE_INFO_CPU_LOAD *)(msg->SigP))->tab[i].valid == TRUE) { sprintf (str_r,"%d %d\n\r", ((T_TRACE_INFO_CPU_LOAD *)(msg->SigP))->tab[i].cpu, ((T_TRACE_INFO_CPU_LOAD *)(msg->SigP))->tab[i].fn); strcat(str,str_r); } // end if } // end for L1_send_trace_no_cpy(str); // Send to Trace task } // End case break; default: { sprintf (str,"DEB_I %ld %ld %ld %ld %ld %ld %ld %ld\n\r", ((T_TRACE_INFO *)(msg->SigP))->tab[0], ((T_TRACE_INFO *)(msg->SigP))->tab[1], ((T_TRACE_INFO *)(msg->SigP))->tab[2], ((T_TRACE_INFO *)(msg->SigP))->tab[3], ((T_TRACE_INFO *)(msg->SigP))->tab[4], ((T_TRACE_INFO *)(msg->SigP))->tab[5], ((T_TRACE_INFO *)(msg->SigP))->tab[6], ((T_TRACE_INFO *)(msg->SigP))->tab[7]); L1_send_trace_no_cpy(str); } break; } // End switch } // End if "memory allocation OK" } // End if msg->SignalCode == TRACE_INFO } // l1_trace_message /* l1_cpu_load_init() */ /* Parameters : */ /* Return : */ void l1_cpu_load_init() { UWORD8 i; d_mesure_index = 0; for (i=0;i<C_MESURE_DEPTH;i++) d_mesure[i].valid = FALSE; } //l1_cpu_load_init /* l1_trace_buf_meas() */ /* Parameters : */ /* Return : */ void l1_trace_buf_meas() { xSignalHeaderRec *msg; UWORD8 i; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO_CPU_LOAD)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO_CPU_LOAD *)(msg->SigP))->debug_code = TRACE_CPU_LOAD; for (i=0;i<C_MESURE_DEPTH;i++) { ((T_TRACE_INFO_CPU_LOAD *)(msg->SigP))->tab[i] = d_mesure[i]; d_mesure[i].valid = FALSE; } // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } // l1_trace_buf_meas /* l1_cpu_load_start() */ /* Parameters : */ /* Return : */ void l1_cpu_load_start() { // Reset hardware timer Dtimer2_Start(0); // Timers initialization Dtimer2_Init_cntl(CPU_LOAD_TIMER_RESET_VALUE,0,C_PTV,1); // PTV = 2 --> Tick = 9.85 us // PTV = 0 --> Tick = 2.416 us // Start hardware timer Dtimer2_Start(1); } //l1_cpu_load_start /* l1_cpu_load_stop() */ /* Parameters : */ /* Return : */ void l1_cpu_load_stop() { UWORD8 i; UWORD16 l1s_cpu_load_end; // Stop hardware timer Dtimer2_Start(0); l1s_cpu_load_end = Dtimer2_ReadValue(); // Tint = Tclk * (LOAD_TIM+1) * 2^(PTV+1) // Tclk = 1.2308us for Fclk=13Mhz // PTV = X (pre-scaler field) d_mesure[d_mesure_index].cpu = (UWORD16)((CPU_LOAD_TIMER_RESET_VALUE - l1s_cpu_load_end) * CPU_LOAD_TICK); d_mesure[d_mesure_index].fn = l1s.actual_time.fn_mod104; d_mesure[d_mesure_index++].valid = TRUE; //================================================= // Compute result on less loaded TDMA //------------------------------------------------- if (l1s.actual_time.fn_mod13 == 11) { l1_trace_buf_meas(); d_mesure_index = 0; } // End if } // l1_cpu_load_stop /* l1_cpu_load_interm() */ /* Parameters : */ /* Return : */ void l1_cpu_load_interm() { UWORD8 i; UWORD16 l1s_cpu_load_end; // Stop hardware timer Dtimer2_Start(0); l1s_cpu_load_end = Dtimer2_ReadValue(); //================================================= // Tint = Tclk * (LOAD_TIM+1) * 2^(PTV+1) // Tclk = 1.2308us for Fclk=13Mhz // PTV = X (pre-scaler field) //------------------------------------------------- d_mesure[d_mesure_index].cpu_access = (UWORD16)((CPU_LOAD_TIMER_RESET_VALUE - l1s_cpu_load_end) * CPU_LOAD_TICK); } // l1_cpu_load_interm #endif //(TRACE_TYPE == 7) #if (TRACE_TYPE==6) /* l1_trace_cpu_load() */ /* Parameters : */ /* Return : */ void l1_trace_cpu_load(UWORD8 cpu_load) { char str[240]; sprintf(str,"%d\n\r", cpu_load); L1_send_trace_cpy(str); } #endif // TRACE_TYPE 6 /* Trace functions also used for recovery */ #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) // MOVE TO INTERNAL MEM IN CASE GSM_IDLE_RAM enabled //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START // KEEP IN EXTERNAL MEM otherwise /* l1_check_pm_error() */ /* Parameters : */ /* Return : */ /* NEW COMPILER MANAGEMENT * Removal of inline on l1_check_pm_error. * With new compiler, inline means static inline involving the * function to not be seen outside this file */ void l1_check_pm_error(UWORD32 pm,UWORD8 task) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) Trace_PM_Equal_0(pm,task); #endif #if L1_RECOVERY if (pm==0) { l1s.recovery.frame_count++; // Recovery timer has expired => send autorecovery message to L1A // 100: arbitrary value, corresponds to about 0.5 s if (l1s.recovery.frame_count >= 100) { // Set recovery flag, this flag will be checked by L1A l1a_l1s_com.recovery_flag = TRUE; // Reset error flags and counter l1s.recovery.frame_count = 0; } } #endif } /* l1_check_com_mismatch() */ /* Parameters : */ /* Return : */ /* NEW COMPILER MANAGEMENT * Removal of inline on l1_check_com_mismatch. * With new compiler, inline means static inline involving the * function to not be seen outside this file*/ void l1_check_com_mismatch(UWORD8 task) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) Trace_MCU_DSP_Com_Mismatch(task); #endif #if L1_RECOVERY if((l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff ) != (l1s.debug_time & 0xffff )) { l1s.recovery.frame_count++; // Recovery timer has expired => send autorecovery message to L1A // 100: arbitrary value, corresponds to about 0.5 s if (l1s.recovery.frame_count >= 100) { // Set recovery flag, this flag will be checked by L1A l1a_l1s_com.recovery_flag = TRUE; // Reset error flags and counter l1s.recovery.frame_count = 0; } } #endif } //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif /* Functions also used for simulation */ #if ((GSM_IDLE_RAM != 0)) //omaps00090550 //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 5)) void l1_intram_send_trace(void) { UWORD8 * start_adr, str_index; T_RVT_MSG_LG size; UWORD8 str[INTRAM_TRACE_BUFFER_SIZE]; str_index=0; if (intram_trace_size != 0) { if((intram_buffer_current_ptr - intram_trace_size) < intram_trace_buffer) { start_adr = (UWORD8 *) (intram_buffer_current_ptr - intram_trace_size); start_adr += INTRAM_TRACE_BUFFER_SIZE; size = intram_trace_size - ((T_RVT_MSG_LG) (intram_buffer_current_ptr - intram_trace_buffer)); strncpy((CHAR*) (&str[str_index]), (CHAR*)start_adr,(size_t) size); str_index+=size; size = (T_RVT_MSG_LG) (intram_buffer_current_ptr - intram_trace_buffer); strncpy((CHAR*)(&str[str_index]), (CHAR*)intram_trace_buffer, (size_t) size); } else { size = intram_trace_size; start_adr=(UWORD8 *) (intram_buffer_current_ptr - intram_trace_size); strncpy((CHAR*) (&str[str_index]), (CHAR*)start_adr,(size_t) size); } str_index+=size; str[str_index]=0x00; rvt_send_trace_cpy ((T_RVT_BUFFER) (str),trace_info.l1_trace_user_id, (T_RVT_MSG_LG) (intram_trace_size+1), RVT_ASCII_FORMAT); intram_trace_size=0; } } void l1_intram_put_trace(CHAR * msg) { UWORD8 index, string_size; string_size=strlen((CHAR*) msg); for(index=0;index<string_size;index++) { *(intram_buffer_current_ptr++)=msg[index]; if (intram_trace_size < INTRAM_TRACE_BUFFER_SIZE) intram_trace_size++; if (intram_buffer_current_ptr == (intram_trace_buffer + INTRAM_TRACE_BUFFER_SIZE)) { intram_buffer_current_ptr-=INTRAM_TRACE_BUFFER_SIZE; } } } void l1s_trace_mftab(void) { WORD8 index, offset=0, nb_bitmap; UWORD8 diff_detected=0; CHAR str2[SIZE_TAB_L1S_MONITOR*8+128]; UWORD8 count=0; T_L1S_GSM_IDLE_INTRAM * gsm_idle_ram_ctl; gsm_idle_ram_ctl = &(l1s.gsm_idle_ram_ctl); #if (CODE_VERSION == NOT_SIMULATION) #if ((GSM_IDLE_RAM_DEBUG == 1) && (CHIPSET == 12)) offset=sprintf(str2,"TASK %ld %ld %ld %ld %ld |%ld| (CS5/CS4:%ld,%ld) ", (l1s.actual_time.fn%42432), l1s.gsm_idle_ram_ctl.l1s_full_exec, gsm_idle_ram_ctl->os_load, gsm_idle_ram_ctl->hw_timer, gsm_idle_ram_ctl->sleep_mode, READ_TRAFFIC_CONT_STATE, l1s.gsm_idle_ram_ctl.killing_flash_access, l1s.gsm_idle_ram_ctl.killing_ext_ram_access); #else offset=sprintf(str2,"TASK %ld %ld %ld %ld |%ld| ", (l1s.actual_time.fn%42432), l1s.gsm_idle_ram_ctl.l1s_full_exec, gsm_idle_ram_ctl->os_load, gsm_idle_ram_ctl->hw_timer, READ_TRAFFIC_CONT_STATE); #endif #endif for(nb_bitmap=(SIZE_TAB_L1S_MONITOR-1); nb_bitmap>=0; nb_bitmap--) { for (index=7; index>=0; index--) { count = (gsm_idle_ram_ctl->task_bitmap_idle_ram[nb_bitmap] >> (4*index)) & 0xF; if (count < 10) str2[offset + (1-nb_bitmap)*8+(7-index)]= '0'+ count; else str2[offset + (1-nb_bitmap)*8+(7-index)]= '7'+ count; } } str2[offset + 16] = '\n'; str2[offset + 17]= '\r'; str2[offset + 18]= 0; l1_intram_put_trace(str2); #if GSM_IDLE_RAM_DEBUG gsm_idle_ram_ctl->sleep_mode = 999; #endif } /* l1_trace_IT_DSP_error_intram() */ /* Parameters : */ /* Return : */ void l1_trace_IT_DSP_error_intram(void) { char str[64]; #if (TRACE_TYPE==1) || (TRACE_TYPE==4) trace_info.l1_memorize_error = '.'; // memorize an error in the L1 if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1S_DEBUG) { sprintf (str,"> MCU CPU overload %ld\n\r", l1s.actual_time.fn_mod42432); l1_intram_put_trace(str); } #endif } #endif //((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 5)) #if (TRACE_TYPE == 7) /* l1_trace_buf_meas_intram() */ /* Parameters : */ /* Return : */ void l1_trace_buf_meas_intram() { UWORD8 i; static char str_r[16]; str[0] = '\0'; str_r[0] = '\0'; for (i=0;i<C_MESURE_DEPTH;i++) { if (d_mesure[i].valid == TRUE) { sprintf (str_r,"%d %d\n\r", d_mesure[i].cpu, d_mesure[i].fn); strcat(str,str_r); } // end if } // end for l1_intram_put_trace(str); // Send to Trace task #endif #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 5)) /* l1_trace_sleep_intram() */ /* Parameters : */ /* Return : */ void l1_trace_sleep_intram(UWORD32 start_fn, UWORD32 end_fn, UWORD8 type_sleep,UWORD8 wakeup_type,UWORD8 big_sleep_type, UWORD16 int_id) { char str[64]; #if (TRACE_TYPE==2) || (TRACE_TYPE==3) if ( l1s.pw_mgr.sleep_performed == CLOCK_STOP ) L1_trace_char('-'); else L1_trace_char('b'); #elif (TRACE_TYPE == 1) || (TRACE_TYPE == 4) #if (L1_BINARY_TRACE) /* if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TR_SLEEP)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TR_SLEEP *)(msg->SigP))->header = TRL1_SLEEP | (l1s.actual_time.fn << TR_HEADER_FN_DELAY); ((T_TR_SLEEP *)(msg->SigP))->start_fn = start_fn; ((T_TR_SLEEP *)(msg->SigP))->end_fn = end_fn; ((T_TR_SLEEP *)(msg->SigP))->type_sleep = type_sleep; ((T_TR_SLEEP *)(msg->SigP))->wakeup_type = wakeup_type; ((T_TR_SLEEP *)(msg->SigP))->big_sleep_type = big_sleep_type; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } */ #else if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { char *array_special_cases[]={"", "ASYNC_0", "SLEEP_0"}; UWORD8 index = 0; if (wakeup_type == WAKEUP_ASYNCHRONOUS_ULPD_0) index = 1; else if (wakeup_type == WAKEUP_ASYNCHRONOUS_SLEEP_DURATION_0) index = 2; else index = 0; if (type_sleep == CLOCK_STOP) // deep sleep trace { sprintf (str," deep_sleep: %ld %ld %d %d %s\n\r", start_fn, end_fn, wakeup_type, int_id, array_special_cases[index]); } else // big sleep { char *array_string[]={"undefined","light on","uart","sim","gauging","sleep mode","DSP","BT","charging"}; sprintf (str," big sleep: %ld %ld %d %d (cause:%s) %s\n\r", start_fn, end_fn, wakeup_type, int_id, array_string[big_sleep_type], array_special_cases[index]); } l1_intram_put_trace(str); } #endif #endif } /* l1_trace_gauging_intram() */ /* Parameters : */ /* Return : */ /* Trace the gauging is running */ void l1_trace_gauging_intram(void) { char str[64]; #if (TRACE_TYPE == 2) || (TRACE_TYPE == 3) L1_trace_char('G'); // trace the gauging #elif (TRACE_TYPE == 1) || (TRACE_TYPE == 4) #if (L1_BINARY_TRACE) /* if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TR_GAUGING)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TR_GAUGING *)(msg->SigP))->header = TRL1_GAUGING | (l1s.actual_time.fn << TR_HEADER_FN_DELAY); ((T_TR_GAUGING *)(msg->SigP))->reset_gauging = trace_info.reset_gauging_algo; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } */ #else if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { if (trace_info.reset_gauging_algo == TRUE) { sprintf (str," reset gauging algo"); l1_intram_put_trace(str); trace_info.reset_gauging_algo = FALSE; } sprintf (str," gauging %ld", l1s.actual_time.fn_mod42432); l1_intram_put_trace(str); } #endif #endif } /* l1_trace_ADC_intram() */ /* Parameters : */ /* Return : */ void l1_trace_ADC_intram(UWORD8 type) { char str[64]; #if (TRACE_TYPE==1) || (TRACE_TYPE==4) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1A_MESSAGES) { sprintf (str," ADC :%ld %ld\n\r", l1s.actual_time.fn_mod42432, type); l1_intram_put_trace(str); } #endif } /* l1_trace_new_toa_intram() */ /* Parameters : */ /* Return : */ void l1_trace_new_toa_intram(void) { char str[64]; #if (TRACE_TYPE==1) || (TRACE_TYPE==4) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_L1A_MESSAGES) { #if (TOA_ALGO == 2) sprintf (str," TOA updated:%ld %ld %ld %ld %ld\n\r", l1s.actual_time.fn_mod42432, l1s.toa_var.toa_shift, trace_info.toa_trace_var.toa_frames_counter, trace_info.toa_trace_var.toa_accumul_counter, trace_info.toa_trace_var.toa_accumul_value); #else sprintf (str," TOA updated:%ld %ld\n\r", l1s.actual_time.fn_mod42432, l1s.toa_shift); #endif l1_intram_put_trace(str); } #endif } /////////////////////// // DSP error traces // /////////////////////// #if (D_ERROR_STATUS_TRACE_ENABLE) /* Trace_d_error_status_intram() */ /* Parameters : */ /* Return : */ void Trace_d_error_status_intram() { CHAR str[128]; #if L1_GPRS UWORD16 d_error_status_masked = (l1s_dsp_com.dsp_ndb_ptr->d_error_status) & (trace_info.d_error_status_masks[l1a_l1s_com.dsp_scheduler_mode - 1]); // depends on the scheduler mode #else UWORD16 d_error_status_masked = (l1s_dsp_com.dsp_ndb_ptr->d_error_status) & (trace_info.d_error_status_masks[GSM_SCHEDULER - 1]); #endif UWORD16 changed_bits = d_error_status_masked ^ trace_info.d_error_status_old; // trace in case of change of status (field is reseted on change of scheduler) if (changed_bits) { // trace the d_error_status word with the correct mask applied sprintf (str,"> DSP %ld %ld %xh %ld\n\r", l1s.actual_time.fn_mod42432, (UWORD16)l1s.debug_time, d_error_status_masked, (l1s_dsp_com.dsp_db_r_ptr->d_debug & 0xffff)); l1_intram_put_trace(str); #if (DSP_DEBUG_TRACE_ENABLE == 1) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_DSP_DEBUG) { // DSP debug buffer trace only if an ERROR is detected (not for a End of error detection) if ((changed_bits & d_error_status_masked) & ~trace_info.d_error_status_old) { // Flag DSP error for DSP trace and memorize address of start of DSP trace DSP_DEBUG_ENABLE } } #endif trace_info.d_error_status_old = d_error_status_masked; } // Clear bits that have been set by the DSP l1s_dsp_com.dsp_ndb_ptr->d_error_status &= ~d_error_status_masked; } #endif //(D_ERROR_STATUS_TRACE_ENABLE) #endif //TRACE TYPE //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif //MOVE INTERNAL RAM #if (AMR == 1) /* l1_trace_ratscch() */ /* Parameters : */ /* Return : */ void l1_trace_ratscch(UWORD16 fn, UWORD16 amr_change_bitmap) { #if (TRACE_TYPE == 1) || (TRACE_TYPE == 4) xSignalHeaderRec *msg; // Allocate trace message msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = TRACE_RATSCCH; ((T_TRACE_INFO *)(msg->SigP))->tab[0]=fn; ((T_TRACE_INFO *)(msg->SigP))->tab[1]=amr_change_bitmap; // amr_change_bitmap contains the a bitmap of the AMR parameters updated // Send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) #endif // TRACE_TYPE } #endif // AMR #if 0 /* FreeCalypso: function not present in TCS211 */ void l1_trace_fail_sleep(UWORD8 pwmgr_fail_step, UWORD8 pwmgr_fail_id, UWORD8 pwmgr_fail_cause) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_PWMGT_FAIL_DEBUG) { // Trace Only when Fail Step or Fail ID differs if((trace_info.pwmgt_trace_var.fail_step != pwmgr_fail_step) || (trace_info.pwmgt_trace_var.fail_id != pwmgr_fail_id)) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = PWMGT_FAIL_SLEEP; trace_info.pwmgt_trace_var.fail_step = pwmgr_fail_step; trace_info.pwmgt_trace_var.fail_id = pwmgr_fail_id; trace_info.pwmgt_trace_var.fail_cause = pwmgr_fail_cause; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = pwmgr_fail_step; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = pwmgr_fail_id; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = pwmgr_fail_cause; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } } #endif } #endif /* l1_trace_sleep() */ /* Parameters : */ /* Return : */ void l1_trace_sleep(UWORD32 start_fn, UWORD32 end_fn, UWORD8 type_sleep,UWORD8 wakeup_type,UWORD8 big_sleep_type) { #if (CODE_VERSION == SIMULATION) #if (TRACE_TYPE==5) if ( l1s.pw_mgr.sleep_performed == CLOCK_STOP ) { trace_ULPD("Start Deep Sleep", start_fn); trace_ULPD("Wakeup Deep Sleep", l1s.actual_time.fn); } else { trace_ULPD("Start Big Sleep", start_fn); trace_ULPD("Wakeup Big Sleep", l1s.actual_time.fn); } #endif #else #if (TRACE_TYPE==2) || (TRACE_TYPE==3) if ( l1s.pw_mgr.sleep_performed == CLOCK_STOP ) L1_trace_char('-'); else L1_trace_char('b'); #elif (TRACE_TYPE == 1) || (TRACE_TYPE == 4) #if (L1_BINARY_TRACE) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TR_SLEEP)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TR_SLEEP *)(msg->SigP))->header = TRL1_SLEEP | (l1s.actual_time.fn << TR_HEADER_FN_DELAY); ((T_TR_SLEEP *)(msg->SigP))->start_fn = start_fn; ((T_TR_SLEEP *)(msg->SigP))->end_fn = end_fn; ((T_TR_SLEEP *)(msg->SigP))->type_sleep = type_sleep; ((T_TR_SLEEP *)(msg->SigP))->wakeup_type = wakeup_type; ((T_TR_SLEEP *)(msg->SigP))->big_sleep_type = big_sleep_type; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #else if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = TRACE_SLEEP; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = start_fn; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = end_fn; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = type_sleep; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = wakeup_type; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = big_sleep_type; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif #endif #endif } #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START /* l1_trace_gauging_reset() */ /* Parameters : */ /* Return : */ /* This means instability with the 32Khz */ void l1_trace_gauging_reset(void) { #if (CODE_VERSION != SIMULATION) #if (TRACE_TYPE == 2) || (TRACE_TYPE == 3) // trace if the gauging can't succeed L1_trace_char('#'); #elif (TRACE_TYPE !=0 ) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { // to trace during Gauging interrupt causes issue with Pool memory. // the trace will be done with the next gauging. trace_info.reset_gauging_algo = TRUE; // trace Reset gauging Algorithm } #endif #else // Simulation part #if (TRACE_TYPE==5) trace_ULPD("Reset Gauging algorithm", l1s.actual_time.fn); #endif #endif // Simulation part } //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif // !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) /* l1_trace_gauging() */ /* Parameters : */ /* Return : */ /* Trace the gauging is running */ void l1_trace_gauging(void) { #if (CODE_VERSION == SIMULATION) #if (TRACE_TYPE==5) trace_ULPD("Start Gauging", l1s.actual_time.fn); #endif #else #if (TRACE_TYPE == 2) || (TRACE_TYPE == 3) L1_trace_char('G'); // trace the gauging #elif (TRACE_TYPE == 1) || (TRACE_TYPE == 4) #if (L1_BINARY_TRACE) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TR_GAUGING)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TR_GAUGING *)(msg->SigP))->header = TRL1_GAUGING | (l1s.actual_time.fn << TR_HEADER_FN_DELAY); ((T_TR_GAUGING *)(msg->SigP))->reset_gauging = trace_info.reset_gauging_algo; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #else if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_ULPD) { xSignalHeaderRec *msg; // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = TRACE_GAUGING; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; #if 0 /* FreeCalypso: code not present in TCS211 binary object */ if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_GAUGING) { // dynamic trace for all gauging parameters ((T_TRACE_INFO *)(msg->SigP))->tab[1] = l1s.pw_mgr.state; ((T_TRACE_INFO *)(msg->SigP))->tab[2] = l1s.pw_mgr.lf; ((T_TRACE_INFO *)(msg->SigP))->tab[3] = l1s.pw_mgr.hf; ((T_TRACE_INFO *)(msg->SigP))->tab[4] = l1s.pw_mgr.root; ((T_TRACE_INFO *)(msg->SigP))->tab[5] = l1s.pw_mgr.frac; } #endif // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif #endif #endif } #if !((MOVE_IN_INTERNAL_RAM == 1) && (GSM_IDLE_RAM !=0)) //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START /* trace_fct() */ /* Parameters : */ /* Return : */ /* Functionality : */ void trace_fct(UWORD8 fct_id, WORD32 radio_freq) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) #if (L1_BINARY_TRACE) RTTL1_FILL_MFTAB(fct_id) #else if (trace_info.trace_buff_stop == FALSE) // start buffer trace { trace_info.trace_fct_buff[trace_info.trace_fct_buff_index] = fct_id; trace_info.trace_fct_buff_index++; if (trace_info.trace_fct_buff_index >= TRACE_FCT_BUFF_SIZE) trace_info.trace_fct_buff_index = 0; } #endif #endif #if (TRACE_TYPE==5) trace_fct_simu(string_fct_trace[fct_id],radio_freq); #endif } //#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END #endif /* FreeCalypso: the following function appears to be a LoCosto addition */ #if 0 //(((TRACE_TYPE==1) || (TRACE_TYPE == 4))) UWORD16 reentry = 0; void l1_trace_full_dsp_buffer( void ) { UWORD16 print_loop; UWORD16 i; UWORD32 STORE_ADDRESS = 0; char str[255]; char str2[7]; // mask IT TDMA Interrupt frame #if (CHIPSET == 12) || (CHIPSET == 15) F_INTH_DISABLE_ONE_IT(C_INTH_FRAME_IT); // Mask IT FRAME #else INTH_DISABLEONEIT(IQ_FRAME); // Mask IT FRAME int. #endif if (reentry == 0) { STORE_ADDRESS = 0xFFD00000 + l1s_dsp_com.dsp_ndb_ptr->p_debug_buffer + 0x07FD; print_loop = (l1s_dsp_com.dsp_ndb_ptr->d_debug_buffer_size) + 2; while ( print_loop > 0 ) { if ( print_loop > 41 ) { sprintf(str,"%04x\n\r", *((UWORD16 *)STORE_ADDRESS)); STORE_ADDRESS +=2; for (i=0; i<41; i++) { sprintf(str2,"%04x\n\r", *((UWORD16 *)STORE_ADDRESS)); STORE_ADDRESS +=2; strcat(str,str2); } L1_send_trace_cpy(str); print_loop -= 42; } else { sprintf(str,"%04x\n\r", *((UWORD16 *)STORE_ADDRESS)); STORE_ADDRESS +=2; print_loop--; while ( print_loop > 0 ) { sprintf(str2,"%04x\n\r", *((UWORD16 *)STORE_ADDRESS)); STORE_ADDRESS +=2; strcat(str,str2); print_loop--; } L1_send_trace_cpy(str); } } reentry += 1; } } #endif // C_DEBUG_TRACE_TYPE #if (L1_AUDIO_MCU_ONOFF == 1) /* l1_trace_audio_onoff() */ /* Parameters : */ /* Return : */ void l1_trace_ul_audio_onoff(UWORD8 ul_state) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_AUDIO_ONOFF) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = L1_AUDIO_UL_ONOFF_TRACE; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = ul_state; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } void l1_trace_dl_audio_onoff(UWORD8 dl_state) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) xSignalHeaderRec *msg; if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_AUDIO_ONOFF) { // Allocate DEBUG message. msg = os_alloc_sig(sizeof(T_TRACE_INFO)); DEBUGMSG(status,NU_ALLOC_ERR) msg->SignalCode = TRACE_INFO; ((T_TRACE_INFO *)(msg->SigP))->debug_code = L1_AUDIO_DL_ONOFF_TRACE; ((T_TRACE_INFO *)(msg->SigP))->tab[0] = l1s.actual_time.fn_mod42432; ((T_TRACE_INFO *)(msg->SigP))->tab[1] = dl_state; // send message... os_send_sig(msg, L1C1_QUEUE); DEBUGMSG(status,NU_SEND_QUEUE_ERR) } #endif } #endif #if (BURST_PARAM_LOG_ENABLE == 1) void l1_log_burst_param (UWORD32 angle, UWORD32 snr, UWORD32 afc, UWORD32 task, UWORD32 pm, UWORD32 toa_val, UWORD32 IL_for_rxlev) { if(burst_param_log_index >= BURST_PARAM_LOG_BUFFER_LENGTH) { burst_param_log_index = 0; } burst_param_log_debug[burst_param_log_index].fn_mod42432 = (UWORD16)(l1s.actual_time.fn_mod42432); burst_param_log_debug[burst_param_log_index].l1_mode = (UWORD16)(l1a_l1s_com.mode); burst_param_log_debug[burst_param_log_index].task = (UWORD16)(task); burst_param_log_debug[burst_param_log_index].SNR_val = (UWORD16)(snr); burst_param_log_debug[burst_param_log_index].TOA_val = (UWORD16)(toa_val); burst_param_log_debug[burst_param_log_index].angle = (UWORD16)(angle); burst_param_log_debug[burst_param_log_index].pm = (UWORD16)(pm); burst_param_log_debug[burst_param_log_index].IL_for_rxlev = (UWORD16)(IL_for_rxlev); burst_param_log_debug[burst_param_log_index].l1s_afc = (UWORD16)(afc); burst_param_log_index = burst_param_log_index + 1; } #endif #if ((OP_L1_STANDALONE == 1) && ((DSP == 38)|| (DSP == 39)) && (CODE_VERSION != SIMULATION)) #define API_DUMP_DELAY_NS (10000000) // Delay in nanoseconds void l1_api_dump(void) { UWORD32 index; char str[256]; // DB MCU to DSP GSM log index = 0; #if (TRACE_TYPE == 1) || (TRACE_TYPE == 2) || (TRACE_TYPE == 3) || (TRACE_TYPE == 7) if (trace_info.current_config->l1_dyn_trace & 1<<L1_DYN_TRACE_API_DUMP) { sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," === API LOGS ==== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," DB MCU_to_DSP Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_task_d:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_task_d)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_burst_d:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_burst_d)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_task_u:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_task_u)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_burst_u:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_burst_u)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_task_md:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_task_md)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_background:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_background)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_debug:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_debug)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_task_ra:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_task_ra)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_fn:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_fn)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_ctrl_tch:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_ctrl_tch)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->hole)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_ctrl_abb:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_ctrl_abb)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," a_a5fn:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->a_a5fn[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_power_ctl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_power_ctl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_afc:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_afc)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_ctrl_system:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_ctrl_system)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // sprintf (str," d_swh_ApplyWhitening_db:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_w_ptr->d_swh_ApplyWhitening_db)))); // L1_send_low_level_trace(str) // wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //TODO: Need to add the new DCO variables here // DB DSP to MCU GSM log sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," DB DSP_to_MCU Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_task_d:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_task_d)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_burst_d:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_burst_d)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_task_u:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_task_u)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_burst_u:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_burst_u)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_task_md:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_task_md)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_background:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_background)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_debug:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_debug)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_task_ra:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->d_task_ra)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_serv_demod:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->a_serv_demod[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_pm:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->a_pm[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_sch:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_db_r_ptr->a_sch[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // NDB GSM Log sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," NDB Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str,"d_dsp_page:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dsp_page)))); // 0x08D4 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str,"d_error_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_error_status)))); // 0x08D5 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str,"d_spcx_rif_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_spcx_rif_hole)))); // 0x08D6 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tch_mode:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tch_mode)))); // 0x08D7 TCH mode register. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_debug1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_debug1)))); // 0x08D8 bit 0 at 1 enable dsp f_tx delay for Omega L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_dsp_test:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dsp_test)))); // 0x08D9 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_version_number1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_version_number1)))); // 0x08DB L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_version_number2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_version_number2)))); // 0x08DB L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_debug_ptr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_debug_ptr)))); // 0x08DC L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_debug_bk:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_debug_bk)))); // 0x08DD L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_pll_config:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_pll_config)))); // 0x08DE L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"p_debug_buffer:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->p_debug_buffer)))); // 0x08DF L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_debug_buffer_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_debug_buffer_size)))); // 0x08E0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_debug_trace_type:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_debug_trace_type)))); // 0x08E1 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (W_A_DSP_IDLE3 == 1) // DSP report its state: 0 run, 1 Idle1, 2 Idle2, 3 Idle3. sprintf (str,"d_dsp_state:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dsp_state)))); // 0x08E2 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // 5 words are reserved for any possible mapping modification sprintf (str,"d_hole1_ndb[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_hole1_ndb[0])))); // 0x08E3 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else // 6 words are reserved for any possible mapping modification sprintf (str,"d_hole1_ndb[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_hole1_ndb[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (AMR == 1) sprintf (str,"p_debug_amr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->p_debug_amr)))); // 0x08E5??? DSP doc says reserved L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_hole_debug_amr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_hole_debug_amr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if ((CHIPSET == 15) || (CHIPSET == 12) || (CHIPSET == 4) || ((CHIPSET == 10) && (OP_WCP == 1))) // Calypso+ or Perseus2 sprintf (str,"d_dsp_iq_scaling_factor:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dsp_iq_scaling_factor)))); // 0x08E6 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_mcsi_select:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_mcsi_select)))); // 0x08E7 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_dsp_iq_scaling_factor:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dsp_iq_scaling_factor)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif // New words APCDEL1 and APCDEL2 for 2TX: TX/PRACH combinations sprintf (str,"d_apcdel1_bis:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_apcdel1_bis)))); // 0x08E8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_apcdel2_bis:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_apcdel2_bis)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // New registers due to IOTA analog base band sprintf (str,"d_apcdel2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_apcdel2)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vbctrl2_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbctrl2_hole)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_bulgcal_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_bulgcal_hole)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Analog Based Band - removed in ROM 38 #if (ANLG_FAM == 11) sprintf (str,"d_afcctladd_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_afcctladd_hole)))); // 0x08ED L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_afcctladd:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_afcctladd)))); // 0x08ED L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (ANLG_FAM == 11) sprintf (str,"d_vbuctrl_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbuctrl_hole)))); // 0x08EE - removed in ROM38 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vbdctrl_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbdctrl_hole)))); // 0x08EF - removed in ROM38 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_vbuctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbuctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vbdctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbdctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif sprintf (str,"d_apcdel1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_apcdel1)))); // 0x08F0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_apclev:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_apclev)))); // 0x08F1 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_apcctrl2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_apcctrl2)))); // 0x08F2 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_bulqoff_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_bulqoff_hole)))); // 0x08F3 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_dai_onoff:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dai_onoff)))); // 0x08F4 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_auxdac_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_auxdac_hole)))); // 0x08F5 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //#if (ANLG_FAM == 1) // sprintf (str,"d_vbctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbctrl)))); // L1_send_low_level_trace(str) // wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //#elif ((ANLG_FAM == 2) || (ANLG_FAM == 3)) // sprintf (str,"d_vbctrl1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbctrl1)))); // L1_send_low_level_trace(str) // wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //#endif #if (ANLG_FAM == 1) sprintf (str,"d_vbctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #elif ((ANLG_FAM == 2) || (ANLG_FAM == 3)) sprintf (str,"d_vbctrl1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbctrl1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #elif (ANLG_FAM == 11) sprintf (str,"d_vbctrl_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbctrl_hole)))); // 0x08F6 - removed in ROM38 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (ANLG_FAM == 11) sprintf (str,"d_bbctrl_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_bbctrl_hole)))); // 0x08F7 - removed in ROM38 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_bbctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_bbctrl)))); // 0x08F7 - removed in ROM38 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif // Monitoring tasks control (MCU <- DSP) // FB task sprintf (str,"d_fb_det:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fb_det)))); // 0x08F8 FB detection result. (1 for FOUND). L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fb_mode:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fb_mode)))); // Mode for FB detection algorithm. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_sync_demod[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_sync_demod[0])))); // FB/SB demod. result, (D_TOA,D_PM,D_ANGLE,D_SNR). L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // SB Task sprintf (str,"a_sch26[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_sch26[0])))); // 0x08FE Header + SB information, array of 5 words. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_audio_gain_ul:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_gain_ul)))); // 0x0903 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_audio_gain_dl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_gain_dl)))); // 0x0904 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Controller of the melody E2 audio compressor - removed in ROM 38 sprintf (str,"d_audio_compressor_ctrl_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_compressor_ctrl_hole)))); // 0x0905 - removed in ROM37,38 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // AUDIO module sprintf (str,"d_audio_init:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_init)))); // 0x0906 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_audio_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_status)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Audio tasks // TONES (MCU -> DSP) sprintf (str,"d_toneskb_init:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_toneskb_init)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_toneskb_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_toneskb_status)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_k_x1_t0:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_k_x1_t0)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_k_x1_t1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_k_x1_t1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_k_x1_t2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_k_x1_t2)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_pe_rep:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_pe_rep)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_pe_off:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_pe_off)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_se_off:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_se_off)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_bu_off:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_bu_off)))); // 0x0910 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_t0_on:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_t0_on)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_t0_off:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_t0_off)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_t1_on:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_t1_on)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_t1_off:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_t1_off)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_t2_on:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_t2_on)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_t2_off:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_t2_off)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_k_x1_kt0:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_k_x1_kt0)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_k_x1_kt1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_k_x1_kt1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_dur_kb:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dur_kb)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_shiftdl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_shiftdl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_shiftul:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_shiftul)))); // 0x091B L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if(DSP == 38) || (DSP == 39) sprintf (str,"d_aec_ul_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_aec_ul_ctrl)))); #else sprintf (str,"d_aec_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_aec_ctrl)))); // 0x091C #endif L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_level_api:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_level_api)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_mu_api:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_mu_api)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Melody Ringer module sprintf (str,"d_melo_osc_used:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_melo_osc_used)))); // 0x091F L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_melo_osc_active:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_melo_osc_active)))); // 0x0920 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note0[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note0[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note1[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note2[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note2[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note3[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note3[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note4[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note4[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note5[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note5[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note6[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note6[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melo_note7[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_note7[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // selection of the melody format sprintf (str,"d_melody_selection:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_melody_selection)))); // 0x0941 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Holes due to the format melody E1 sprintf (str,"a_melo_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melo_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Speech Recognition module - Removed in ROM38 sprintf (str,"d_sr_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_sr_holes[0])))); // 0x0945 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Audio buffer sprintf (str,"a_dd_1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_dd_1[0])))); // 0x0958 Header + DATA traffic downlink information, sub. chan. 1. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_du_1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_du_1[0])))); // 0x096E Header + DATA traffic uplink information, sub. chan. 1. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // V42bis module sprintf (str,"d_v42b_nego0:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_v42b_nego0)))); // 0x0984 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_v42b_nego1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_v42b_nego1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_v42b_control:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_v42b_control)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_v42b_ratio_ind:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_v42b_ratio_ind)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_mcu_control:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_mcu_control)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_mcu_control_sema:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_mcu_control_sema)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Background tasks sprintf (str,"d_background_enable:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_background_enable)))); // 0x098E L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_background_abort:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_background_abort)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_background_state:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_background_state)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_max_background:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_max_background)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_background_tasks[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_background_tasks[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_back_task_io[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_back_task_io[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // GEA module defined in l1p_deft.h (the following section is overlaid with GPRS NDB memory) // ??? -> is this still valid for Locosto? sprintf (str,"d_gea_mode_ovly_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_gea_mode_ovly_hole)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_gea_kc_ovly_hole[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_gea_kc_ovly_hole[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (ANLG_FAM == 3) // SYREN specific registers sprintf (str,"d_vbpop:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vbpop)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vau_delay_init:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vau_delay_init)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vaud_cfg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vaud_cfg)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vauo_onoff:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vauo_onoff)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vaus_vol:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vaus_vol)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vaud_pll:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vaud_pll)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_togbr2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_togbr2)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #elif ((ANLG_FAM == 1) || (ANLG_FAM == 2) || (ANLG_FAM == 11)) sprintf (str,"d_hole3_ndb[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_hole3_ndb[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif // word used for the init of USF threshold sprintf (str,"d_thr_usf_detect:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_usf_detect)))); // 0x09BA L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Encryption module sprintf (str,"d_a5mode:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_a5mode)))); // Encryption Mode. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_sched_mode_gprs_ovly:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_sched_mode_gprs_ovly)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); /* #if FF_L1_IT_DSP_USF //sajal // 7 words are reserved for any possible mapping modification sprintf (str,"d_hole3_fast_ndb[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_hole3_fast_ndb[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif */ // Ramp definition for Omega device sprintf (str,"a_ramp_hole[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_ramp_hole[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // CCCH/SACCH downlink information...(!!) sprintf (str,"a_cd[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_cd[0])))); // Header + CCCH/SACCH downlink information. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // FACCH downlink information........(!!) sprintf (str,"a_fd[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_fd[0])))); // Header + FACCH downlink information. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Traffic downlink data frames......(!!) sprintf (str,"a_dd_0[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_dd_0[0])))); // Header + DATA traffic downlink information, sub. chan. 0. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // CCCH/SACCH uplink information.....(!!) sprintf (str,"a_cu[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_cu[0])))); // Header + CCCH/SACCH uplink information. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // FACCH downlink information........(!!) sprintf (str,"a_fu[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_fu[0])))); // Header + FACCH uplink information L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Traffic downlink data frames......(!!) sprintf (str,"a_du_0[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_du_0[0])))); // Header + DATA traffic uplink information, sub. chan. 0. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Random access.....................(MCU -> DSP). sprintf (str,"d_rach:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_rach)))); // RACH information. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................(MCU -> DSP). sprintf (str,"a_kc[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_kc[0])))); // Encryption Key Code. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Integrated Data Services module sprintf (str,"d_ra_conf:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ra_conf)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_ra_act:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ra_act)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_ra_test:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ra_test)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_ra_statu:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ra_statu)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_ra_statd:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ra_statd)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fax:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fax)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_data_buf_ul[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_data_buf_ul[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_data_buf_dl[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_data_buf_dl[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // GTT API mapping for DSP code 34 (for test only) #if (L1_GTT == 1) sprintf (str,"d_tty_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty_status)))); // 0x0A7F L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_ctm_detect_shift:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ctm_detect_shift)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_baudot_mod_amplitude_scale:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_baudot_mod_amplitude_scale)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_samples_per_baudot_stop_bit:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_samples_per_baudot_stop_bit)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty_reset_buffer_ul:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty_reset_buffer_ul)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty_loop_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty_loop_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"p_tty_loop_buffer:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->p_tty_loop_buffer)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_ctm_mod_norm:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_ctm_mod_norm)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_offset_normalization:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_offset_normalization)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_threshold_startbit:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_threshold_startbit)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_threshold_diff:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_threshold_diff)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_duration_startdetect:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_duration_startdetect)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_tty2x_startbit_thres:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_tty2x_startbit_thres)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"a_tty_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_tty_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif sprintf (str,"a_sr_holes0[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_sr_holes0[0])))); // 0x0A87 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (L1_NEW_AEC) // new AEC sprintf (str,"d_cont_filter:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cont_filter)))); // 0x0C25 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_granularity_att:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_granularity_att)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_coef_smooth:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_coef_smooth)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_level_max:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_level_max)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fact_vad:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fact_vad)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thrs_abs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thrs_abs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fact_asd_fil:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fact_asd_fil)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fact_asd_mut:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fact_asd_mut)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_far_end_pow_h:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_far_end_pow_h)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_far_end_pow_l:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_far_end_pow_l)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_far_end_noise_h:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_far_end_noise_h)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_far_end_noise_l:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_far_end_noise_l)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else #if(DSP != 38) && (DSP != 39) sprintf (str,"a_new_aec_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_new_aec_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #endif // L1_NEW_AEC // Speech recognition model sprintf (str,"a_sr_holes1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_sr_holes1[0])))); // 0x0C31 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Correction of PR G23M/L1_MCU-SPR-15494 #if ((CHIPSET == 12) || (CHIPSET == 4) || (CODE_VERSION == SIMULATION)) sprintf (str,"d_cport_init:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_init)))); // 0x0CC2 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cport_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_cport_cfr[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_cport_cfr[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cport_tcl_tadt:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_tcl_tadt)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cport_tdat:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_tdat)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cport_tvs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_tvs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cport_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_status)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cport_reg_value:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cport_reg_value)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_cport_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_cport_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else // CHIPSET != 12 sprintf (str,"a_cport_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_cport_holes[0])))); // 0x0CC2 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif // CHIPSET == 12 sprintf (str,"a_model_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_model_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // EOTD buffer #if (L1_EOTD==1) sprintf (str,"d_eotd_first:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_eotd_first)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_eotd_max:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_eotd_max)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_eotd_nrj_high:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_eotd_nrj_high)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_eotd_nrj_low:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_eotd_nrj_low)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_eotd_crosscor[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_eotd_crosscor[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"a_eotd_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_eotd_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif // AMR ver 1.0 buffers sprintf (str,"a_amr_config[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_amr_config[0])))); // 0x14E5 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_ratscch_ul[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_ratscch_ul[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_ratscch_dl[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_ratscch_dl[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_amr_snr_est:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_amr_snr_est)))); // estimation of the SNR of the AMR speech block L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (L1_VOICE_MEMO_AMR) sprintf (str,"d_amms_ul_voc:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_amms_ul_voc)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"a_voice_memo_amr_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_voice_memo_amr_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif sprintf (str,"d_thr_onset_afs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_onset_afs)))); // thresh detection ONSET AFS L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_sid_first_afs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_sid_first_afs)))); // thresh detection SID_FIRST AFS L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_ratscch_afs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_ratscch_afs)))); // thresh detection RATSCCH AFS L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_update_afs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_update_afs)))); // thresh detection SID_UPDATE AFS L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_onset_ahs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_onset_ahs)))); // thresh detection ONSET AHS L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_sid_ahs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_sid_ahs)))); // thresh detection SID frames AHS L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_ratscch_marker:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_ratscch_marker)))); // thresh detection RATSCCH MARKER L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_sp_dgr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_sp_dgr)))); // thresh detection SPEECH DEGRADED/NO_DATA L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thr_soft_bits:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thr_soft_bits)))); // 0x14FF L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_amrschd_debug[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_amrschd_debug[0])))); // 0x1500 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (W_A_AMR_THRESHOLDS) sprintf (str,"a_d_macc_thr_afs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_d_macc_thr_afs[0])))); // 0x151E L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_d_macc_thr_ahs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_d_macc_thr_ahs[0])))); // 0x1526 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_holes[0])))); // 0x151E L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif // There is no melody E2 in DSP ROM38 as of now -> Only Holes sprintf (str,"d_melody_e2_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_melody_e2_holes[0])))); // 0x152C L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if ((CHIPSET == 15) || (CHIPSET == 12) || (CHIPSET == 4) || ((CHIPSET == 10) && (OP_WCP == 1)) || (CODE_VERSION == SIMULATION)) // Calypso+ or Perseus2 or Samson sprintf (str,"d_vol_ul_level_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vol_ul_level_hole)))); // 0x153D L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vol_dl_level_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vol_dl_level_hole)))); // 0x153E L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_vol_speed_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_vol_speed_hole)))); // 0x153F L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_sidetone_level_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_sidetone_level_hole)))); // 0x1540 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Audio control area sprintf (str,"d_es_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_ctrl)))); // 0x1541 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_ul_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_ul_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_aec_ul_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_aec_ul_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_aqi_ctrl_hole1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_aqi_ctrl_hole1[0])))); // Reserved for future UL modules L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_dl_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_dl_ctrl)))); // 0x1549 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_lim_dl_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_dl_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_dl_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_drc_dl_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_audio_apps_ctrl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_apps_ctrl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_audio_apps_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_audio_apps_status)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_aqi_status:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_aqi_status)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (L1_IIR == 1) sprintf (str,"d_iir_input_scaling:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_input_scaling)))); // 0x1550 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_fir_scaling:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_fir_scaling)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_input_gain_scaling:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_input_gain_scaling)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_output_gain_scaling:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_output_gain_scaling)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_output_gain:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_output_gain)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_feedback:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_feedback)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_nb_iir_blocks:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_nb_iir_blocks)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir_nb_fir_coefs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_nb_fir_coefs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_iir_iir_coefs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_iir_iir_coefs[0])))); // 0x1558 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_iir_fir_coefs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_iir_fir_coefs[0])))); // 0x15A8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #elif (L1_IIR == 2) sprintf (str,"d_iir4x_control:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_control)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_frame_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_frame_size)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_fir_swap:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_fir_swap)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_fir_enable:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_fir_enable)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_fir_length:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_fir_length)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_fir_shift:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_fir_shift)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_sos_enable:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_sos_enable)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_sos_number:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_sos_number)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_iir4x_gain:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir4x_gain)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_iir_holes_1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_iir_holes_1[0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_DRC == 1) sprintf (str,"d_drc_speech_mode_samp_f:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_speech_mode_samp_f)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_num_subbands:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_num_subbands)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_frame_len:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_frame_len)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_expansion_knee_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_expansion_knee_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_expansion_knee_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_expansion_knee_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_expansion_ratio_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_expansion_ratio_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_expansion_ratio_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_expansion_ratio_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_max_amplification_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_max_amplification_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_max_amplification_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_max_amplification_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_compression_knee_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_compression_knee_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_compression_knee_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_compression_knee_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_compression_ratio_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_compression_ratio_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_compression_ratio_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_compression_ratio_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_energy_limiting_th_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_energy_limiting_th_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_energy_limiting_th_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_energy_limiting_th_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_threshold_fb:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_threshold_fb)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_threshold_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_threshold_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_threshold_md:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_threshold_md)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_threshold_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_threshold_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_hangover_spect_preserve:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_hangover_spect_preserve)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_release_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_release_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_limiter_release_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_limiter_release_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_gain_track_fb_bs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_gain_track_fb_bs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drc_gain_track_md_hg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->d_drc_gain_track_md_hg)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_drc_low_pass_filter[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->a_drc_low_pass_filter[0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_drc_mid_band_filter[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(drc_ndb->a_drc_mid_band_filter[0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_ANR == 1) sprintf (str,"d_anr_min_gain:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_min_gain)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_vad_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_vad_thr)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_gamma_slow:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_gamma_slow)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_gamma_fast:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_gamma_fast)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_gamma_gain_slow:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_gamma_gain_slow)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_gamma_gain_fast:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_gamma_gain_fast)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_thr2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_thr2)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_thr4:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_thr4)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_thr5:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_thr5)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_mean_ratio_thr1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_mean_ratio_thr1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_mean_ratio_thr2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_mean_ratio_thr2)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_mean_ratio_thr3:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_mean_ratio_thr3)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_mean_ratio_thr4:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_mean_ratio_thr4)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_div_factor_shift:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_div_factor_shift)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_ns_level:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_ns_level)))); // 0x15D6 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_ANR == 2) sprintf (str,"d_anr_control:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_control)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_ns_level:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_ns_level)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_tone_ene_th:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_tone_ene_th)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_anr_tone_cnt_th:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_tone_cnt_th)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_anr_hole_2[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_anr_hole_2[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_WCM == 1) sprintf (str,"d_wcm_mode:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_wcm_mode)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_wcm_frame_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_wcm_frame_size))));// L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_wcm_frame_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_wcm_num_sub_frames))));// L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_wcm_ratio:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_wcm_ratio)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_wcm_threshold:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_wcm_threshold)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_wcm_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_wcm_holes[0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_AGC_UL == 1) sprintf (str,"d_agc_ul_control:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_control)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_frame_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_frame_size)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_targeted_level :0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_targeted_level )))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_signal_up:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_signal_up)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_signal_down:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_signal_down)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_max_scale:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_max_scale)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_gain_smooth_alpha:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_gain_smooth_alpha)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_gain_smooth_alpha_fast:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_gain_smooth_alpha_fast)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_gain_smooth_beta:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_gain_smooth_beta)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_gain_smooth_beta_fast:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_gain_smooth_beta_fast)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_ul_gain_intp_flag:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_gain_intp_flag)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_agc_ul_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_ul_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_AGC_DL == 1) sprintf (str,"d_agc_dl_control:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_control)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_frame_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_frame_size)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_targeted_level :0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_targeted_level )))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_signal_up:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_signal_up)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_signal_down:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_signal_down)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_max_scale:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_max_scale)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_gain_smooth_alpha:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_gain_smooth_alpha)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_gain_smooth_alpha_fast:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_gain_smooth_alpha_fast)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_gain_smooth_beta:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_gain_smooth_beta)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_gain_smooth_beta_fast:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_gain_smooth_beta_fast)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_agc_dl_gain_intp_flag:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_gain_intp_flag)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_agc_dl_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_agc_dl_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_AEC == 2) sprintf (str,"d_aec_mode:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_aec_mode)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_mu:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_mu)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_cont_filter:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_cont_filter)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_scale_input_ul:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_scale_input_ul)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_scale_input_dl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_scale_input_dl)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_div_dmax:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_div_dmax)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_div_swap_good:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_div_swap_good)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_div_swap_bad:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_div_swap_bad)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_block_init:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_block_init)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fact_vad:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fact_vad)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fact_asd_fil:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fact_asd_fil)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_fact_asd_mut:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_fact_asd_mut)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_thrs_abs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_thrs_abs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_level_max:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_level_max)))); // 0x15C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_granularity_att:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_granularity_att)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_coef_smooth:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_coef_smooth)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_LIMITER == 1) sprintf (str,"a_lim_mul_low[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_lim_mul_low[0])))); // 0x15D7 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_lim_mul_high[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_lim_mul_high[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_lim_gain_fall_q15:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_gain_fall_q15)))); // 0x15DB L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_lim_gain_rise_q15:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_gain_rise_q15)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_lim_block_size:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_block_size)))); // 0x15DD L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_lim_nb_fir_coefs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_nb_fir_coefs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_lim_slope_update_period:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_slope_update_period)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_lim_filter_coefs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_lim_filter_coefs[0])))); // 0x15E0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_lim_hole[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_lim_hole[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #if (L1_ES == 1) sprintf (str,"d_es_mode:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_mode)))); // 0x15F0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_gain_dl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_gain_dl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_gain_ul_1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_gain_ul_1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_gain_ul_2:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_gain_ul_2)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_tcl_fe_ls_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_tcl_fe_ls_thr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_tcl_dt_ls_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_tcl_dt_ls_thr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_tcl_fe_ns_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_tcl_fe_ns_thr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_tcl_dt_ns_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_tcl_dt_ns_thr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_tcl_ne_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_tcl_ne_thr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_ref_ls_pwr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_ref_ls_pwr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_switching_time:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_switching_time)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_switching_time_dt:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_switching_time_dt)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_es_hang_time:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_hang_time)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_es_gain_lin_dl_vect[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_es_gain_lin_dl_vect[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_es_gain_lin_ul_vect[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_es_gain_lin_ul_vect[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"d_es_hole[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_es_hole[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif #else // CALYPSO+ or PERSEUS2 sprintf (str,"a_calplus_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_calplus_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif sprintf (str,"a_tty_fifo_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_tty_fifo_holes[0])))); // 0x1605 -> TTY fifos are located here L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // New DRP Releated Variables Start Here // Should we have RF_FAM #ifdef here??? sprintf (str,"a_drp_holes_1[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_drp_holes_1[0])))); // 0x16C8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drp_apcctrl2_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_drp_apcctrl2_hole)))); // 0x16CE - APC control register 2 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_drp_afc_add_api:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_drp_afc_add_api)))); // 0x16CF - Address where AFC value needs to be written L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_drp_holes_2[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_drp_holes_2[0])))); // 0x16D0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_drp_ramp[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_drp_ramp[0])))); // 0x16DC - Power ramp up/down in DRP registers format L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_drp_holes_3[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_drp_holes_3[0])))); // 0x16F0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"d_dsp_write_debug_pointer:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->d_dsp_write_debug_pointer)))); // 0x17FF L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #if (MELODY_E2) sprintf (str,"a_dsp_trace[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_dsp_trace[0])))); // 0x1800 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_melody_e2_instrument_wave[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_melody_e2_instrument_wave[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_dsp_after_trace_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_dsp_after_trace_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #else sprintf (str,"a_dsp_trace[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_dsp_trace[0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str,"a_dsp_after_trace_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr->a_dsp_after_trace_holes[0])))); // 0x1800 + C_DEBUG_BUFFER_SIZE L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // In this region MP3 variables are placed + holes #endif // SAIC related sprintf (str," d_swh_flag_ndb:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr-> d_swh_flag_ndb)))); // 0x3C7A - SWH (whitening) on / off flag L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_swh_Clipping_Threshold_ndb:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr-> d_swh_Clipping_Threshold_ndb)))); // 0x3C7B - Threshold to which the DSP shall clip the SNR L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // DCO related sprintf (str," d_dco_samples_per_symbol:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr-> d_dco_samples_per_symbol)))); // No. of samples per symbol (IQ pair) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," d_dco_fcw:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr-> d_dco_fcw)))); // 0x3C8B - Frequency control word L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // A5/3 related sprintf (str," a_a5_kc[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_ndb_ptr-> a_a5_kc[0])))); // 0x3C8C L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // ********************************************************************************** // PARAM Logs // ********************************************************************************** sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," PARAM Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_transfer_rate:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_transfer_rate)))); // 0x0C31 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // Common GSM/GPRS // These words specified the latencies to applies on some peripherics sprintf(str," d_lat_mcu_bridge:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_lat_mcu_bridge)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_lat_mcu_hom2sam:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_lat_mcu_hom2sam)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_lat_mcu_bef_fast_access:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_lat_mcu_bef_fast_access)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_lat_dsp_after_sam:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_lat_dsp_after_sam)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // DSP Start address sprintf(str," d_gprs_install_address:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_gprs_install_address)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_misc_config:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_misc_config)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_cn_sw_workaround:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_cn_sw_workaround)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_hole2_param[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_hole2_param[0])))); // 0x0C39 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................Frequency Burst. sprintf(str," d_fb_margin_beg:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_fb_margin_beg)))); // 0x0C3D L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_fb_margin_end:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_fb_margin_end)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_nsubb_idle:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_nsubb_idle)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_nsubb_dedic:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_nsubb_dedic)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_fb_thr_det_iacq:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_fb_thr_det_iacq)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_fb_thr_det_track:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_fb_thr_det_track)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................Demodulation. sprintf(str," d_dc_off_thres:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_dc_off_thres)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_dummy_thres:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_dummy_thres)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_dem_pond_gewl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_dem_pond_gewl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_dem_pond_red:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_dem_pond_red)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................TCH Full Speech. sprintf(str," d_maccthresh1:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_maccthresh1)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_mldt:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_mldt)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_maccthresh:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_maccthresh)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_gu:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_gu)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_go:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_go)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_attmax:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_attmax)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sm:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sm)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_b:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_b)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // V42Bis module sprintf(str," d_v42b_switch_hyst:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_v42b_switch_hyst)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_v42b_switch_min:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_v42b_switch_min)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_v42b_switch_max:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_v42b_switch_max)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_v42b_reset_delay:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_v42b_reset_delay)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................TCH Half Speech. sprintf(str," d_ldT_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_ldT_hr)))); // 0x0C53 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_maccthresh_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_maccthresh_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_maccthresh1_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_maccthresh1_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_gu_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_gu_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_go_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_go_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_b_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_b_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sm_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sm_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_attmax_hr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_attmax_hr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................TCH Enhanced FR Speech. sprintf(str," c_mldt_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_mldt_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_maccthresh_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_maccthresh_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_maccthresh1_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_maccthresh1_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_gu_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_gu_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_go_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_go_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_b_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_b_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_sm_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_sm_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," c_attmax_efr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->c_attmax_efr)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); //...................................CHED sprintf(str," d_sd_min_thr_tchfs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sd_min_thr_tchfs)))); // 0x0C63 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_ma_min_thr_tchfs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_ma_min_thr_tchfs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_md_max_thr_tchfs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_md_max_thr_tchfs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_md1_max_thr_tchfs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_md1_max_thr_tchfs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sd_min_thr_tchhs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sd_min_thr_tchhs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_ma_min_thr_tchhs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_ma_min_thr_tchhs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sd_av_thr_tchhs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sd_av_thr_tchhs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_md_max_thr_tchhs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_md_max_thr_tchhs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_md1_max_thr_tchhs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_md1_max_thr_tchhs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sd_min_thr_tchefs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sd_min_thr_tchefs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_ma_min_thr_tchefs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_ma_min_thr_tchefs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_md_max_thr_tchefs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_md_max_thr_tchefs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_md1_max_thr_tchefs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_md1_max_thr_tchefs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_wed_fil_ini:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_wed_fil_ini)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_wed_fil_tc:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_wed_fil_tc)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_x_min:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_x_min)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_x_max:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_x_max)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_slope:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_slope)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_y_min:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_y_min)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_y_max:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_y_max)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_wed_diff_threshold:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_wed_diff_threshold)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_mabfi_min_thr_tchhs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_mabfi_min_thr_tchhs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // FACCH module sprintf(str," d_facch_thr:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_facch_thr)))); // 0x0C79 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // IDS module sprintf(str," d_max_ovsp_ul:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_max_ovsp_ul)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sync_thres:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_sync_thres)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_idle_thres:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_idle_thres)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_m1_thres:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_m1_thres)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_max_ovsp_dl:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_max_ovsp_dl)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_gsm_bgd_mgt:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->d_gsm_bgd_mgt)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // FIR coefficients sprintf(str," a_fir_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->a_fir_holes[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_fir31_uplink[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->a_fir31_uplink[0])))); // 0x0C84 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_fir31_downlink[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1s_dsp_com.dsp_param_ptr->a_fir31_downlink[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // *************************************************************** // GPRS ********************************************************** // *************************************************************** #if (L1_GPRS) // DB MCU to DSP GPRS sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," DB MCU_to_DSP GPRS Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_task_d_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_w_ptr->d_task_d_gprs)))); // (map?) Task, burst per burst (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_task_u_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_w_ptr->d_task_u_gprs)))); // (map?) Task, burst per burst (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_task_pm_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_w_ptr->d_task_pm_gprs)))); // (map?) Task, burst per burst (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_burst_nb_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_w_ptr->d_burst_nb_gprs)))); // (map?) burst identifier. (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_ctrl_abb_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_w_ptr->a_ctrl_abb_gprs[0])))); // (map?) Analog baseband control, burst per burst. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_ctrl_power_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_w_ptr->a_ctrl_power_gprs[0])))); // (map?) Power control value, burst per burst. L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // DB DSP to MCU GPRS log sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," DB DSP_to_MCU GPRS Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_task_d_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->d_task_d_gprs)))); // (map?) Task, burst per burst (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_task_u_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->d_task_u_gprs)))); // (map?) Task, burst per burst (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_task_pm_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->d_task_pm_gprs)))); // (map?) Task, burst per burst (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_burst_nb_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->d_burst_nb_gprs)))); // (map?) burst identifier. (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_burst_toa_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->a_burst_toa_gprs[0])))); // (map?) Time of arrival, burst per burst L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_burst_pm_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->a_burst_pm_gprs[0])))); // (map?) Receive Power Level, burst per burst L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_burst_angle_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->a_burst_angle_gprs[0]))));// (map?) Angle deviation, burst per burst L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_burst_snr_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_db_r_ptr->a_burst_snr_gprs[0])))); // (map?) Signal to noise ratio, burst per burst L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // NDB GPRS Log sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," NDB GPRS Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_gea_mode_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_gea_mode_hole)))); // 0x09AE L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_gea_kc_hole[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_gea_kc_hole[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_hole1_ndb_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_hole1_ndb_gprs[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_a5mode_ovly:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_a5mode_ovly)))); // 0x09BB L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sched_mode_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_sched_mode_gprs)))); // 0x09BC L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_hole2_ndb_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_hole2_ndb_gprs[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_usf_updated_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_usf_updated_gprs)))); // 0x09C2 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_win_start_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_win_start_gprs)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_usf_vote_enable:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_usf_vote_enable)))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_bbctrl_gprs_hole:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_bbctrl_gprs_hole)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_hole3_ndb_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_hole3_ndb_gprs[0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // (map?) BTS physical timeslot mapping. sprintf(str," a_ctrl_ched_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_ctrl_ched_gprs[0])))); // 0x09C8 (map?) Ched configuration, burst per burst L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_ul_buffer_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_ul_buffer_gprs[0])))); // 0x09D0 (map?) UL burst / UL buffer mapping, burst per burst. (part of header) L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_usf_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_usf_gprs[0])))); // 0x09D8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_interf_meas_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_interf_meas_gprs[0])))); // 0x09E0 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_ptcchu_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_ptcchu_gprs[0])))); // 0x09E8 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_dd_md_gprs[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_dd_md_gprs[0])))); // 0x09EC L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_du_gprs[0][0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_du_gprs[0][0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_pu_gprs[0][0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_pu_gprs[0][0])))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_rlcmac_rx_no_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->d_rlcmac_rx_no_gprs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_dd_gprs[0][0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_dd_gprs[0][0])))); // L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_drp_ramp2_gprs_holes[0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_drp_ramp2_gprs_holes[0])))); // 0x0C25 L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," a_drp_ramp2_gprs[0][0]:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_ndb_ptr->a_drp_ramp2_gprs[0][0])))); // 0x1700 - Power Ramp up/down in DRP registers format L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); // PARAM Log sprintf (str," ===================================== \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf (str," PARAM GPRS Log \n\r"); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_overlay_rlcmac_cfg_gprs:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_param_ptr->d_overlay_rlcmac_cfg_gprs)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_mac_threshold:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_param_ptr->d_mac_threshold)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_sd_threshold:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_param_ptr->d_sd_threshold)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); sprintf(str," d_nb_max_iteration:0x%4.4x \n\r",api_dump_cnvt_mcu_to_dsp(((UWORD32) &(l1ps_dsp_com.pdsp_param_ptr->d_nb_max_iteration)))); L1_send_low_level_trace(str) wait_ARM_cycles(convert_nanosec_to_cycles(API_DUMP_DELAY_NS)); #endif } #endif } #define TEMP_CONSTANT 14 UWORD32 delay_global_variable; #define API_DUMP_MCU_API_ADDRESS (0xFFD00000) #define API_DUMP_DSP_ADDRESS_BASE (0x0800) UWORD16 api_dump_cnvt_mcu_to_dsp(UWORD32 mcu_address) { UWORD16 dsp_address; dsp_address = (((mcu_address-API_DUMP_MCU_API_ADDRESS)>>0x1)+(API_DUMP_DSP_ADDRESS_BASE)); return (dsp_address); } #endif // ((OP_L1_STANDALONE == 1) && (DSP == 38) && (CODE_VERSION != SIMULATION)) #if (AUDIO_DEBUG == 1) /* Trace_l1_audio_regs */ /* Parameters : */ /* Return : */ extern UWORD8 audio_reg_read_status; extern UWORD8 audio_regs_cpy[10]; void Trace_l1_audio_regs() { char str2[100]; l1_audio_regs_debug_read(); if(audio_reg_read_status==1) { sprintf(str2,"AU_REG %x %x %x %x %x %x %x %x %x %x %x\n\r", audio_regs_cpy[0], audio_regs_cpy[1], audio_regs_cpy[2], audio_regs_cpy[3], audio_regs_cpy[4], audio_regs_cpy[5], audio_regs_cpy[6], audio_regs_cpy[7], audio_regs_cpy[8], audio_regs_cpy[9], audio_regs_cpy[10]); L1_send_trace_cpy(str2); audio_reg_read_status=0; } } #endif #if (L1_FF_MULTIBAND == 1) static CHAR *p_trace_multiband_physical_band_id_table[] = {"PGSM900", "GSM850", "PCS1900", "DCS1800", "GSM750", "GSM480", "GSM450", "T_GSM380", "T_GSM410", "T_GSM900", "EGSM900", "RGSM900", "GSM900"}; /*-------------------------------------------------------*/ /* l1_trace_MULTIBAND_params() */ /*-------------------------------------------------------*/ /* Parameters : */ /* Return : */ /* Functionality : */ /*-------------------------------------------------------*/ void l1_multiband_trace_params(UWORD8 multiband_table_id, UWORD8 multiband_trace_id) { #if (TRACE_TYPE==1) || (TRACE_TYPE==4) if ((trace_info.current_config->l1_dyn_trace & (1 << L1_DYN_TRACE_MULTIBAND))) { char str[150]; if (multiband_table_id == MULTIBAND_ERROR_TRACE_ID) { sprintf(str,"\n MULTIBAND> fn=%d ERROR= radio_freq out of range",l1s.actual_time.fn); L1_send_trace_cpy(str); } else { if (multiband_table_id == MULTIBAND_PHYSICAL_BAND_TRACE_ID) { sprintf(str,"\n MULTIBAND> fn=%d Current Physical band is = %s",l1s.actual_time.fn,p_trace_multiband_physical_band_id_table[multiband_trace_id]); L1_send_trace_cpy(str); } } } #endif } #endif /*if (L1_FF_MULTIBAND == 1)*/