1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-12 11:10:33 +00:00

Added missing includes (to be removed in future versions). Steps towards

the integration of new standalone kernels into volk_gnsssdr library.
This commit is contained in:
Javier Arribas 2016-01-12 18:58:00 +01:00
parent 5ba12c6fdb
commit c2676ec491
6 changed files with 19 additions and 20 deletions

View File

@ -158,7 +158,7 @@ Resampler.sample_freq_out=4000000
;######### CHANNELS GLOBAL CONFIG ############
;#count: Number of available GPS satellite channels.
Channels_1C.count=1
Channels_1C.count=12
;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
@ -233,7 +233,7 @@ Acquisition_1B.doppler_step=125
;######### TRACKING GPS CONFIG ############
;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] or [GPS_L1_CA_TCP_CONNECTOR_Tracking] or [Galileo_E1_DLL_PLL_VEML_Tracking]
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking_16sc
;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
Tracking_1C.item_type=gr_complex

View File

@ -47,6 +47,7 @@ include_directories(
${GLOG_INCLUDE_DIRS}
${GFlags_INCLUDE_DIRS}
${GNURADIO_RUNTIME_INCLUDE_DIRS}
${VOLK_GNSSSDR_INCLUDE_DIRS}
${OPT_TRACKING_INCLUDE_DIRS}
)

View File

@ -53,6 +53,7 @@ include_directories(
${GLOG_INCLUDE_DIRS}
${GFlags_INCLUDE_DIRS}
${OPT_TRACKING_INCLUDES}
${VOLK_GNSSSDR_INCLUDE_DIRS}
)
if(ENABLE_GENERIC_ARCH)
@ -67,5 +68,5 @@ endif(SSE3_AVAILABLE)
file(GLOB TRACKING_LIB_HEADERS "*.h")
add_library(tracking_lib ${TRACKING_LIB_SOURCES} ${TRACKING_LIB_HEADERS})
source_group(Headers FILES ${TRACKING_LIB_HEADERS})
target_link_libraries(tracking_lib ${OPT_TRACKING_LIBRARIES} ${VOLK_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES})
target_link_libraries(tracking_lib ${OPT_TRACKING_LIBRARIES} ${VOLK_LIBRARIES} ${VOLK_GNSSSDR_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES})
add_dependencies(tracking_lib glog-${glog_RELEASE})

View File

@ -36,7 +36,7 @@
#define GNSS_SDR_CPU_MULTICORRELATOR_16SC_H_
#include <volk/volk.h> //include original volk first!
#include "volk_gnsssdr/volk_gnsssdr.h"
#include <volk_gnsssdr/volk_gnsssdr.h>
/*!

View File

@ -36,10 +36,8 @@
#ifndef INCLUDED_volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_u_H
#define INCLUDED_volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_u_H
#include <volk_gnsssdr/volk_gnsssdr_common.h>
#include <volk_gnsssdr/volk_gnsssdr_complex.h>
#include <stdio.h>
#include <string.h>
#include "saturated_arithmetic.h"
#ifdef LV_HAVE_GENERIC
@ -52,21 +50,16 @@
*/
static inline void volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_generic(lv_16sc_t* result, const lv_16sc_t* in_common, const lv_16sc_t** in_a, unsigned int num_points, int num_a_vectors)
{
for (int n_vec=0;n_vec<num_a_vectors;n_vec++)
{
result[n_vec]=lv_16sc_t(0,0);
result[n_vec]=lv_cmake(0,0);
for (unsigned int n=0;n<num_points;n++)
{
//r*a.r - i*a.i, i*a.r + r*a.i
//result[n_vec]+=in_common[n]*in_a[n_vec][n];
lv_16sc_t tmp=in_common[n]*in_a[n_vec][n];
result[n_vec].real(sat_adds16b(result[n_vec].real(),tmp.real()));
result[n_vec].imag(sat_adds16b(result[n_vec].imag(),tmp.imag()));
result[n_vec]=lv_cmake(sat_adds16b(lv_creal(result[n_vec]),lv_creal(tmp)),sat_adds16b(lv_cimag(result[n_vec]),lv_cimag(tmp)));
}
//std::cout<<"in_common[0]="<<in_common[0]<<"in_a[n_vec][0]="<<in_a[n_vec][0]<<std::endl;
//std::cout<<"in_common[0]*in_a[n_vec][0]="<<in_common[0]*in_a[n_vec][0]<<std::endl;
}
}
@ -79,7 +72,7 @@ static inline void volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_generic(lv_16sc_t* resu
static inline void volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_a_sse2(lv_16sc_t* out, const lv_16sc_t* in_common, const lv_16sc_t** in_a, unsigned int num_points, int num_a_vectors)
{
lv_16sc_t dotProduct=lv_16sc_t(0,0);
lv_16sc_t dotProduct=lv_cmake(0,0);
const unsigned int sse_iters = num_points / 4;
@ -147,11 +140,12 @@ static inline void volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_a_sse2(lv_16sc_t* out,
result = _mm_or_si128 (realcacc[n_vec], imagcacc[n_vec]);
_mm_storeu_si128((__m128i*)dotProductVector,result); // Store the results back into the dot product vector
dotProduct=lv_16sc_t(0,0);
dotProduct=lv_cmake(0,0);
for (int i = 0; i<4; ++i)
{
dotProduct.real(sat_adds16b(dotProduct.real(),dotProductVector[i].real()));
dotProduct.imag(sat_adds16b(dotProduct.imag(),dotProductVector[i].imag()));
dotProduct=lv_cmake(sat_adds16b(lv_creal(dotProduct),lv_creal(dotProductVector[i])),
sat_adds16b(lv_cimag(dotProduct),lv_cimag(dotProductVector[i])));
}
_out[n_vec]=dotProduct;
}
@ -164,8 +158,10 @@ static inline void volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_a_sse2(lv_16sc_t* out,
for(unsigned int n = sse_iters * 4;n < num_points; n++){
lv_16sc_t tmp=in_common[n]*in_a[n_vec][n];
_out[n_vec].real(sat_adds16b(_out[n_vec].real(),tmp.real()));
_out[n_vec].imag(sat_adds16b(_out[n_vec].imag(),tmp.imag()));
_out[n_vec]=lv_cmake(sat_adds16b(lv_creal(_out[n_vec]),lv_creal(tmp)),
sat_adds16b(lv_cimag(_out[n_vec]),lv_cimag(tmp)));
}
}

View File

@ -77,6 +77,7 @@ include_directories(
${Boost_INCLUDE_DIRS}
${GNURADIO_RUNTIME_INCLUDE_DIRS}
${OPT_RECEIVER_INCLUDE_DIRS}
${VOLK_GNSSSDR_INCLUDE_DIRS}
)
if(Boost_VERSION LESS 105000)