fixed memory leak in dlsim (for TM5)
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4209 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -287,8 +287,8 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
printf("Detected cpu_freq %f GHz\n",cpu_freq_GHz);
|
printf("Detected cpu_freq %f GHz\n",cpu_freq_GHz);
|
||||||
|
|
||||||
signal(SIGSEGV, handler);
|
//signal(SIGSEGV, handler);
|
||||||
signal(SIGABRT, handler);
|
//signal(SIGABRT, handler);
|
||||||
|
|
||||||
logInit();
|
logInit();
|
||||||
|
|
||||||
@@ -1110,7 +1110,7 @@ int main(int argc, char **argv) {
|
|||||||
case 6:
|
case 6:
|
||||||
memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu2_1E[k],sizeof(DCI1E_5MHz_2A_M10PRB_TDD_t));
|
memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu2_1E[k],sizeof(DCI1E_5MHz_2A_M10PRB_TDD_t));
|
||||||
dci_alloc[num_dci].dci_length = sizeof_DCI1E_5MHz_2A_M10PRB_TDD_t;
|
dci_alloc[num_dci].dci_length = sizeof_DCI1E_5MHz_2A_M10PRB_TDD_t;
|
||||||
dci_alloc[num_dci].L = 2;
|
dci_alloc[num_dci].L = 1;
|
||||||
dci_alloc[num_dci].rnti = n_rnti+k;
|
dci_alloc[num_dci].rnti = n_rnti+k;
|
||||||
dci_alloc[num_dci].format = format1E_2A_M10PRB;
|
dci_alloc[num_dci].format = format1E_2A_M10PRB;
|
||||||
dci_alloc[num_dci].nCCE = 4*k;
|
dci_alloc[num_dci].nCCE = 4*k;
|
||||||
@@ -1204,7 +1204,7 @@ int main(int argc, char **argv) {
|
|||||||
0,subframe);
|
0,subframe);
|
||||||
|
|
||||||
uncoded_ber_bit = (short*) malloc(sizeof(short)*coded_bits_per_codeword);
|
uncoded_ber_bit = (short*) malloc(sizeof(short)*coded_bits_per_codeword);
|
||||||
|
printf("uncoded_ber_bit=%p\n",uncoded_ber_bit);
|
||||||
|
|
||||||
snr_step = input_snr_step;
|
snr_step = input_snr_step;
|
||||||
for (ch_realization=0;ch_realization<n_ch_rlz;ch_realization++){
|
for (ch_realization=0;ch_realization<n_ch_rlz;ch_realization++){
|
||||||
@@ -2138,6 +2138,16 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PHY_vars_UE->dlsch_ue[0][0]->rnti = (common_flag==0) ? n_rnti: SI_RNTI;
|
||||||
|
coded_bits_per_codeword = get_G(&PHY_vars_eNB->lte_frame_parms,
|
||||||
|
PHY_vars_eNB->dlsch_eNB[0][0]->nb_rb,
|
||||||
|
PHY_vars_eNB->dlsch_eNB[0][0]->rb_alloc,
|
||||||
|
get_Qm(PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mcs),
|
||||||
|
num_pdcch_symbols,
|
||||||
|
0,subframe);
|
||||||
|
|
||||||
|
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->G = coded_bits_per_codeword;
|
||||||
|
|
||||||
// calculate uncoded BLER
|
// calculate uncoded BLER
|
||||||
uncoded_ber=0;
|
uncoded_ber=0;
|
||||||
for (i=0;i<coded_bits_per_codeword;i++)
|
for (i=0;i<coded_bits_per_codeword;i++)
|
||||||
@@ -2154,29 +2164,7 @@ int main(int argc, char **argv) {
|
|||||||
if (n_frames==1)
|
if (n_frames==1)
|
||||||
write_output("uncoded_ber_bit.m","uncoded_ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0);
|
write_output("uncoded_ber_bit.m","uncoded_ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0);
|
||||||
|
|
||||||
/*
|
|
||||||
printf("precoded CQI %d dB, opposite precoded CQI %d dB\n",
|
|
||||||
PHY_vars_UE->PHY_measurements.precoded_cqi_dB[eNB_id][0],
|
|
||||||
PHY_vars_UE->PHY_measurements.precoded_cqi_dB[eNB_id_i][0]);
|
|
||||||
*/
|
|
||||||
|
|
||||||
// clip the llrs
|
|
||||||
/* for (i=0; i<coded_bits_per_codeword; i++) {
|
|
||||||
if (PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i]>127)
|
|
||||||
PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i] = 127;
|
|
||||||
else if (PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i]<-128)
|
|
||||||
PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i] = -128;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
PHY_vars_UE->dlsch_ue[0][0]->rnti = (common_flag==0) ? n_rnti: SI_RNTI;
|
|
||||||
coded_bits_per_codeword = get_G(&PHY_vars_eNB->lte_frame_parms,
|
|
||||||
PHY_vars_eNB->dlsch_eNB[0][0]->nb_rb,
|
|
||||||
PHY_vars_eNB->dlsch_eNB[0][0]->rb_alloc,
|
|
||||||
get_Qm(PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mcs),
|
|
||||||
num_pdcch_symbols,
|
|
||||||
0,subframe);
|
|
||||||
|
|
||||||
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->G = coded_bits_per_codeword;
|
|
||||||
start_meas(&usts);
|
start_meas(&usts);
|
||||||
dlsch_unscrambling(&PHY_vars_UE->lte_frame_parms,
|
dlsch_unscrambling(&PHY_vars_UE->lte_frame_parms,
|
||||||
0,
|
0,
|
||||||
@@ -2187,10 +2175,6 @@ int main(int argc, char **argv) {
|
|||||||
subframe<<1);
|
subframe<<1);
|
||||||
stop_meas(&usts);
|
stop_meas(&usts);
|
||||||
|
|
||||||
/*
|
|
||||||
for (i=0;i<coded_bits_per_codeword;i++)
|
|
||||||
PHY_vars_UE->lte_ue_pdsch_vars[0]->llr[0][i] = (short)quantize(100,PHY_vars_UE->lte_ue_pdsch_vars[0]->llr[0][i],4);
|
|
||||||
*/
|
|
||||||
start_meas(&PHY_vars_UE->dlsch_decoding_stats);
|
start_meas(&PHY_vars_UE->dlsch_decoding_stats);
|
||||||
ret = dlsch_decoding(PHY_vars_UE,
|
ret = dlsch_decoding(PHY_vars_UE,
|
||||||
PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0],
|
PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0],
|
||||||
@@ -2445,7 +2429,8 @@ int main(int argc, char **argv) {
|
|||||||
fclose(csv_fd);
|
fclose(csv_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(uncoded_ber_bit);
|
if (uncoded_ber_bit)
|
||||||
|
free(uncoded_ber_bit);
|
||||||
uncoded_ber_bit = NULL;
|
uncoded_ber_bit = NULL;
|
||||||
for (k=0;k<n_users;k++) {
|
for (k=0;k<n_users;k++) {
|
||||||
free(input_buffer[k]);
|
free(input_buffer[k]);
|
||||||
|
|||||||
Reference in New Issue
Block a user