From 46ce82fd83d37843f20f3eaf6c1ebd7b7f9ae382 Mon Sep 17 00:00:00 2001 From: Agmagor Date: Fri, 18 Nov 2016 17:10:21 +0100 Subject: [PATCH 1/3] free UHD handles upon RF closure --- srslte/lib/rf/rf_uhd_imp.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/srslte/lib/rf/rf_uhd_imp.c b/srslte/lib/rf/rf_uhd_imp.c index 34b4f6000..d16382f52 100644 --- a/srslte/lib/rf/rf_uhd_imp.c +++ b/srslte/lib/rf/rf_uhd_imp.c @@ -284,6 +284,8 @@ int rf_uhd_open(char *args, void **h) } } + uhd_string_vector_free(&devices_str); + /* Create UHD handler */ printf("Opening USRP with args: %s\n", args); uhd_error error = uhd_usrp_make(&handler->usrp, args); @@ -359,6 +361,19 @@ int rf_uhd_close(void *h) { rf_uhd_stop_rx_stream(h); + rf_uhd_handler_t *handler = (rf_uhd_handler_t*) h; + + uhd_tx_metadata_free(&handler->tx_md); + uhd_rx_metadata_free(&handler->rx_md_first); + uhd_rx_metadata_free(&handler->rx_md); + uhd_meta_range_free(&handler->rx_gain_range); + uhd_tx_streamer_free(&handler->tx_stream); + uhd_rx_streamer_free(&handler->rx_stream); + if (handler->has_rssi) { + uhd_sensor_value_free(&handler->rssi_value); + } + uhd_usrp_free(&handler->usrp); + /** Something else to close the USRP?? */ return 0; } From b0245503163e8dbfb0fea6c8c54cf4c853fe530b Mon Sep 17 00:00:00 2001 From: Agmagor Date: Tue, 22 Nov 2016 23:55:37 +0100 Subject: [PATCH 2/3] coverity: timeval.tv_usec is 'long int', not 'int' --- srslte/examples/synch_file.c | 2 +- srslte/lib/ch_estimation/test/refsignal_ul_test.c | 4 ++-- srslte/lib/mimo/test/precoding_test.c | 2 +- srslte/lib/modem/test/modem_test.c | 6 +++--- srslte/lib/phch/sch.c | 2 +- srslte/lib/phch/test/prach_test.c | 2 +- srslte/lib/phch/test/pucch_test.c | 2 +- srslte/lib/scrambling/test/scrambling_test.c | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/srslte/examples/synch_file.c b/srslte/examples/synch_file.c index 798db953e..a9e3e7146 100644 --- a/srslte/examples/synch_file.c +++ b/srslte/examples/synch_file.c @@ -182,7 +182,7 @@ int main(int argc, char **argv) { } gettimeofday(&tdata[2], NULL); get_time_interval(tdata); - printf("done in %d s %d ms\n", (int) tdata[0].tv_sec, (int) tdata[0].tv_usec/1000); + printf("done in %ld s %ld ms\n", (int) tdata[0].tv_sec, (int) tdata[0].tv_usec/1000); printf("\n\tFr.Cnt\tN_id_2\tN_id_1\tSubf\tPSS Peak/Avg\tIdx\tm0\tm1\tCFO\n"); printf("\t===============================================================================\n"); diff --git a/srslte/lib/ch_estimation/test/refsignal_ul_test.c b/srslte/lib/ch_estimation/test/refsignal_ul_test.c index d5530c395..40e940b49 100644 --- a/srslte/lib/ch_estimation/test/refsignal_ul_test.c +++ b/srslte/lib/ch_estimation/test/refsignal_ul_test.c @@ -131,13 +131,13 @@ int main(int argc, char **argv) { srslte_refsignal_dmrs_pusch_gen(&refs, nof_prb, sf_idx, cshift_dmrs, signal); gettimeofday(&t[2], NULL); get_time_interval(t); - printf("DMRS ExecTime: %d us\n", t[0].tv_usec); + printf("DMRS ExecTime: %ld us\n", t[0].tv_usec); gettimeofday(&t[1], NULL); srslte_refsignal_srs_gen(&refs, sf_idx, signal); gettimeofday(&t[2], NULL); get_time_interval(t); - printf("SRS ExecTime: %d us\n", t[0].tv_usec); + printf("SRS ExecTime: %ld us\n", t[0].tv_usec); } } } diff --git a/srslte/lib/mimo/test/precoding_test.c b/srslte/lib/mimo/test/precoding_test.c index 68ff0d8f5..e935a7067 100644 --- a/srslte/lib/mimo/test/precoding_test.c +++ b/srslte/lib/mimo/test/precoding_test.c @@ -173,7 +173,7 @@ int main(int argc, char **argv) { } gettimeofday(&t[2], NULL); get_time_interval(t); - printf("Execution Time: %d us\n", t[0].tv_usec); + printf("Execution Time: %ld us\n", t[0].tv_usec); /* check errors */ mse = 0; diff --git a/srslte/lib/modem/test/modem_test.c b/srslte/lib/modem/test/modem_test.c index 59c80dbfc..d233f7418 100644 --- a/srslte/lib/modem/test/modem_test.c +++ b/srslte/lib/modem/test/modem_test.c @@ -159,7 +159,7 @@ int main(int argc, char **argv) { gettimeofday(&t[2], NULL); get_time_interval(t); - printf("Bit: %d us\n", t[0].tv_usec); + printf("Bit: %ld us\n", t[0].tv_usec); /* Test packed implementation */ srslte_bit_pack_vector(input, input_bytes, num_bits); @@ -170,8 +170,8 @@ int main(int argc, char **argv) { gettimeofday(&t[2], NULL); get_time_interval(t); - printf("Byte: %d us\n", t[0].tv_usec); + printf("Byte: %ld us\n", t[0].tv_usec); for (int i=0;i=0 ? 1 : 0; } diff --git a/srslte/lib/phch/sch.c b/srslte/lib/phch/sch.c index 5b0c6c266..4cc3da883 100644 --- a/srslte/lib/phch/sch.c +++ b/srslte/lib/phch/sch.c @@ -654,7 +654,7 @@ int srslte_ulsch_uci_decode(srslte_sch_t *q, srslte_pusch_cfg_t *cfg, srslte_sof uci_data->uci_cqi, &uci_data->cqi_ack); gettimeofday(&t[2], NULL); get_time_interval(t); - printf("texec=%d us\n", t[0].tv_usec); + printf("texec=%ld us\n", t[0].tv_usec); if (ret < 0) { return ret; diff --git a/srslte/lib/phch/test/prach_test.c b/srslte/lib/phch/test/prach_test.c index 088f815c0..ddd05eba0 100644 --- a/srslte/lib/phch/test/prach_test.c +++ b/srslte/lib/phch/test/prach_test.c @@ -114,7 +114,7 @@ int main(int argc, char **argv) { srslte_prach_detect(p, frequency_offset, &preamble[p->N_cp], prach_len, indices, &n_indices); gettimeofday(&t[2], NULL); get_time_interval(t); - printf("texec=%d us\n", t[0].tv_usec); + printf("texec=%ld us\n", t[0].tv_usec); if(n_indices != 1 || indices[0] != seq_index) return -1; } diff --git a/srslte/lib/phch/test/pucch_test.c b/srslte/lib/phch/test/pucch_test.c index a2a9b8958..67cf46fdd 100644 --- a/srslte/lib/phch/test/pucch_test.c +++ b/srslte/lib/phch/test/pucch_test.c @@ -156,7 +156,7 @@ int main(int argc, char **argv) { } gettimeofday(&t[2], NULL); get_time_interval(t); - INFO("format %d, n_pucch: %d, ncs: %d, d: %d, t_exec=%d us\n", format, n_pucch, ncs, d, t[0].tv_usec); + INFO("format %d, n_pucch: %d, ncs: %d, d: %d, t_exec=%ld us\n", format, n_pucch, ncs, d, t[0].tv_usec); } } } diff --git a/srslte/lib/scrambling/test/scrambling_test.c b/srslte/lib/scrambling/test/scrambling_test.c index 49679e9e0..9ff47dc85 100644 --- a/srslte/lib/scrambling/test/scrambling_test.c +++ b/srslte/lib/scrambling/test/scrambling_test.c @@ -131,7 +131,7 @@ int main(int argc, char **argv) { srslte_scrambling_b(&seq, scrambled_b); get_time_interval(t); - printf("Texec=%d us for %d bits\n", t[0].tv_usec, seq.len); + printf("Texec=%ld us for %d bits\n", t[0].tv_usec, seq.len); for (i=0;i Date: Thu, 24 Nov 2016 11:18:54 +0100 Subject: [PATCH 3/3] PRACH: support all ConfigIndex values --- srslte/lib/phch/prach.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srslte/lib/phch/prach.c b/srslte/lib/phch/prach.c index 1cfedd3c6..59ed3d072 100644 --- a/srslte/lib/phch/prach.c +++ b/srslte/lib/phch/prach.c @@ -341,7 +341,7 @@ int srslte_prach_init(srslte_prach_t *p, int ret = SRSLTE_ERROR; if(p != NULL && N_ifft_ul < 2049 && - config_idx < 16 && + config_idx < 64 && root_seq_index < MAX_ROOTS) { uint32_t preamble_format = srslte_prach_get_preamble_format(config_idx);