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
wangjie
OpenXG-RAN
Commits
11d77905
Commit
11d77905
authored
Jul 17, 2014
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@5571
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
3d523e5c
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
12 deletions
+31
-12
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+31
-12
No files found.
targets/RT/USER/lte-softmodem.c
View file @
11d77905
...
...
@@ -226,7 +226,7 @@ static char *conf_config_file_name = NULL;
static
char
*
itti_dump_file
=
NULL
;
#endif
double
tx_gain
=
5
0
;
double
tx_gain
=
2
0
;
double
rx_gain
=
30
;
double
sample_rate
=
30.72e6
;
...
...
@@ -700,16 +700,18 @@ void do_OFDM_mod(int subframe,PHY_VARS_eNB *phy_vars_eNB) {
unsigned
int
aa
,
slot_offset
,
slot_offset_F
;
int
dummy_tx_b
[
7680
*
4
]
__attribute__
((
aligned
(
16
)));
int
i
,
tx_offset
;
slot_offset_F
=
(
subframe
<<
1
)
*
(
phy_vars_eNB
->
lte_frame_parms
.
ofdm_symbol_size
)
*
int
slot_sizeF
=
(
phy_vars_eNB
->
lte_frame_parms
.
ofdm_symbol_size
)
*
((
phy_vars_eNB
->
lte_frame_parms
.
Ncp
==
1
)
?
6
:
7
);
slot_offset_F
=
(
subframe
<<
1
)
*
slot_sizeF
;
slot_offset
=
(
subframe
<<
1
)
*
(
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
>>
1
);
if
((
subframe_select
(
&
phy_vars_eNB
->
lte_frame_parms
,
subframe
)
==
SF_DL
)
||
((
subframe_select
(
&
phy_vars_eNB
->
lte_frame_parms
,
subframe
)
==
SF_S
)))
{
// LOG_D(HW,"Frame %d: Generating slot %d\n",frame,next_slot);
#ifdef EXMIMO
for
(
aa
=
0
;
aa
<
phy_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
;
aa
++
)
{
if
(
phy_vars_eNB
->
lte_frame_parms
.
Ncp
==
EXTENDED
){
PHY_ofdm_mod
(
&
phy_vars_eNB
->
lte_eNB_common_vars
.
txdataF
[
0
][
aa
][
slot_offset_F
],
...
...
@@ -720,15 +722,27 @@ void do_OFDM_mod(int subframe,PHY_VARS_eNB *phy_vars_eNB) {
phy_vars_eNB
->
lte_frame_parms
.
twiddle_ifft
,
phy_vars_eNB
->
lte_frame_parms
.
rev
,
CYCLIC_PREFIX
);
PHY_ofdm_mod
(
&
phy_vars_eNB
->
lte_eNB_common_vars
.
txdataF
[
0
][
aa
][
slot_offset_F
+
slot_sizeF
],
dummy_tx_b
+
(
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
>>
1
),
phy_vars_eNB
->
lte_frame_parms
.
log2_symbol_size
,
6
,
phy_vars_eNB
->
lte_frame_parms
.
nb_prefix_samples
,
phy_vars_eNB
->
lte_frame_parms
.
twiddle_ifft
,
phy_vars_eNB
->
lte_frame_parms
.
rev
,
CYCLIC_PREFIX
);
}
else
{
normal_prefix_mod
(
&
phy_vars_eNB
->
lte_eNB_common_vars
.
txdataF
[
0
][
aa
][
slot_offset_F
],
dummy_tx_b
,
7
,
&
(
phy_vars_eNB
->
lte_frame_parms
));
normal_prefix_mod
(
&
phy_vars_eNB
->
lte_eNB_common_vars
.
txdataF
[
0
][
aa
][
slot_offset_F
+
slot_sizeF
],
dummy_tx_b
+
(
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
>>
1
),
7
,
&
(
phy_vars_eNB
->
lte_frame_parms
));
}
#ifdef EXMIMO
for
(
i
=
0
;
i
<
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
/
2
;
i
++
)
{
for
(
i
=
0
;
i
<
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
;
i
++
)
{
tx_offset
=
(
int
)
slot_offset
+
time_offset
[
aa
]
+
i
;
if
(
tx_offset
<
0
)
tx_offset
+=
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME
*
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
;
...
...
@@ -1232,8 +1246,11 @@ static void *eNB_thread(void *arg)
//}
if
(
multi_thread
==
0
)
{
phy_procedures_eNB_lte
(((
slot
+
1
)
%
20
)
>>
1
,
PHY_vars_eNB_g
[
0
],
0
,
no_relay
,
NULL
);
do_OFDM_mod
(((
slot
+
1
)
%
20
)
>>
1
,
PHY_vars_eNB_g
[
0
]);
if
((
slot
&
1
)
==
0
)
{
LOG_I
(
PHY
,
"[eNB] Single thread slot %d
\n
"
,
slot
);
phy_procedures_eNB_lte
((
1
+
(
slot
>>
1
))
%
10
,
PHY_vars_eNB_g
[
0
],
0
,
no_relay
,
NULL
);
do_OFDM_mod
((
1
+
(
slot
>>
1
))
%
10
,
PHY_vars_eNB_g
[
0
]);
}
}
else
{
// multi-thread > 0
if
((
slot
&
1
)
==
0
)
{
...
...
@@ -2055,7 +2072,7 @@ int main(int argc, char **argv) {
openair0_cfg
.
rx_num_channels
=
frame_parms
->
nb_antennas_rx
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
if
(
UE_flag
==
0
)
{
if
(
UE_flag
==
1
)
{
openair0_cfg
.
tx_freq
[
i
]
=
downlink_frequency
[
i
]
+
uplink_frequency_offset
[
i
];
openair0_cfg
.
rx_freq
[
i
]
=
downlink_frequency
[
i
];
}
...
...
@@ -2071,8 +2088,10 @@ int main(int argc, char **argv) {
openair0_cfg
.
rx_gain
[
i
]
=
rx_gain
;
}
openair0_device_init
(
&
openair0
,
&
openair0_cfg
);
if
(
openair0_device_init
(
&
openair0
,
&
openair0_cfg
)
<
0
)
{
printf
(
"Exiting, cannot initialize device
\n
"
);
exit
(
-
1
);
}
#ifdef OPENAIR2
int
eMBMS_active
=
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