From c5fd67080358ef781e7fb60c9b01bd4b7cb75350 Mon Sep 17 00:00:00 2001 From: Florian Kaltenberger <kaltenbe@eurecom.fr> Date: Fri, 18 Aug 2017 17:18:02 +0200 Subject: [PATCH] making use of gpsdo optional --- targets/ARCH/COMMON/common_lib.h | 4 ++- targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp | 6 +++-- targets/RT/USER/lte-softmodem.c | 27 +++++--------------- 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h index be69a7027a..129705c229 100644 --- a/targets/ARCH/COMMON/common_lib.h +++ b/targets/ARCH/COMMON/common_lib.h @@ -140,7 +140,9 @@ typedef enum { //! This tells the underlying hardware to use the internal reference internal=0, //! This tells the underlying hardware to use the external reference - external=1 + external=1, + //! This tells the underlying hardware to use the gpsdo reference + gpsdo=2 } clock_source_t; /*! \brief RF frontend parameters set by application */ diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp index 8fc177245d..95a2903785 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -660,7 +660,9 @@ extern "C" { uhd::set_thread_priority_safe(1.0); usrp_state_t *s = (usrp_state_t*)calloc(sizeof(usrp_state_t),1); - s->use_gps =1; + if (openair0_cfg[0].clock_source==gpsdo) + s->use_gps =1; + // Initialize USRP device device->openair0_cfg = openair0_cfg; @@ -755,7 +757,7 @@ extern "C" { // lock mboard clocks if (openair0_cfg[0].clock_source == internal){ - //s->usrp->set_clock_source("internal"); + s->usrp->set_clock_source("internal"); } else{ s->usrp->set_clock_source("external"); diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index a1f3bcb57b..d680a42464 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -608,9 +608,6 @@ static void get_options (int argc, char **argv) { // char line[1000]; // int l; int k,i;//,j,k; -#if defined(OAI_USRP) || defined(CPRIGW) - int clock_src; -#endif int CC_id; @@ -639,6 +636,7 @@ static void get_options (int argc, char **argv) { LONG_OPTION_USIMTEST, LONG_OPTION_MMAPPED_DMA, LONG_OPTION_EXTERNAL_CLOCK, + LONG_OPTION_GPSDO_CLOCK, LONG_OPTION_WAIT_FOR_SYNC, LONG_OPTION_SINGLE_THREAD_DISABLE, LONG_OPTION_THREADIQ, @@ -681,6 +679,7 @@ static void get_options (int argc, char **argv) { {"usim-test", no_argument, NULL, LONG_OPTION_USIMTEST}, {"mmapped-dma", no_argument, NULL, LONG_OPTION_MMAPPED_DMA}, {"external-clock", no_argument, NULL, LONG_OPTION_EXTERNAL_CLOCK}, + {"gpsdo-clock", no_argument, NULL, LONG_OPTION_GPSDO_CLOCK}, {"wait-for-sync", no_argument, NULL, LONG_OPTION_WAIT_FOR_SYNC}, {"single-thread-disable", no_argument, NULL, LONG_OPTION_SINGLE_THREAD_DISABLE}, {"threadIQ", required_argument, NULL, LONG_OPTION_THREADIQ}, @@ -810,6 +809,10 @@ static void get_options (int argc, char **argv) { clock_source = external; break; + case LONG_OPTION_GPSDO_CLOCK: + clock_source = gpsdo; + break; + case LONG_OPTION_WAIT_FOR_SYNC: wait_for_sync = 1; break; @@ -1002,24 +1005,6 @@ static void get_options (int argc, char **argv) { break; - case 's': -#if defined(OAI_USRP) || defined(CPRIGW) - - clock_src = atoi(optarg); - - if (clock_src == 0) { - // char ref[128] = "internal"; - //strncpy(uhd_ref, ref, strlen(ref)+1); - } else if (clock_src == 1) { - //char ref[128] = "external"; - //strncpy(uhd_ref, ref, strlen(ref)+1); - } - -#else - printf("Note: -s not defined for ExpressMIMO2\n"); -#endif - break; - case 'S': exit_missed_slots=0; printf("Skip exit for missed slots\n"); -- GitLab