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
37752af2
Commit
37752af2
authored
Jul 05, 2023
by
Laurent THOMAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make common code for data copy to the scope
parent
fe613541
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
87 additions
and
77 deletions
+87
-77
executables/nr-ru.c
executables/nr-ru.c
+7
-2
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+7
-1
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+2
-2
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+3
-4
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+2
-2
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+1
-1
openair1/PHY/TOOLS/nr_phy_scope.c
openair1/PHY/TOOLS/nr_phy_scope.c
+9
-15
openair1/PHY/TOOLS/phy_scope_interface.c
openair1/PHY/TOOLS/phy_scope_interface.c
+30
-34
openair1/PHY/TOOLS/phy_scope_interface.h
openair1/PHY/TOOLS/phy_scope_interface.h
+24
-14
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+2
-2
No files found.
executables/nr-ru.c
View file @
37752af2
...
...
@@ -1249,8 +1249,13 @@ void *ru_thread( void *param ) {
clock_gettime
(
CLOCK_MONOTONIC
,
&
ru
->
rt_ru_profiling
.
return_RU_feprx
[
rt_prof_idx
]);
//LOG_M("rxdata.m","rxs",ru->common.rxdata[0],1228800,1,1);
LOG_D
(
PHY
,
"RU proc: frame_rx = %d, tti_rx = %d
\n
"
,
proc
->
frame_rx
,
proc
->
tti_rx
);
if
(
IS_SOFTMODEM_DOSCOPE
&&
RC
.
gNB
[
0
]
->
scopeData
)
((
scopeData_t
*
)
RC
.
gNB
[
0
]
->
scopeData
)
->
slotFunc
(
ru
->
common
.
rxdataF
[
0
],
proc
->
tti_rx
,
RC
.
gNB
[
0
]
->
scopeData
);
gNBscopeCopy
(
RC
.
gNB
[
0
],
gNBRxdataF
,
ru
->
common
.
rxdataF
[
0
],
sizeof
(
c16_t
),
1
,
gNB
->
frame_parms
.
samples_per_slot_wCP
,
proc
->
tti_rx
*
gNB
->
frame_parms
.
samples_per_slot_wCP
);
// Do PRACH RU processing
int
prach_id
=
find_nr_prach_ru
(
ru
,
proc
->
frame_rx
,
proc
->
tti_rx
,
SEARCH_EXIST
);
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
37752af2
...
...
@@ -993,7 +993,13 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
}
if
(
dmrss
==
2
)
UEscopeCopy
(
ue
,
pbchDlChEstimateTime
,
(
void
*
)
dl_ch_estimates_time
,
sizeof
(
struct
complex16
),
ue
->
frame_parms
.
nb_antennas_rx
,
ue
->
frame_parms
.
ofdm_symbol_size
);
UEscopeCopy
(
ue
,
pbchDlChEstimateTime
,
(
void
*
)
dl_ch_estimates_time
,
sizeof
(
c16_t
),
ue
->
frame_parms
.
nb_antennas_rx
,
ue
->
frame_parms
.
ofdm_symbol_size
,
0
);
return
(
0
);
}
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
37752af2
...
...
@@ -745,7 +745,7 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
log2_maxh
,
n_rb
);
// log2_maxh+I0_shift
UEscopeCopy
(
ue
,
pdcchRxdataF_comp
,
rxdataF_comp
,
sizeof
(
struct
complex16
),
frame_parms
->
nb_antennas_rx
,
rx_size
);
UEscopeCopy
(
ue
,
pdcchRxdataF_comp
,
rxdataF_comp
,
sizeof
(
struct
complex16
),
frame_parms
->
nb_antennas_rx
,
rx_size
,
0
);
if
(
frame_parms
->
nb_antennas_rx
>
1
)
{
LOG_D
(
PHY
,
"we enter nr_pdcch_detection_mrc(frame_parms->nb_antennas_rx=%d)
\n
"
,
frame_parms
->
nb_antennas_rx
);
...
...
@@ -761,7 +761,7 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
s
,
n_rb
);
UEscopeCopy
(
ue
,
pdcchLlr
,
llr
,
sizeof
(
int16_t
),
1
,
llr_size
);
UEscopeCopy
(
ue
,
pdcchLlr
,
llr
,
sizeof
(
int16_t
),
1
,
llr_size
,
0
);
#if T_TRACER
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
37752af2
...
...
@@ -259,7 +259,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
int32_t
*
log2_maxh
,
int
rx_size_symbol
,
int
nbRx
,
int32_t
rxdataF_comp
[][
nbRx
][
rx_size_symbol
],
int32_t
rxdataF_comp
[][
nbRx
][
rx_size_symbol
*
NR_SYMBOLS_PER_SLOT
],
c16_t
ptrs_phase_per_slot
[][
NR_SYMBOLS_PER_SLOT
],
int32_t
ptrs_re_per_slot
[][
NR_SYMBOLS_PER_SLOT
])
{
...
...
@@ -621,7 +621,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
codeword_TB0
,
codeword_TB1
,
layer_llr
);
// if (llr[0][0]) abort();
for
(
int
i
=
0
;
i
<
NR_MAX_NB_LAYERS
;
i
++
)
free
(
layer_llr
[
i
]);
// Please keep it: useful for debugging
...
...
@@ -667,8 +667,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
T_INT
(
frame_parms
->
symbols_per_slot
),
T_BUFFER
(
&
rxdataF_comp
[
gNB_id
][
0
],
2
*
/* ulsch[UE_id]->harq_processes[harq_pid]->nb_rb */
frame_parms
->
N_RB_UL
*
12
*
2
));
#endif
UEscopeCopy
(
ue
,
pdschRxdataF_comp
,
rxdataF_comp
,
sizeof
(
c16_t
),
nbRx
,
rx_size_symbol
);
UEscopeCopy
(
ue
,
pdschRxdataF_comp
,
rxdataF_comp
[
0
],
sizeof
(
c16_t
),
nbRx
,
rx_size_symbol
*
NR_SYMBOLS_PER_SLOT
,
0
);
if
(
ue
->
phy_sim_pdsch_rxdataF_comp
)
for
(
int
a
=
0
;
a
<
nbRx
;
a
++
)
{
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
37752af2
...
...
@@ -486,8 +486,8 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue,
}
// legacy code use int16, but it is complex16
UEscopeCopy
(
ue
,
pbchRxdataF_comp
,
pbch_unClipped
,
sizeof
(
struct
complex16
),
frame_parms
->
nb_antennas_rx
,
pbch_e_rx_idx
/
2
);
UEscopeCopy
(
ue
,
pbchLlr
,
pbch_e_rx
,
sizeof
(
int16_t
),
frame_parms
->
nb_antennas_rx
,
pbch_e_rx_idx
);
UEscopeCopy
(
ue
,
pbchRxdataF_comp
,
pbch_unClipped
,
sizeof
(
struct
complex16
),
frame_parms
->
nb_antennas_rx
,
pbch_e_rx_idx
/
2
,
0
);
UEscopeCopy
(
ue
,
pbchLlr
,
pbch_e_rx
,
sizeof
(
int16_t
),
frame_parms
->
nb_antennas_rx
,
pbch_e_rx_idx
,
0
);
#ifdef DEBUG_PBCH
write_output
(
"rxdataF_comp.m"
,
"rxFcomp"
,
rxdataF_comp
[
0
],
240
*
3
,
1
,
1
);
short
*
p
=
(
short
*
)
rxdataF_comp
[
0
]);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
37752af2
...
...
@@ -404,7 +404,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
int32_t
*
log2_maxhrx_size_symbol
,
int
rx_size_symbol
,
int
nbRx
,
int32_t
rxdataF_comp
[][
nbRx
][
rx_size_symbol
],
int32_t
rxdataF_comp
[][
nbRx
][
rx_size_symbol
*
NR_SYMBOLS_PER_SLOT
],
c16_t
ptrs_phase_per_slot
[][
NR_SYMBOLS_PER_SLOT
],
int32_t
ptrs_re_per_slot
[][
NR_SYMBOLS_PER_SLOT
]);
...
...
openair1/PHY/TOOLS/nr_phy_scope.c
View file @
37752af2
...
...
@@ -501,7 +501,9 @@ static void timeResponse (OAIgraph_t *graph, scopeData_t *p, int nb_UEs) {
static
void
gNBfreqWaterFall
(
OAIgraph_t
*
graph
,
scopeData_t
*
p
,
int
nb_UEs
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=&
p
->
gNB
->
frame_parms
;
//use 1st antenna
genericWaterFall
(
graph
,
(
scopeSample_t
*
)
p
->
liveData
,
frame_parms
->
samples_per_frame_wCP
,
genericWaterFall
(
graph
,
(
scopeSample_t
*
)
p
->
liveData
[
gNBRxdataF
],
frame_parms
->
samples_per_frame_wCP
,
frame_parms
->
slots_per_frame
,
"X axis: Frequency domain, one subframe"
);
}
...
...
@@ -736,26 +738,19 @@ static void *scope_thread_gNB(void *arg) {
}
#endif
static
void
copyRxdataF
(
int32_t
*
data
,
int
slot
,
void
*
scopeData
)
{
scopeData_t
*
scope
=
(
scopeData_t
*
)
scopeData
;
memcpy
(((
int32_t
*
)
scope
->
liveData
)
+
slot
*
scope
->
gNB
->
frame_parms
.
samples_per_slot_wCP
,
data
,
scope
->
gNB
->
frame_parms
.
samples_per_slot_wCP
*
sizeof
(
int32_t
));
}
STATICFORXSCOPE
void
gNBinitScope
(
scopeParms_t
*
p
)
{
AssertFatal
(
p
->
gNB
->
scopeData
=
malloc
(
sizeof
(
scopeData_t
)),
""
);
AssertFatal
(
p
->
gNB
->
scopeData
=
calloc
(
sizeof
(
scopeData_t
),
1
),
""
);
scopeData_t
*
scope
=
(
scopeData_t
*
)
p
->
gNB
->
scopeData
;
scope
->
argc
=
p
->
argc
;
scope
->
argv
=
p
->
argv
;
scope
->
ru
=
p
->
ru
;
scope
->
gNB
=
p
->
gNB
;
scope
->
slotFunc
=
copyRxdataF
;
AssertFatal
(
scope
->
liveData
=
calloc
(
p
->
gNB
->
frame_parms
.
samples_per_frame_wCP
*
sizeof
(
int32_t
),
1
),
""
);
scope
->
copyData
=
copyData
;
#ifndef WEBSRVSCOPE
pthread_t
forms_thread
;
threadCreate
(
&
forms_thread
,
scope_thread_gNB
,
p
->
gNB
->
scopeData
,
"scope"
,
-
1
,
OAI_PRIORITY_RT_LOW
);
copyDataMutexInit
(
scope
);
#endif
}
static
void
ueWaterFall
(
scopeGraphData_t
**
data
,
OAIgraph_t
*
graph
,
PHY_VARS_NR_UE
*
phy_vars_ue
,
int
eNB_id
,
int
UE_id
)
{
...
...
@@ -1140,14 +1135,13 @@ static void *nrUEscopeThread(void *arg) {
STATICFORXSCOPE
void
nrUEinitScope
(
PHY_VARS_NR_UE
*
ue
)
{
AssertFatal
(
ue
->
scopeData
=
malloc
(
sizeof
(
scopeData_t
)),
""
);
AssertFatal
(
ue
->
scopeData
=
calloc
(
sizeof
(
scopeData_t
),
1
),
""
);
scopeData_t
*
scope
=
(
scopeData_t
*
)
ue
->
scopeData
;
scope
->
copyData
=
UEcopyData
;
AssertFatal
(
scope
->
liveData
=
calloc
(
sizeof
(
scopeGraphData_t
*
),
UEdataTypeNumberOfItems
),
""
);
scope
->
copyData
=
copyData
;
#ifndef WEBSRVSCOPE
pthread_t
forms_thread
;
threadCreate
(
&
forms_thread
,
nrUEscopeThread
,
ue
,
"scope"
,
-
1
,
OAI_PRIORITY_RT_LOW
);
UEcopyDataMutexInit
(
);
copyDataMutexInit
(
scope
);
#endif
}
...
...
openair1/PHY/TOOLS/phy_scope_interface.c
View file @
37752af2
...
...
@@ -35,14 +35,12 @@
#include "phy_scope_interface.h"
#define SOFTSCOPE_ENDFUNC_IDX 0
#define THREAD_MEM 4
static
loader_shlibfunc_t
scope_fdesc
[]
=
{{
"end_forms"
,
NULL
}};
pthread_mutex_t
UEcopyDataMutex
;
int
UEcopyDataMutexInit
(
void
)
{
return
pthread_mutex_init
(
&
UEcopyDataMutex
,
NULL
);
int
copyDataMutexInit
(
scopeData_t
*
p
)
{
return
pthread_mutex_init
(
&
p
->
copyDataMutex
,
NULL
);
}
int
load_softscope
(
char
*
exectype
,
void
*
initarg
)
{
...
...
@@ -60,46 +58,44 @@ int end_forms(void) {
return
-
1
;
}
void
UEcopyData
(
PHY_VARS_NR_UE
*
ue
,
enum
UEdataType
type
,
void
*
dataIn
,
int
elementSz
,
int
colSz
,
int
lineSz
)
{
// Local static copy of the scope data bufs
// The active data buf is alterned to avoid interference between the Scope thread (display) and the Rx thread (data input)
// Index of THREAD_MEM could be set to the number of Rx threads + 1. Rx slots could run asynchronous to each other.
// THREAD_MEM = 4 slot process running in parallel is an assumption. THREAD_MEM can be increased if scope appears inconsistent.
static
scopeGraphData_t
*
copyDataBufs
[
UEdataTypeNumberOfItems
][
THREAD_MEM
]
=
{
0
};
static
int
copyDataBufsIdx
[
UEdataTypeNumberOfItems
]
=
{
0
};
scopeData_t
*
tmp
=
(
scopeData_t
*
)
ue
->
scopeData
;
void
copyData
(
void
*
scopeData
,
enum
scopeDataType
type
,
void
*
dataIn
,
int
elementSz
,
int
colSz
,
int
lineSz
,
int
offset
)
{
scopeData_t
*
tmp
=
(
scopeData_t
*
)
scopeData
;
if
(
tmp
)
{
// Begin of critical zone between UE Rx threads that might copy new data at the same time:
pthread_mutex_lock
(
&
UEcopyDataMutex
);
int
newCopyDataIdx
=
(
copyDataBufsIdx
[
type
]
<
(
THREAD_MEM
-
1
))
?
copyDataBufsIdx
[
type
]
+
1
:
0
;
copyDataBufsIdx
[
type
]
=
newCopyDataIdx
;
pthread_mutex_unlock
(
&
UEcopyDataMutex
);
pthread_mutex_lock
(
&
tmp
->
copyDataMutex
);
scopeGraphData_t
*
oldData
=
((
scopeGraphData_t
**
)
tmp
->
liveData
)[
type
];
tmp
->
copyDataBufsIdx
[
type
]
=
(
tmp
->
copyDataBufsIdx
[
type
]
+
1
)
%
COPIES_MEM
;
int
newCopyDataIdx
=
tmp
->
copyDataBufsIdx
[
type
];
pthread_mutex_unlock
(
&
tmp
->
copyDataMutex
);
// End of critical zone between UE Rx threads
int
oldDataSz
=
oldData
?
oldData
->
dataSize
:
0
;
int
newSz
=
max
(
elementSz
*
colSz
*
(
lineSz
+
offset
),
oldDataSz
);
// New data will be copied in a different buffer than the live one
scopeGraphData_t
*
copyData
=
copyDataBufs
[
type
][
newCopyDataIdx
];
if
(
copyData
==
NULL
||
copyData
->
dataSize
<
elementSz
*
colSz
*
lineSz
)
{
scopeGraphData_t
*
ptr
=
(
scopeGraphData_t
*
)
realloc
(
copyData
,
sizeof
(
scopeGraphData_t
)
+
elementSz
*
colSz
*
lineSz
);
scopeGraphData_t
*
newData
=
tmp
->
copyDataBufs
[
type
][
newCopyDataIdx
];
if
(
newData
==
NULL
||
newData
->
dataSize
<
newSz
)
{
scopeGraphData_t
*
ptr
=
(
scopeGraphData_t
*
)
realloc
(
newData
,
sizeof
(
scopeGraphData_t
)
+
newSz
);
if
(
!
ptr
)
{
LOG_E
(
PHY
,
"can't realloc
\n
"
);
LOG_E
(
PHY
,
"can't realloc
\n
"
);
return
;
}
else
{
copyData
=
ptr
;
tmp
->
copyDataBufs
[
type
][
newCopyDataIdx
]
=
ptr
;
if
(
!
newData
)
// we have a new malloc
*
ptr
=
(
scopeGraphData_t
){
0
};
newData
=
ptr
;
newData
->
dataSize
=
newSz
;
}
}
if
(
offset
&&
oldDataSz
)
// we copy the previous buffer because we have as input only a part of
memcpy
(
newData
+
1
,
oldData
+
1
,
oldDataSz
);
copyData
->
dataSize
=
elementSz
*
colSz
*
lineSz
;
copyData
->
elementSz
=
elementSz
;
copyData
->
colSz
=
colSz
;
copyData
->
lineSz
=
lineSz
;
memcpy
(
copyData
+
1
,
dataIn
,
elementSz
*
colSz
*
lineSz
);
copyDataBufs
[
type
][
newCopyDataIdx
]
=
copyData
;
newData
->
elementSz
=
elementSz
;
newData
->
colSz
=
colSz
;
newData
->
lineSz
=
lineSz
+
offset
;
memcpy
(((
void
*
)(
newData
+
1
))
+
elementSz
*
colSz
*
offset
,
dataIn
,
elementSz
*
colSz
*
lineSz
);
// The new data just copied
in the local static buffer
becomes live now
((
scopeGraphData_t
**
)
tmp
->
liveData
)[
type
]
=
copy
Data
;
// The new data just copied becomes live now
((
scopeGraphData_t
**
)
tmp
->
liveData
)[
type
]
=
new
Data
;
}
}
openair1/PHY/TOOLS/phy_scope_interface.h
View file @
37752af2
...
...
@@ -57,7 +57,7 @@ typedef struct {
PHY_VARS_gNB
*
gNB
;
}
scopeParms_t
;
enum
UEd
ataType
{
enum
scopeD
ataType
{
pbchDlChEstimateTime
,
pbchLlr
,
pbchRxdataF_comp
,
...
...
@@ -66,18 +66,11 @@ enum UEdataType {
pdschLlr
,
pdschRxdataF_comp
,
commonRxdataF
,
UEdataTypeNumberOfItems
gNBRxdataF
,
MAX_SCOPE_TYPES
};
typedef
struct
scopeData_s
{
int
*
argc
;
char
**
argv
;
RU_t
*
ru
;
PHY_VARS_gNB
*
gNB
;
void
*
liveData
;
void
(
*
slotFunc
)(
int32_t
*
data
,
int
slot
,
void
*
scopeData
);
void
(
*
copyData
)(
PHY_VARS_NR_UE
*
,
enum
UEdataType
,
void
*
data
,
int
elementSz
,
int
colSz
,
int
lineSz
);
}
scopeData_t
;
#define COPIES_MEM 4
typedef
struct
{
int
dataSize
;
...
...
@@ -86,12 +79,29 @@ typedef struct {
int
lineSz
;
}
scopeGraphData_t
;
typedef
struct
scopeData_s
{
int
*
argc
;
char
**
argv
;
RU_t
*
ru
;
PHY_VARS_gNB
*
gNB
;
scopeGraphData_t
*
liveData
[
MAX_SCOPE_TYPES
];
void
(
*
copyData
)(
void
*
,
enum
scopeDataType
,
void
*
data
,
int
elementSz
,
int
colSz
,
int
lineSz
,
int
offset
);
pthread_mutex_t
copyDataMutex
;
scopeGraphData_t
*
copyDataBufs
[
MAX_SCOPE_TYPES
][
COPIES_MEM
];
int
copyDataBufsIdx
[
MAX_SCOPE_TYPES
];
}
scopeData_t
;
int
load_softscope
(
char
*
exectype
,
void
*
initarg
);
int
end_forms
(
void
)
;
int
UEcopyDataMutexInit
(
void
);
void
UEcopyData
(
PHY_VARS_NR_UE
*
ue
,
enum
UEdataType
type
,
void
*
dataIn
,
int
elementSz
,
int
colSz
,
int
lineSz
);
int
copyDataMutexInit
(
scopeData_t
*
);
void
copyData
(
void
*
,
enum
scopeDataType
type
,
void
*
dataIn
,
int
elementSz
,
int
colSz
,
int
lineSz
,
int
offset
);
#define UEscopeCopy(ue, type, ...) if(ue->scopeData) ((scopeData_t*)ue->scopeData)->copyData(ue, type, ##__VA_ARGS__);
#define UEscopeCopy(ue, type, ...) \
if (ue->scopeData) \
((scopeData_t *)ue->scopeData)->copyData((scopeData_t *)ue->scopeData, type, ##__VA_ARGS__);
#define gNBscopeCopy(gnb, type, ...) \
if (gnb->scopeData) \
((scopeData_t *)gnb->scopeData)->copyData((scopeData_t *)gNB->scopeData, type, ##__VA_ARGS__);
extended_kpi_ue
*
getKPIUE
();
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
37752af2
...
...
@@ -1078,7 +1078,7 @@ void pdsch_processing(PHY_VARS_NR_UE *ue,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_C
,
VCD_FUNCTION_OUT
);
UEscopeCopy
(
ue
,
pdschLlr
,
llr
[
0
],
sizeof
(
int16_t
),
1
,
rx_llr_size
);
UEscopeCopy
(
ue
,
pdschLlr
,
llr
[
0
],
sizeof
(
int16_t
),
1
,
rx_llr_size
,
0
);
LOG_D
(
PHY
,
"DLSCH data reception at nr_slot_rx: %d
\n
"
,
nr_slot_rx
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC
,
VCD_FUNCTION_IN
);
...
...
@@ -1179,7 +1179,7 @@ void pdsch_processing(PHY_VARS_NR_UE *ue,
LOG_D
(
PHY
,
"------FULL RX PROC [SFN %d]: %5.2f ------
\n
"
,
nr_slot_rx
,
ue
->
phy_proc_rx
.
p_time
/
(
cpuf
*
1000
.
0
));
LOG_D
(
PHY
,
" ****** end RX-Chain for AbsSubframe %d.%d ******
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
);
UEscopeCopy
(
ue
,
commonRxdataF
,
rxdataF
,
sizeof
(
int32_t
),
ue
->
frame_parms
.
nb_antennas_rx
,
rxdataF_sz
);
UEscopeCopy
(
ue
,
commonRxdataF
,
rxdataF
,
sizeof
(
int32_t
),
ue
->
frame_parms
.
nb_antennas_rx
,
rxdataF_sz
,
0
);
}
...
...
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