Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
c8b9ca55
Commit
c8b9ca55
authored
Nov 07, 2018
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nr-uesoftmodem: moving phy_procedures_nrUE into main thread when --loop-memory is used.
parent
e9a5ac20
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
16 deletions
+47
-16
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+3
-3
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+44
-13
No files found.
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
c8b9ca55
...
@@ -5913,8 +5913,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5913,8 +5913,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
#endif
#endif
//nr_gold_pdcch(ue,0, 2);
//nr_gold_pdcch(ue,0, 2);
/*
for (l=0; l<2; l++) {
for
(
int
l
=
0
;
l
<
2
;
l
++
)
{
if
(
abstraction_flag
==
0
)
{
if
(
abstraction_flag
==
0
)
{
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
ofdm_demod_stats
);
start_meas
(
&
ue
->
ofdm_demod_stats
);
...
@@ -5933,7 +5933,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5933,7 +5933,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
stop_meas
(
&
ue
->
ofdm_demod_stats
);
stop_meas
(
&
ue
->
ofdm_demod_stats
);
#endif
#endif
}
}
}
*/
}
//ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
//ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
//if (do_pdcch_flag) {
//if (do_pdcch_flag) {
...
...
targets/RT/USER/nr-ue.c
View file @
c8b9ca55
...
@@ -956,7 +956,7 @@ void *UE_thread(void *arg) {
...
@@ -956,7 +956,7 @@ void *UE_thread(void *arg) {
#if BASIC_SIMULATOR
#if BASIC_SIMULATOR
{
{
int
t
;
int
t
;
for
(
t
=
0
;
t
<
2
;
t
++
)
{
for
(
t
=
0
;
t
<
RX_NB_TH
;
t
++
)
{
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
t
];
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
t
];
pthread_mutex_lock
(
&
proc
->
mutex_rxtx
);
pthread_mutex_lock
(
&
proc
->
mutex_rxtx
);
while
(
proc
->
instance_cnt_rxtx
>=
0
)
pthread_cond_wait
(
&
proc
->
cond_rxtx
,
&
proc
->
mutex_rxtx
);
while
(
proc
->
instance_cnt_rxtx
>=
0
)
pthread_cond_wait
(
&
proc
->
cond_rxtx
,
&
proc
->
mutex_rxtx
);
...
@@ -964,13 +964,13 @@ void *UE_thread(void *arg) {
...
@@ -964,13 +964,13 @@ void *UE_thread(void *arg) {
}
}
}
}
#endif
#endif
LOG_D
(
PHY
,
"Process subframe %d thread Idx %d
\n
"
,
subframe_nr
,
UE
->
current_thread_id
[
subframe_nr
]);
LOG_D
(
PHY
,
"Process subframe %d thread Idx %d
\n
"
,
subframe_nr
,
UE
->
current_thread_id
[
subframe_nr
]);
thread_idx
++
;
thread_idx
++
;
if
(
thread_idx
>=
RX_NB_TH
)
if
(
thread_idx
>=
RX_NB_TH
)
thread_idx
=
0
;
thread_idx
=
0
;
if
(
UE
->
mode
!=
loop_through_memory
)
{
if
(
UE
->
mode
!=
loop_through_memory
)
{
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
)
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
)
rxp
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
rxdata
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
rxp
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
rxdata
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
...
@@ -1033,9 +1033,6 @@ void *UE_thread(void *arg) {
...
@@ -1033,9 +1033,6 @@ void *UE_thread(void *arg) {
if
(
first_symbols
<
0
)
if
(
first_symbols
<
0
)
LOG_E
(
PHY
,
"can't compensate: diff =%d
\n
"
,
first_symbols
);
LOG_E
(
PHY
,
"can't compensate: diff =%d
\n
"
,
first_symbols
);
}
}
}
//UE->mode != loop_through_memory
else
rt_sleep_ns
(
1000
*
1000
);
pickTime
(
gotIQs
);
pickTime
(
gotIQs
);
// operate on thread sf mod 2
// operate on thread sf mod 2
...
@@ -1047,13 +1044,13 @@ void *UE_thread(void *arg) {
...
@@ -1047,13 +1044,13 @@ void *UE_thread(void *arg) {
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
}
}
#ifdef SAIF_ENABLED
#ifdef SAIF_ENABLED
if
(
!
(
proc
->
frame_rx
%
4000
))
if
(
!
(
proc
->
frame_rx
%
4000
))
{
{
printf
(
"frame_rx=%d rx_thread_busy=%ld - rate %8.3f
\n
"
,
printf
(
"frame_rx=%d rx_thread_busy=%ld - rate %8.3f
\n
"
,
proc
->
frame_rx
,
g_ue_rx_thread_busy
,
proc
->
frame_rx
,
g_ue_rx_thread_busy
,
(
float
)
g_ue_rx_thread_busy
/
(
proc
->
frame_rx
*
10
+
1
)
*
100
.
0
);
(
float
)
g_ue_rx_thread_busy
/
(
proc
->
frame_rx
*
10
+
1
)
*
100
.
0
);
fflush
(
stdout
);
fflush
(
stdout
);
}
}
#endif
#endif
}
}
//UE->proc.proc_rxtx[0].gotIQs=readTime(gotIQs);
//UE->proc.proc_rxtx[0].gotIQs=readTime(gotIQs);
...
@@ -1071,7 +1068,7 @@ void *UE_thread(void *arg) {
...
@@ -1071,7 +1068,7 @@ void *UE_thread(void *arg) {
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
}
}
proc
->
subframe_tx
=
subframe_nr
+
DURATION_RX_TO_TX
;
proc
->
subframe_tx
=
proc
->
nr_tti_rx
;
proc
->
timestamp_tx
=
timestamp
+
proc
->
timestamp_tx
=
timestamp
+
(
DURATION_RX_TO_TX
*
UE
->
frame_parms
.
samples_per_subframe
)
-
(
DURATION_RX_TO_TX
*
UE
->
frame_parms
.
samples_per_subframe
)
-
UE
->
frame_parms
.
ofdm_symbol_size
-
UE
->
frame_parms
.
nb_prefix_samples0
;
UE
->
frame_parms
.
ofdm_symbol_size
-
UE
->
frame_parms
.
nb_prefix_samples0
;
...
@@ -1107,7 +1104,41 @@ void *UE_thread(void *arg) {
...
@@ -1107,7 +1104,41 @@ void *UE_thread(void *arg) {
// initStaticTime(lastTime);
// initStaticTime(lastTime);
// updateTimes(lastTime, &t1, 20000, "Delay between two IQ acquisitions (case 1)");
// updateTimes(lastTime, &t1, 20000, "Delay between two IQ acquisitions (case 1)");
// pickStaticTime(lastTime);
// pickStaticTime(lastTime);
}
//UE->mode != loop_through_memory
else
{
proc
->
nr_tti_rx
=
subframe_nr
;
proc
->
subframe_rx
=
subframe_nr
;
if
(
subframe_nr
==
0
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
}
}
proc
->
frame_tx
=
proc
->
frame_rx
;
proc
->
nr_tti_tx
=
subframe_nr
+
DURATION_RX_TO_TX
;
if
(
proc
->
nr_tti_tx
>
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
)
{
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
}
proc
->
subframe_tx
=
proc
->
nr_tti_tx
;
printf
(
"Processing subframe %d
\n
"
,
proc
->
subframe_rx
);
if
(
UE
->
if_inst
!=
NULL
&&
UE
->
if_inst
->
ul_indication
!=
NULL
){
UE
->
ul_indication
.
module_id
=
0
;
UE
->
ul_indication
.
gNB_index
=
0
;
UE
->
ul_indication
.
cc_id
=
0
;
UE
->
ul_indication
.
slot
=
0
;
// to be fill
UE
->
ul_indication
.
frame
=
0
;
// to be fill
// [TODO] mapping right after NR initial sync
UE
->
ul_indication
.
frame
=
proc
->
frame_rx
;
UE
->
ul_indication
.
slot
=
proc
->
nr_tti_rx
;
UE
->
if_inst
->
ul_indication
(
&
UE
->
ul_indication
);
}
phy_procedures_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
);
getchar
();
}
// else loop_through_memory
}
// start_rx_stream==1
}
// start_rx_stream==1
}
// UE->is_synchronized==1
}
// UE->is_synchronized==1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment