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
56a32a22
Commit
56a32a22
authored
Feb 21, 2018
by
Wang Tsu-Han
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
changing emulate-rf into an executional option instead of compiler option
parent
869b9a5c
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
113 additions
and
108 deletions
+113
-108
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+0
-1
common/utils/itti/intertask_interface.c
common/utils/itti/intertask_interface.c
+11
-11
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+1
-0
openair2/LAYER2/MAC/eNB_scheduler_phytest.c
openair2/LAYER2/MAC/eNB_scheduler_phytest.c
+3
-5
targets/COMMON/create_tasks.c
targets/COMMON/create_tasks.c
+6
-6
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+12
-7
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+70
-73
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+3
-2
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-softmodem.h
+7
-3
No files found.
cmake_targets/CMakeLists.txt
View file @
56a32a22
...
...
@@ -597,7 +597,6 @@ add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver
add_boolean_option
(
NAS_NETLINK False
"???? Must be True to compile nasmesh driver without rtai"
)
add_boolean_option
(
OAISIM False
"specific to oaisim"
)
add_boolean_option
(
OAI_NW_DRIVER_USE_NETLINK True
"????"
)
add_boolean_option
(
EMULATE_RF True
"allows to run lte-softmodem without HW"
)
add_boolean_option
(
USE_MME False
"this flag is used only one time in lte-softmodem.c"
)
add_list_string_option
(
PACKAGE_NAME
"NotDefined"
"As per attribute name"
)
...
...
common/utils/itti/intertask_interface.c
View file @
56a32a22
...
...
@@ -99,6 +99,7 @@ const int itti_debug = (ITTI_DEBUG_ISSUES | ITTI_DEBUG_MP_STATISTICS);
# define ITTI_MEM_SIZE (16 * 1024 * 1024)
#endif
extern
int
emulate_rf
;
typedef
enum
task_state_s
{
TASK_STATE_NOT_CONFIGURED
,
TASK_STATE_STARTING
,
TASK_STATE_READY
,
TASK_STATE_ENDED
,
TASK_STATE_MAX
,
...
...
@@ -437,17 +438,16 @@ int itti_send_msg_to_task(task_id_t destination_task_id, instance_t instance, Me
destination_task_id
,
itti_get_task_name
(
destination_task_id
));
}
else
{
#ifdef EMULATE_RF
#else
/* We cannot send a message if the task is not running */
AssertFatal
(
itti_desc
.
threads
[
destination_thread_id
].
task_state
==
TASK_STATE_READY
,
"Task %s Cannot send message %s (%d) to thread %d, it is not in ready state (%d)!
\n
"
,
itti_get_task_name
(
origin_task_id
),
itti_desc
.
messages_info
[
message_id
].
name
,
message_id
,
destination_thread_id
,
itti_desc
.
threads
[
destination_thread_id
].
task_state
);
#endif
if
(
!
emulate_rf
){
/* We cannot send a message if the task is not running */
AssertFatal
(
itti_desc
.
threads
[
destination_thread_id
].
task_state
==
TASK_STATE_READY
,
"Task %s Cannot send message %s (%d) to thread %d, it is not in ready state (%d)!
\n
"
,
itti_get_task_name
(
origin_task_id
),
itti_desc
.
messages_info
[
message_id
].
name
,
message_id
,
destination_thread_id
,
itti_desc
.
threads
[
destination_thread_id
].
task_state
);
}
/* Allocate new list element */
new
=
(
message_list_t
*
)
itti_malloc
(
origin_task_id
,
destination_task_id
,
sizeof
(
struct
message_list_s
));
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
View file @
56a32a22
...
...
@@ -643,6 +643,7 @@ int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr
break
;
}
stop_meas
(
&
eNB
->
ulsch_turbo_decoding_stats
);
printf
(
"/////////////////////////////////////////**************************loop for %d time in ulsch_decoding main
\n
"
,
r
);
}
// wait for worker to finish
...
...
openair2/LAYER2/MAC/eNB_scheduler_phytest.c
View file @
56a32a22
...
...
@@ -196,13 +196,13 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
int
UE_id
=
0
;
uint8_t
aggregation
=
2
;
rnti_t
rnti
=
0x1235
;
uint8_t
mcs
=
2
8
;
uint8_t
mcs
=
2
0
;
uint8_t
harq_pid
=
0
;
uint32_t
cqi_req
=
0
,
cshift
,
ndi
,
tpc
=
1
;
int32_t
normalized_rx_power
;
int32_t
target_rx_power
=
178
;
int
CC_id
=
0
;
int
nb_rb
=
20
;
int
nb_rb
=
96
;
eNB_MAC_INST
*
eNB
=
RC
.
mac
[
module_idP
];
COMMON_channels_t
*
cc
=
eNB
->
common_channels
;
UE_list_t
*
UE_list
=&
eNB
->
UE_list
;
...
...
@@ -236,10 +236,9 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
UE_sched_ctrl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
harq_pid
=
subframe2harqpid
(
&
cc
[
CC_id
],
sched_frame
,
sched_subframe
);
LOG_
I
(
MAC
,
"Scheduling for frame %d, subframe %d => harq_pid %d
\n
"
,
sched_frame
,
sched_subframe
,
harq_pid
);
LOG_
D
(
MAC
,
"Scheduling for frame %d, subframe %d => harq_pid %d
\n
"
,
sched_frame
,
sched_subframe
,
harq_pid
);
RC
.
eNB
[
module_idP
][
CC_id
]
->
pusch_stats_BO
[
UE_id
][(
frameP
*
10
)
+
subframeP
]
=
UE_template
->
ul_total_buffer
;
//printf("////////////////////////////////////*************************ul_total_buffer = %d\n",UE_template->ul_total_buffer);
...
...
@@ -248,7 +247,6 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
// this is the normalized RX power and this should be constant (regardless of mcs
normalized_rx_power
=
UE_sched_ctrl
->
pusch_snr
[
CC_id
];
//printf("////////////////////////////////////*************************normalized_rx_power = %d\n",normalized_rx_power);
// new transmission
...
...
targets/COMMON/create_tasks.c
View file @
56a32a22
...
...
@@ -40,6 +40,7 @@
# endif
# include "enb_app.h"
extern
int
emulate_rf
;
int
create_tasks
(
uint32_t
enb_nb
,
uint32_t
ue_nb
)
{
...
...
@@ -72,13 +73,12 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E
(
S1AP
,
"Create task for S1AP failed
\n
"
);
return
-
1
;
}
#ifdef EMULATE_RF
#else
if
(
itti_create_task
(
TASK_UDP
,
udp_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
UDP_
,
"Create task for UDP failed
\n
"
)
;
return
-
1
;
if
(
!
emulate_rf
){
if
(
itti_create_task
(
TASK_UDP
,
udp_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
UDP_
,
"Create task for UDP failed
\n
"
);
return
-
1
;
}
}
#endif
if
(
itti_create_task
(
TASK_GTPV1_U
,
&
gtpv1u_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
GTPU
,
"Create task for GTPV1U failed
\n
"
);
...
...
targets/RT/USER/lte-enb.c
View file @
56a32a22
...
...
@@ -365,6 +365,10 @@ int wakeup_txfh(eNB_rxtx_proc_t *proc,RU_proc_t *ru_proc) {
wait
.
tv_nsec
=
5000000L
;
if
(
ru_proc
->
instance_cnt_eNBs
==
0
)
{
LOG_E
(
PHY
,
"Frame %d, subframe %d: TX FH thread busy, dropping
\n
"
,
proc
->
frame_rx
,
proc
->
subframe_rx
);
return
(
-
1
);
}
if
(
pthread_mutex_timedlock
(
&
ru_proc
->
mutex_eNBs
,
&
wait
)
!=
0
)
{
LOG_E
(
PHY
,
"[eNB] ERROR pthread_mutex_lock for eNB TX1 thread %d (IC %d)
\n
"
,
ru_proc
->
subframe_rx
&
1
,
ru_proc
->
instance_cnt_eNBs
);
exit_fun
(
"error locking mutex_eNB"
);
...
...
@@ -834,6 +838,13 @@ void init_eNB_proc(int inst) {
attr_td
=
&
proc
->
attr_td
;
//attr_te = &proc->attr_te[0];
//attr_te1 = &proc->attr_te[1];
//////////////////////////////////////need to modified////////////////*****
if
(
get_nprocs
()
>
2
&&
codingw
)
{
init_te_thread
(
eNB
);
init_td_thread
(
eNB
,
attr_td
);
}
//////////////////////////////////////need to modified////////////////*****
pthread_create
(
&
proc_rxtx
[
0
].
pthread_rxtx
,
attr0
,
eNB_thread_rxtx
,
proc
);
pthread_create
(
&
proc_rxtx
[
1
].
pthread_rxtx
,
attr1
,
tx_thread
,
proc
);
if
(
eNB
->
single_thread_flag
==
0
)
{
...
...
@@ -854,13 +865,7 @@ void init_eNB_proc(int inst) {
AssertFatal
(
proc
->
instance_cnt_prach
==
-
1
,
"instance_cnt_prach = %d
\n
"
,
proc
->
instance_cnt_prach
);
//////////////////////////////////////need to modified////////////////*****
if
(
get_nprocs
()
>
2
&&
codingw
)
{
init_te_thread
(
eNB
);
init_td_thread
(
eNB
,
attr_td
);
}
if
(
opp_enabled
==
1
)
pthread_create
(
&
proc
->
process_stats_thread
,
NULL
,
process_stats_thread
,(
void
*
)
eNB
);
...
...
targets/RT/USER/lte-ru.c
View file @
56a32a22
...
...
@@ -112,6 +112,7 @@ unsigned short config_frames[4] = {2,9,11,13};
extern
volatile
int
oai_exit
;
extern
int
emulate_rf
;
extern
int
numerology
;
extern
int
fepw
;
...
...
@@ -681,7 +682,6 @@ void fh_if4p5_north_out(RU_t *ru) {
if
(
ru
->
idx
==
0
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX
,
0
);
}
#ifdef EMULATE_RF
static
void
*
emulatedRF_thread
(
void
*
param
)
{
RU_proc_t
*
proc
=
(
RU_proc_t
*
)
param
;
int
microsec
=
500
;
// length of time to sleep, in miliseconds
...
...
@@ -709,7 +709,6 @@ static void* emulatedRF_thread(void* param) {
}
return
0
;
}
#endif
void
rx_rf
(
RU_t
*
ru
,
int
*
frame
,
int
*
subframe
)
{
...
...
@@ -726,17 +725,18 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ
,
1
);
old_ts
=
proc
->
timestamp_rx
;
#ifdef EMULATE_RF
wait_on_condition
(
&
proc
->
mutex_emulateRF
,
&
proc
->
cond_emulateRF
,
&
proc
->
instance_cnt_emulateRF
,
"emulatedRF_thread"
);
release_thread
(
&
proc
->
mutex_emulateRF
,
&
proc
->
instance_cnt_emulateRF
,
"emulatedRF_thread"
);
rxs
=
fp
->
samples_per_tti
;
#else
rxs
=
ru
->
rfdevice
.
trx_read_func
(
&
ru
->
rfdevice
,
if
(
emulate_rf
){
wait_on_condition
(
&
proc
->
mutex_emulateRF
,
&
proc
->
cond_emulateRF
,
&
proc
->
instance_cnt_emulateRF
,
"emulatedRF_thread"
);
release_thread
(
&
proc
->
mutex_emulateRF
,
&
proc
->
instance_cnt_emulateRF
,
"emulatedRF_thread"
);
rxs
=
fp
->
samples_per_tti
;
}
else
{
rxs
=
ru
->
rfdevice
.
trx_read_func
(
&
ru
->
rfdevice
,
&
ts
,
rxp
,
fp
->
samples_per_tti
,
ru
->
nb_rx
);
#endif
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ
,
0
);
...
...
@@ -1434,13 +1434,12 @@ static void* ru_thread_tx( void* param ) {
// do OFDM if needed
if
((
ru
->
fh_north_asynch_in
==
NULL
)
&&
(
ru
->
feptx_ofdm
))
ru
->
feptx_ofdm
(
ru
);
#ifdef EMULATE_RF
#else
// do outgoing fronthaul (south) if needed
if
((
ru
->
fh_north_asynch_in
==
NULL
)
&&
(
ru
->
fh_south_out
))
ru
->
fh_south_out
(
ru
);
if
(
ru
->
fh_north_out
)
ru
->
fh_north_out
(
ru
);
#endif
if
(
!
emulate_rf
){
// do outgoing fronthaul (south) if needed
if
((
ru
->
fh_north_asynch_in
==
NULL
)
&&
(
ru
->
fh_south_out
))
ru
->
fh_south_out
(
ru
);
if
(
ru
->
fh_north_out
)
ru
->
fh_north_out
(
ru
);
}
release_thread
(
&
proc
->
mutex_eNBs
,
&
proc
->
instance_cnt_eNBs
,
"ru_thread_tx"
);
}
...
...
@@ -1476,36 +1475,37 @@ static void* ru_thread( void* param ) {
LOG_I
(
PHY
,
"Starting RU %d (%s,%s),
\n
"
,
ru
->
idx
,
eNB_functions
[
ru
->
function
],
eNB_timing
[
ru
->
if_timing
]);
#ifdef EMULATE_RF
fill_rf_config
(
ru
,
ru
->
rf_config_file
);
init_frame_parms
(
&
ru
->
frame_parms
,
1
);
phy_init_RU
(
ru
);
if
(
setup_RU_buffers
(
ru
)
!=
0
)
{
printf
(
"Exiting, cannot initialize RU Buffers
\n
"
);
exit
(
-
1
);
}
#else
// Start IF device if any
if
(
ru
->
start_if
)
{
LOG_I
(
PHY
,
"Starting IF interface for RU %d
\n
"
,
ru
->
idx
);
AssertFatal
(
ru
->
start_if
(
ru
,
NULL
)
==
0
,
"Could not start the IF device
\n
"
);
if
(
ru
->
if_south
==
LOCAL_RF
)
ret
=
connect_rau
(
ru
);
else
ret
=
attach_rru
(
ru
);
AssertFatal
(
ret
==
0
,
"Cannot connect to radio
\n
"
);
}
if
(
ru
->
if_south
==
LOCAL_RF
)
{
// configure RF parameters only
fill_rf_config
(
ru
,
ru
->
rf_config_file
);
init_frame_parms
(
&
ru
->
frame_parms
,
1
);
phy_init_RU
(
ru
);
ret
=
openair0_device_load
(
&
ru
->
rfdevice
,
&
ru
->
openair0_cfg
);
if
(
emulate_rf
){
fill_rf_config
(
ru
,
ru
->
rf_config_file
);
init_frame_parms
(
&
ru
->
frame_parms
,
1
);
phy_init_RU
(
ru
);
if
(
setup_RU_buffers
(
ru
)
!=
0
)
{
printf
(
"Exiting, cannot initialize RU Buffers
\n
"
);
exit
(
-
1
);
}
}
if
(
setup_RU_buffers
(
ru
)
!=
0
)
{
printf
(
"Exiting, cannot initialize RU Buffers
\n
"
);
exit
(
-
1
);
else
{
// Start IF device if any
if
(
ru
->
start_if
)
{
LOG_I
(
PHY
,
"Starting IF interface for RU %d
\n
"
,
ru
->
idx
);
AssertFatal
(
ru
->
start_if
(
ru
,
NULL
)
==
0
,
"Could not start the IF device
\n
"
);
if
(
ru
->
if_south
==
LOCAL_RF
)
ret
=
connect_rau
(
ru
);
else
ret
=
attach_rru
(
ru
);
AssertFatal
(
ret
==
0
,
"Cannot connect to radio
\n
"
);
}
if
(
ru
->
if_south
==
LOCAL_RF
)
{
// configure RF parameters only
fill_rf_config
(
ru
,
ru
->
rf_config_file
);
init_frame_parms
(
&
ru
->
frame_parms
,
1
);
phy_init_RU
(
ru
);
ret
=
openair0_device_load
(
&
ru
->
rfdevice
,
&
ru
->
openair0_cfg
);
}
if
(
setup_RU_buffers
(
ru
)
!=
0
)
{
printf
(
"Exiting, cannot initialize RU Buffers
\n
"
);
exit
(
-
1
);
}
}
#endif
LOG_I
(
PHY
,
"Signaling main thread that RU %d is ready
\n
"
,
ru
->
idx
);
pthread_mutex_lock
(
&
RC
.
ru_mutex
);
...
...
@@ -1517,35 +1517,34 @@ static void* ru_thread( void* param ) {
#ifdef EMULATE_RF
#else
// Start RF device if any
if
(
ru
->
start_rf
)
{
if
(
ru
->
start_rf
(
ru
)
!=
0
)
LOG_E
(
HW
,
"Could not start the RF device
\n
"
);
else
LOG_I
(
PHY
,
"RU %d rf device ready
\n
"
,
ru
->
idx
);
}
else
LOG_I
(
PHY
,
"RU %d no rf device
\n
"
,
ru
->
idx
);
// if an asnych_rxtx thread exists
// wakeup the thread because the devices are ready at this point
if
((
ru
->
fh_south_asynch_in
)
||
(
ru
->
fh_north_asynch_in
))
{
pthread_mutex_lock
(
&
proc
->
mutex_asynch_rxtx
);
proc
->
instance_cnt_asynch_rxtx
=
0
;
pthread_mutex_unlock
(
&
proc
->
mutex_asynch_rxtx
);
pthread_cond_signal
(
&
proc
->
cond_asynch_rxtx
);
if
(
!
emulate_rf
){
// Start RF device if any
if
(
ru
->
start_rf
)
{
if
(
ru
->
start_rf
(
ru
)
!=
0
)
LOG_E
(
HW
,
"Could not start the RF device
\n
"
);
else
LOG_I
(
PHY
,
"RU %d rf device ready
\n
"
,
ru
->
idx
);
}
else
LOG_I
(
PHY
,
"RU %d no rf device
\n
"
,
ru
->
idx
);
// if an asnych_rxtx thread exists
// wakeup the thread because the devices are ready at this point
if
((
ru
->
fh_south_asynch_in
)
||
(
ru
->
fh_north_asynch_in
))
{
pthread_mutex_lock
(
&
proc
->
mutex_asynch_rxtx
);
proc
->
instance_cnt_asynch_rxtx
=
0
;
pthread_mutex_unlock
(
&
proc
->
mutex_asynch_rxtx
);
pthread_cond_signal
(
&
proc
->
cond_asynch_rxtx
);
}
else
LOG_I
(
PHY
,
"RU %d no asynch_south interface
\n
"
,
ru
->
idx
);
// if this is a slave RRU, try to synchronize on the DL frequency
if
((
ru
->
is_slave
)
&&
(
ru
->
if_south
==
LOCAL_RF
))
do_ru_synch
(
ru
);
}
else
LOG_I
(
PHY
,
"RU %d no asynch_south interface
\n
"
,
ru
->
idx
);
// if this is a slave RRU, try to synchronize on the DL frequency
if
((
ru
->
is_slave
)
&&
(
ru
->
if_south
==
LOCAL_RF
))
do_ru_synch
(
ru
);
pthread_mutex_lock
(
&
proc
->
mutex_FH1
);
proc
->
instance_cnt_FH1
=
0
;
pthread_mutex_unlock
(
&
proc
->
mutex_FH1
);
pthread_cond_signal
(
&
proc
->
cond_FH1
);
#endif
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
...
...
@@ -1602,8 +1601,7 @@ static void* ru_thread( void* param ) {
if
(
get_nprocs
()
<=
4
)
{
#ifdef EMULATE_RF
#else
if
(
!
emulate_rf
){
// do TX front-end processing if needed (precoding and/or IDFTs)
if
(
ru
->
feptx_prec
)
ru
->
feptx_prec
(
ru
);
...
...
@@ -1613,7 +1611,7 @@ static void* ru_thread( void* param ) {
if
((
ru
->
fh_north_asynch_in
==
NULL
)
&&
(
ru
->
fh_south_out
))
ru
->
fh_south_out
(
ru
);
if
(
ru
->
fh_north_out
)
ru
->
fh_north_out
(
ru
);
#endif
}
}
}
...
...
@@ -1799,9 +1797,8 @@ void init_RU_proc(RU_t *ru) {
#endif
pthread_create
(
&
proc
->
pthread_FH
,
attr_FH
,
ru_thread
,
(
void
*
)
ru
);
#ifdef EMULATE_RF
pthread_create
(
&
proc
->
pthread_emulateRF
,
attr_emulateRF
,
emulatedRF_thread
,
(
void
*
)
proc
);
#endif
if
(
emulate_rf
)
pthread_create
(
&
proc
->
pthread_emulateRF
,
attr_emulateRF
,
emulatedRF_thread
,
(
void
*
)
proc
);
if
(
get_nprocs
()
>
4
)
pthread_create
(
&
proc
->
pthread_FH1
,
attr_FH1
,
ru_thread_tx
,
(
void
*
)
ru
);
...
...
targets/RT/USER/lte-softmodem.c
View file @
56a32a22
...
...
@@ -206,9 +206,10 @@ extern void reset_opp_meas(void);
extern
void
print_opp_meas
(
void
);
int
transmission_mode
=
1
;
int
emulate_rf
=
0
;
int
numerology
=
0
;
int
codingw
=
1
;
int
fepw
=
1
;
int
codingw
=
0
;
int
fepw
=
0
;
...
...
targets/RT/USER/lte-softmodem.h
View file @
56a32a22
...
...
@@ -84,8 +84,9 @@
#define CONFIG_HLP_NOTWAIT "don't wait for tracer, start immediately\n"
#define CONFIG_HLP_TNOFORK "to ease debugging with gdb\n"
#define CONFIG_HLP_NUMEROLOGY "adding numerology for 5G\n"
#define CONFIG_HLP_CODINGW "coding worker thread disabled(enable by defult)\n"
#define CONFIG_HLP_FEPW "FEP worker thread disabled(enable by defult)\n"
#define CONFIG_HLP_CODINGW "coding worker thread enable(disable by defult)\n"
#define CONFIG_HLP_FEPW "FEP worker thread enabled(disable by defult)\n"
#define CONFIG_HLP_EMULATE_RF "Emulated RF enabled(disable by defult)\n"
/***************************************************************************************************************************************/
...
...
@@ -170,7 +171,10 @@ extern int16_t dlsch_demod_shift;
{"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \
{"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \
{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \
{"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&numerology, defintval:0, TYPE_INT, 0} \
{"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&numerology, defintval:0, TYPE_INT, 0}, \
{"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&emulate_rf, defintval:0, TYPE_INT, 0}, \
{"codingw" , CONFIG_HLP_CODINGW, PARAMFLAG_BOOL, iptr:&codingw, defintval:0, TYPE_INT, 0}, \
{"fepw" , CONFIG_HLP_FEPW, PARAMFLAG_BOOL, iptr:&fepw, defintval:0, TYPE_INT, 0} \
}
#define CONFIG_HLP_FLOG "Enable online log \n"
...
...
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