diff --git a/targets/RT/USER/nr-uesoftmodem.c b/targets/RT/USER/nr-uesoftmodem.c index 0ce4499dc55f8e1e44ac0f734d52bb2397790f17..dd24c4e5e28a65805bce7e56ccb716c788943f92 100644 --- a/targets/RT/USER/nr-uesoftmodem.c +++ b/targets/RT/USER/nr-uesoftmodem.c @@ -121,7 +121,6 @@ uint32_t downlink_frequency[MAX_NUM_CCs][4]; int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; -static char *conf_config_file_name = NULL; #if defined(ENABLE_ITTI) static char *itti_dump_file = NULL; #endif @@ -169,7 +168,6 @@ int codingw = 0; int fepw = 0; int rx_input_level_dBm; -static int online_log_messages=0; #ifdef XFORMS extern int otg_enabled; static char do_forms=0; @@ -329,60 +327,6 @@ void signal_handler(int sig) { #define KBLU "\x1B[34m" #define RESET "\033[0m" -void help (void) { - printf (KGRN "Usage:\n"); - printf(" sudo -E lte-softmodem [options]\n"); - printf(" sudo -E ./lte-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf -S -V -m 26 -t 16 -x 1 --ulsch-max-errors 100 -W\n\n"); - printf("Options:\n"); - printf(" --rf-config-file Configuration file for front-end (e.g. LMS7002M)\n"); - printf(" --ulsch-max-errors set the max ULSCH erros\n"); - printf(" --calib-ue-rx set UE RX calibration\n"); - printf(" --calib-ue-rx-med \n"); - printf(" --calib-ue-rxbyp\n"); - printf(" --debug-ue-prach run normal prach power ramping, but don't continue random-access\n"); - printf(" --calib-prach-tx run normal prach with maximum power, but don't continue random-access\n"); - printf(" --no-L2-connect bypass L2 and upper layers\n"); - printf(" --ue-rxgain set UE RX gain\n"); - printf(" --ue-rxgain-off external UE amplifier offset\n"); - printf(" --ue-txgain set UE TX gain\n"); - printf(" --ue-nb-ant-rx set UE number of rx antennas\n"); - printf(" --ue-scan-carrier set UE to scan around carrier\n"); - printf(" --dlsch-demod-shift dynamic shift for LLR compuation for TM3/4 (default 0)\n"); - printf(" --loop-memory get softmodem (UE) to loop through memory instead of acquiring from HW\n"); - printf(" --mmapped-dma sets flag for improved EXMIMO UE performance\n"); - printf(" --external-clock tells hardware to use an external clock reference\n"); - printf(" --usim-test use XOR autentication algo in case of test usim mode\n"); - printf(" --single-thread-disable. Disables single-thread mode in lte-softmodem\n"); - printf(" --AgregationLevel Choose the agregation level used by tghe eNB for the OAI use 1, it will save some time of processing the pdcch\n"); - printf(" --DCIformat choose the DCI format, be careful when using this option(for the moment only valid for SISO DCI format 1)\n"); - printf(" -A Set timing_advance\n"); - printf(" -C Set the downlink frequency for all component carriers\n"); - printf(" -d Enable soft scope and L1 and L2 stats (Xforms)\n"); - printf(" -F Calibrate the EXMIMO borad, available files: exmimo2_2arxg.lime exmimo2_2brxg.lime \n"); - printf(" -g Set the global log level, valide options: (9:trace, 8/7:debug, 6:info, 4:warn, 3:error)\n"); - printf(" -G Set the global log verbosity \n"); - printf(" -h provides this help message!\n"); - printf(" -K Generate ITTI analyzser logs (similar to wireshark logs but with more details)\n"); - printf(" -m Set the maximum downlink MCS\n"); - printf(" -O eNB configuration file (located in targets/PROJECTS/GENERIC-LTE-EPC/CONF\n"); - printf(" -q Enable processing timing measurement of lte softmodem on per subframe basis \n"); - printf(" -r Set the PRB, valid values: 6, 25, 50, 100 \n"); - printf(" -S Skip the missed slots/subframes \n"); - printf(" -t Set the maximum uplink MCS\n"); - printf(" -T Set hardware to TDD mode (default: FDD). Used only with -U (otherwise set in config file).\n"); - printf(" -U Set the lte softmodem as a UE\n"); - printf(" -W Enable L2 wireshark messages on localhost \n"); - printf(" -V Enable VCD (generated file will be located atopenair_dump_eNB.vcd, read it with target/RT/USER/eNB.gtkw\n"); - printf(" -x Set the transmission mode, valid options: 1 \n"); - printf(" -E Apply three-quarter of sampling frequency, 23.04 Msps to reduce the data rate on USB/PCIe transfers (only valid for 20 MHz)\n"); -#if 0 //T_TRACER - printf(" --T_port [port] use given port\n"); - printf(" --T_nowait don't wait for tracer, start immediately\n"); - printf(" --T_dont_fork to ease debugging with gdb\n"); -#endif - printf(RESET); - fflush(stdout); -} void exit_fun(const char* s) { int CC_id; @@ -393,10 +337,11 @@ void exit_fun(const char* s) { oai_exit = 1; - for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { - - if (PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func) - PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice); + if (PHY_vars_UE_g && PHY_vars_UE_g[0]) { + for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { + if (PHY_vars_UE_g[0][CC_id] && PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func) + PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice); + } } #if defined(ENABLE_ITTI) @@ -557,6 +502,7 @@ static void get_options (int argc, char **argv) { paramdef_t cmdline_logparams[] = CMDLINE_LOGPARAMS_DESC ; //set_default_frame_parms(config,frame_parms); + CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP); config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); if (strlen(in_path) > 0) { @@ -581,11 +527,17 @@ static void get_options (int argc, char **argv) { load_module_shlib("telnetsrv",NULL,0); } - paramdef_t cmdline_uemodeparams[] =CMDLINE_UEMODEPARAMS_DESC; - paramdef_t cmdline_ueparams[] =CMDLINE_UEPARAMS_DESC; +#if T_TRACER + paramdef_t cmdline_ttraceparams[] = CMDLINE_TTRACEPARAMS_DESC ; + config_process_cmdline( cmdline_ttraceparams,sizeof(cmdline_ttraceparams)/sizeof(paramdef_t),NULL); +#endif + + paramdef_t cmdline_uemodeparams[] = CMDLINE_UEMODEPARAMS_DESC; + paramdef_t cmdline_ueparams[] = CMDLINE_UEPARAMS_DESC; config_process_cmdline( cmdline_uemodeparams,sizeof(cmdline_uemodeparams)/sizeof(paramdef_t),NULL); + CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP); config_process_cmdline( cmdline_ueparams,sizeof(cmdline_ueparams)/sizeof(paramdef_t),NULL); if (loopfile != NULL) { printf("Input file for hardware emulation: %s",loopfile); @@ -612,15 +564,11 @@ static void get_options (int argc, char **argv) { uecap_xer_in=1; } /* UE with config file */ - -#if defined(OAI_USRP) || defined(CPRIGW) || defined(OAI_ADRV9371_ZC706) - int clock_src; -#endif - + } -#if 0 //T_TRACER -int T_wait = 1; /* by default we wait for the tracer */ +#if T_TRACER +int T_nowait = 0; /* by default we wait for the tracer */ int T_port = 2021; /* default port to listen to to wait for the tracer */ int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ #endif @@ -900,15 +848,26 @@ int main( int argc, char **argv ) { // initialize logging logInit(); - // get options and fill parameters from configuration file - get_options (argc, argv); //Command-line options, enb_properties - -#if 0 //T_TRACER - T_init(T_port, T_wait, T_dont_fork); +#if T_TRACER + T_Config_Init(); #endif // initialize the log (see log.h for details) - //set_glog(glog_level, glog_verbosity); + set_glog(LOG_INFO); + + set_log(HW, OAILOG_DEBUG, 1); + set_log(PHY, OAILOG_INFO, 1); + set_log(MAC, OAILOG_INFO, 1); + set_log(RLC, OAILOG_INFO, 1); + set_log(PDCP, OAILOG_INFO, 1); + set_log(OTG, OAILOG_INFO, 1); + set_log(RRC, OAILOG_INFO, 1); +#if defined(ENABLE_ITTI) + set_log(SIM, OAILOG_INFO, 1); +# if defined(ENABLE_USE_MME) + set_log(NAS, OAILOG_INFO, 1); +# endif +#endif //randominit (0); set_taus_seed (0); @@ -932,6 +891,9 @@ int main( int argc, char **argv ) { MSC_INIT(MSC_E_UTRAN, THREAD_MAX+TASK_MAX); #endif + // get options and fill parameters from configuration file + get_options (argc, argv); //Command-line options, enb_properties + if (opt_type != OPT_NONE) { radio_type_t radio_type; diff --git a/targets/RT/USER/nr-uesoftmodem.h b/targets/RT/USER/nr-uesoftmodem.h index ee4049dbda35a5f06006b667eebdab5620054ec1..9a31c4d552ee5d8c3f58671eaef8f0d636fbb9cc 100644 --- a/targets/RT/USER/nr-uesoftmodem.h +++ b/targets/RT/USER/nr-uesoftmodem.h @@ -203,15 +203,6 @@ extern int T_port; extern int T_nowait; extern int T_dont_fork; -/*------------------------------------------------------------------------------------------------------------------------------------------*/ -/* command line parameters for TTRACE utility */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*------------------------------------------------------------------------------------------------------------------------------------------*/ -#define CMDLINE_TTRACEPARAMS_DESC { \ -{"T_port", CONFIG_HLP_TPORT, 0, iptr:&T_port, defintval:0, TYPE_INT, 0}, \ -{"T_nowait", CONFIG_HLP_NOTWAIT, PARAMFLAG_BOOL, iptr:&T_nowait, defintval:0, TYPE_INT, 0}, \ -{"T_dont_fork", CONFIG_HLP_TNOFORK, PARAMFLAG_BOOL, iptr:&T_dont_fork, defintval:1, TYPE_INT, 0}, \ -} /***************************************************************************************************************************************/