diff --git a/openair1/PHY/MODULATION/slot_fep_nr.c b/openair1/PHY/MODULATION/slot_fep_nr.c index de00d2b4bbff8ce739047ec473456eebdf3538cb..876da0af1f312abfdb960f0e3da671df3122877c 100644 --- a/openair1/PHY/MODULATION/slot_fep_nr.c +++ b/openair1/PHY/MODULATION/slot_fep_nr.c @@ -261,6 +261,7 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue, #endif nr_pdsch_channel_estimation(ue,eNB_id,0, Ns, + 0, l, symbol, bwp_start_subcarrier, diff --git a/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c b/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c index 793c6f85bfaf286d00af0ac5b80691000c9d239d..2dae7ab6b53cc59e26ee55d918ecbdbe6852a2e3 100644 --- a/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c +++ b/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c @@ -51,7 +51,7 @@ int nr_pdsch_dmrs_rx(PHY_VARS_NR_UE *ue, unsigned int Ns, unsigned int *nr_gold_pdsch, int32_t *output, - unsigned char p, + unsigned short p, unsigned char lp, unsigned short nb_pdsch_rb) { diff --git a/openair1/PHY/NR_REFSIG/nr_gold_ue.c b/openair1/PHY/NR_REFSIG/nr_gold_ue.c index c856d43df321af08782873d624cf5764a84310c5..c03c1e690425ac732a0ba2d7daa345cb6202bc7b 100644 --- a/openair1/PHY/NR_REFSIG/nr_gold_ue.c +++ b/openair1/PHY/NR_REFSIG/nr_gold_ue.c @@ -123,6 +123,8 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDM nid = n_idDMRS[nscid]; else nid = ue->frame_parms.Nid_cell; + + //printf("gold pdsch nid %d lbar %d\n",nid,lbar); for (ns=0; ns<20; ns++) { @@ -130,6 +132,8 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDM x2tmp0 = ((14*ns+(lbar+l)+1)*((nid<<1)+1))<<17; x2 = (x2tmp0+(nid<<1)+nscid)%(1<<31); //cinit + + //printf("ns %d gold pdsch x2 %d\n",ns,x2); x1 = 1+ (1<<31); x2=x2 ^ ((x2 ^ (x2>>1) ^ (x2>>2) ^ (x2>>3))<<31); @@ -149,6 +153,7 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDM x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4); x2 = x2 ^ (x2<<31) ^ (x2<<30) ^ (x2<<29) ^ (x2<<28); ue->nr_gold_pdsch[nscid][ns][l][n] = x1^x2; + // if ((ns==2)&&(l==0)) //printf("n=%d : c %x\n",n,x1^x2); } diff --git a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h index 905d95e541d53cbe8757f89e96f54061b28bb41d..a47e65d0b0d157ac2ed2cd21a708a55ca2610ca4 100644 --- a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h +++ b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h @@ -46,7 +46,7 @@ int nr_pdsch_dmrs_rx(PHY_VARS_NR_UE *ue, unsigned int Ns, unsigned int *nr_gold_pdsch, int32_t *output, - unsigned char p, + unsigned short p, unsigned char lp, unsigned short nb_pdsch_rb); diff --git a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h index 52356a9438bc22923bc2f2db71e457f23eba2b1a..f94b18fb27b2ca21692d88150fc2c5b0955307d1 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h +++ b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h @@ -90,7 +90,7 @@ short filt8_l0[8] = { 16384,8192,0,0,0,0,0,0}; short filt8_mr0[8] = { -0,8192,16384,8192,0,-8192,0,0}; +0,0,0,8192,16384,8192,0,-8192}; short filt8_r0[8] = { 0,8192,16384,24576,0,0,0,0}; @@ -98,6 +98,9 @@ short filt8_r0[8] = { short filt8_m0[8] = { 0,8192,16384,8192,0,0,0,0}; +short filt8_mm0[8]= { +0,0,0,8192,16384,8192,0,0}; + short filt8_l1[8] = { 24576,16384,0,0,0,0,0,0}; @@ -109,3 +112,6 @@ short filt8_r1[8] = { short filt8_m1[8] = { 0,0,8192,16384,8192,0,0,0}; + +short filt8_mm1[8]= { +0,0,0,0,8192,16384,8192,0}; diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c index 050478b0b0a1cf870ad003272eee01fadb120eeb..c540da5a4e11b7c57d968e04bfa423e0f2d6f951 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -432,22 +432,24 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, uint8_t eNB_id, uint8_t eNB_offset, unsigned char Ns, - unsigned char p, + unsigned short p, unsigned char l, unsigned char symbol, unsigned short bwp_start_subcarrier, unsigned short nb_rb_pdsch) { - int pilot[2][200] __attribute__((aligned(16))); + int pilot[1320] __attribute__((aligned(16))); unsigned char aarx; unsigned short k; unsigned int pilot_cnt; - int16_t ch[2],*pil,*rxF,*dl_ch,*fl,*fm,*fr,*fml,*fmr; + int16_t ch[2],*pil,*rxF,*dl_ch,*fl,*fm,*fr,*fml,*fmr,*fmm; int ch_offset,symbol_offset; //uint16_t Nid_cell = (eNB_offset == 0) ? ue->frame_parms.Nid_cell : ue->measurements.adj_cell_id[eNB_offset-1]; uint8_t nushift; + //int **dl_ch_estimates =ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns]].dl_ch_estimates[eNB_offset]; + //int **rxdataF=ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns]].rxdataF; int **dl_ch_estimates =ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns]].dl_ch_estimates[eNB_offset]; int **rxdataF=ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns]].rxdataF; @@ -463,16 +465,17 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, k = bwp_start_subcarrier; -#ifdef DEBUG_CH - printf("PBCH Channel Estimation : ThreadId %d, eNB_offset %d cell_id %d ch_offset %d, OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d symbol %d\n",ue->current_thread_id[Ns>>1], eNB_offset,Nid_cell,ch_offset,ue->frame_parms.ofdm_symbol_size, +//#ifdef DEBUG_CH + printf("PDSCH Channel Estimation : ThreadId %d, eNB_offset %d ch_offset %d, symbol_offset %d OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d symbol %d\n",ue->current_thread_id[Ns>>1], eNB_offset,ch_offset,symbol_offset,ue->frame_parms.ofdm_symbol_size, ue->frame_parms.Ncp,l,Ns,k, symbol); -#endif +//#endif switch (nushift) { case 0: fl = filt8_l0; fm = filt8_m0; fr = filt8_r0; + fmm = filt8_mm0; fml = filt8_m0; fmr = filt8_mr0; break; @@ -481,6 +484,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, fl = filt8_l1; fm = filt8_m1; fr = filt8_r1; + fmm = filt8_mm1; fml = filt8_ml1; fmr = filt8_m1; break; @@ -493,34 +497,34 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, // generate pilot - nr_pdsch_dmrs_rx(ue,Ns,ue->nr_gold_pdsch[eNB_offset][Ns][symbol], &pilot[p][0],1000,1,nb_rb_pdsch); + nr_pdsch_dmrs_rx(ue,Ns,ue->nr_gold_pdsch[eNB_offset][Ns][0], &pilot[0],1000,0,nb_rb_pdsch); for (aarx=0; aarxframe_parms.nb_antennas_rx; aarx++) { - pil = (int16_t *)&pilot[p][0]; + pil = (int16_t *)&pilot[0]; rxF = (int16_t *)&rxdataF[aarx][(symbol_offset+k+nushift)]; - dl_ch = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]; + dl_ch = (int16_t *)&dl_ch_estimates[aarx][ch_offset]; memset(dl_ch,0,4*(ue->frame_parms.ofdm_symbol_size)); if (ue->high_speed_flag==0) // multiply previous channel estimate by ch_est_alpha multadd_complex_vector_real_scalar(dl_ch-(ue->frame_parms.ofdm_symbol_size<<1), ue->ch_est_alpha,dl_ch-(ue->frame_parms.ofdm_symbol_size<<1), 1,ue->frame_parms.ofdm_symbol_size); -#ifdef DEBUG_CH - printf("ch est pilot addr %p RB_DL %d\n",&pilot[p][0], ue->frame_parms.N_RB_DL); +//#ifdef DEBUG_CH + printf("ch est pilot addr %p RB_DL %d\n",&pilot[0], ue->frame_parms.N_RB_DL); printf("k %d, first_carrier %d\n",k,ue->frame_parms.first_carrier_offset); - printf("rxF addr %p\n", rxF); + printf("rxF addr %p p %d\n", rxF,p); printf("dl_ch addr %p\n",dl_ch); -#endif - if ((ue->frame_parms.N_RB_DL&1)==0) { +//#endif + //if ((ue->frame_parms.N_RB_DL&1)==0) { // Treat first 2 pilots specially (left edge) ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); -#ifdef DEBUG_CH +//#ifdef DEBUG_CH printf("ch 0 %d\n",((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])); printf("pilot 0 : rxF - > (%d,%d) addr %p ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],&rxF[0],ch[0],ch[1],pil[0],pil[1]); -#endif +//#endif multadd_real_vector_complex_scalar(fl, ch, dl_ch, @@ -532,21 +536,35 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); -#ifdef DEBUG_CH +//#ifdef DEBUG_CH printf("pilot 1 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); -#endif +//#endif multadd_real_vector_complex_scalar(fml, ch, dl_ch, 8); pil+=2; rxF+=4; - dl_ch+=4; + printf("dl_ch addr %p\n",dl_ch); + + ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); + ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); +//#ifdef DEBUG_CH + printf("pilot 2 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); +//#endif + multadd_real_vector_complex_scalar(fmm, + ch, + dl_ch, + 8); + pil+=2; + rxF+=4; + dl_ch+=8; k+=4; + printf("dl_ch addr %p\n",dl_ch); - for (pilot_cnt=2; pilot_cnt<(6*(nb_rb_pdsch-1)+4); pilot_cnt+=2) { - if ((pilot_cnt%6)==0) - dl_ch+=4; + for (pilot_cnt=3; pilot_cnt<6*(nb_rb_pdsch-1); pilot_cnt+=3) { + //if ((pilot_cnt%6)==0) + //dl_ch+=4; if (k >= ue->frame_parms.ofdm_symbol_size){ k-=ue->frame_parms.ofdm_symbol_size; @@ -554,9 +572,9 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); -#ifdef DEBUG_CH +//#ifdef DEBUG_CH printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); -#endif +//#endif multadd_real_vector_complex_scalar(fm, ch, dl_ch, @@ -564,55 +582,67 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, pil+=2; rxF+=4; - dl_ch+=4; - + ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); -#ifdef DEBUG_CH +//#ifdef DEBUG_CH printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); -#endif - multadd_real_vector_complex_scalar(fm, +//#endif + multadd_real_vector_complex_scalar(fmm, ch, dl_ch, 8); pil+=2; rxF+=4; - dl_ch+=4; + dl_ch+=8; k+=4; } // Treat first 2 pilots specially (right edge) + ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); + ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); +//#ifdef DEBUG_CH + printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+2,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); +//#endif + multadd_real_vector_complex_scalar(fmm, + ch, + dl_ch, + 8); + pil+=2; + rxF+=4; + ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); -#ifdef DEBUG_CH +//#ifdef DEBUG_CH printf("ch 0 %d\n",((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])); printf("pilot 0 : rxF - > (%d,%d) addr %p ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],&rxF[0],ch[0],ch[1],pil[0],pil[1]); -#endif +//#endif multadd_real_vector_complex_scalar(fmr, ch, dl_ch, 8); pil+=2; rxF+=4; + dl_ch+=8; + k+=4; + //for (int i= 0; i<8; i++) //printf("dl_ch addr %p %d\n", dl_ch+i, *(dl_ch+i)); - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); - ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); + //ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); + //ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH printf("pilot 1 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(fr, ch, dl_ch, - 8); - pil+=2; - rxF+=4; - dl_ch+=4; - k+=4; + 4); + //pil+=2; + //rxF+=4; - } + //} } diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h b/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h index 25d6755723e605935cd361fd76d6dd8b374c5f0b..aaaf63e75327be17446eb510a5d8107f369c6a93 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h @@ -62,6 +62,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, uint8_t eNB_id, uint8_t eNB_offset, unsigned char Ns, + unsigned short p, unsigned char l, unsigned char symbol, unsigned short bwp_start_subcarrier, diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c index fd686cf0c527bb15c4ec581ac5b2944f6128e0d7..bac082f2d61f306bb77c747b01e0fad4f5a516b6 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c @@ -35,7 +35,7 @@ #include "PHY/sse_intrin.h" #include "PHY/LTE_REFSIG/lte_refsig.h" -#define DEBUG_PBCH 1 +//#define DEBUG_PBCH 1 //#define DEBUG_PBCH_ENCODING #ifdef OPENAIR2 diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index 8c107d085e08caa550e97df90a090b8db28cd13b..5c8e482e2f235a415336444001e7103c5d10b66b 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -5568,8 +5568,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN nr_slot_fep(ue, l, nr_tti_rx, + ue->ssb_offset, 0, - 1, 1, NR_PDCCH_EST); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT); @@ -5630,26 +5630,29 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN #endif //#if 0 LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, nr_tti_rx); + //set active for testing, to be removed + //if (nr_tti_rx==2){ //to update from pdsch config nr_gold_pdsch(ue,2,0, 1); + int nb_prefix_samples0 = ue->frame_parms.nb_prefix_samples0; ue->frame_parms.nb_prefix_samples0 = ue->frame_parms.nb_prefix_samples; nr_slot_fep(ue, 2, //to be updated from higher layer nr_tti_rx, + ue->ssb_offset, 0, - 0, - 0, + 1, NR_PDSCH_EST); //put back nb_prefix_samples0 ue->frame_parms.nb_prefix_samples0 = nb_prefix_samples0; - - //set active for testing, to be removed - if (nr_tti_rx==1) + + ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active = 1; + //} #if UE_TIMING_TRACE start_meas(&ue->generic_stat); @@ -5726,13 +5729,13 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN start_meas(&ue->ofdm_demod_stats); #endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN); - nr_slot_fep(ue, + /*nr_slot_fep(ue, l, 1+(nr_tti_rx<<1), 0, 0, 0, - NR_PDSCH_EST); + NR_PDSCH_EST);*/ VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT); #if UE_TIMING_TRACE stop_meas(&ue->ofdm_demod_stats); @@ -5747,13 +5750,13 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN int next_nr_tti_rx = (1+nr_tti_rx)%10; if (nr_subframe_select(&ue->frame_parms,next_nr_tti_rx) != SF_UL) { - nr_slot_fep(ue, + /*nr_slot_fep(ue, 0, (next_nr_tti_rx<<1), 0, 0, 0, - NR_PDSCH_EST); + NR_PDSCH_EST);*/ } } // not an S-subframe #if UE_TIMING_TRACE diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h index ae5f4d91d9c1c927390b7331285421ac0ef526d2..aa2bc01a72a10dfa01c98c23cb7d608b4ebc0529 100644 --- a/targets/ARCH/COMMON/common_lib.h +++ b/targets/ARCH/COMMON/common_lib.h @@ -204,7 +204,10 @@ typedef struct { //! clock source clock_source_t clock_source; //! Manual SDR IP address +//#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) +#ifndef OAI_ADRV9371_ZC706 char *sdr_addrs; +#endif //! Auto calibration flag int autocal[4]; //! rf devices work with x bits iqs when oai have its own iq format diff --git a/targets/RT/USER/nr-ue.c b/targets/RT/USER/nr-ue.c index 0fd27f58e398c4b658b91741ff2fd99c1c2e434a..2f9c7c6b0a3148cdc574bb7aab09bf3c519498d5 100644 --- a/targets/RT/USER/nr-ue.c +++ b/targets/RT/USER/nr-ue.c @@ -824,6 +824,7 @@ void *UE_thread(void *arg) { int i; char threadname[128]; int th_id; + unsigned char nb_sf_init=10; UE->proc.proc_rxtx[0].counter_decoder = 0; UE->proc.proc_rxtx[1].counter_decoder = 0; UE->proc.proc_rxtx[2].counter_decoder = 0; @@ -865,6 +866,12 @@ void *UE_thread(void *arg) { printf("ue sync not ready\n"); usleep(500*1000); } +#endif + +#ifndef OAI_ADRV9371_ZC706 +nb_sf_init = 10; +#else +nb_sf_init=5; #endif if (instance_cnt_synch < 0) { // we can invoke the synch // grab 10 ms of signal and wakeup synch thread @@ -872,11 +879,11 @@ void *UE_thread(void *arg) { rxp[i] = (void*)&UE->common_vars.rxdata[i][0]; if (UE->mode != loop_through_memory) - AssertFatal( UE->frame_parms.samples_per_subframe*10 == + AssertFatal( UE->frame_parms.samples_per_subframe*nb_sf_init == UE->rfdevice.trx_read_func(&UE->rfdevice, ×tamp, rxp, - UE->frame_parms.samples_per_subframe*10, + UE->frame_parms.samples_per_subframe*nb_sf_init, UE->frame_parms.nb_antennas_rx), "error reading samples"); AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); diff --git a/targets/RT/USER/nr-uesoftmodem.c b/targets/RT/USER/nr-uesoftmodem.c index 69e04023bb86dd5a21936d2319ca312a021a3eac..10c6f87cdc522a8079daa20c0404f5398ccc19b8 100644 --- a/targets/RT/USER/nr-uesoftmodem.c +++ b/targets/RT/USER/nr-uesoftmodem.c @@ -782,7 +782,9 @@ void init_openair0() { openair0_cfg[card].rx_freq[i]); } +#ifndef OAI_ADRV9371_ZC706 if (usrp_args) openair0_cfg[card].sdr_addrs = usrp_args; +#endif if (usrp_clksrc) { if (strcmp(usrp_clksrc, "internal") == 0) { openair0_cfg[card].clock_source = internal;