1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-12 19:20:32 +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 ############ ;######### CHANNELS GLOBAL CONFIG ############
;#count: Number of available GPS satellite channels. ;#count: Number of available GPS satellite channels.
Channels_1C.count=1 Channels_1C.count=12
;#count: Number of available Galileo satellite channels. ;#count: Number of available Galileo satellite channels.
Channels_1B.count=0 Channels_1B.count=0
;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver ;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
@ -233,7 +233,7 @@ Acquisition_1B.doppler_step=125
;######### TRACKING GPS CONFIG ############ ;######### 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] ;#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. ;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
Tracking_1C.item_type=gr_complex Tracking_1C.item_type=gr_complex

View File

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

View File

@ -53,6 +53,7 @@ include_directories(
${GLOG_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS}
${GFlags_INCLUDE_DIRS} ${GFlags_INCLUDE_DIRS}
${OPT_TRACKING_INCLUDES} ${OPT_TRACKING_INCLUDES}
${VOLK_GNSSSDR_INCLUDE_DIRS}
) )
if(ENABLE_GENERIC_ARCH) if(ENABLE_GENERIC_ARCH)
@ -67,5 +68,5 @@ endif(SSE3_AVAILABLE)
file(GLOB TRACKING_LIB_HEADERS "*.h") file(GLOB TRACKING_LIB_HEADERS "*.h")
add_library(tracking_lib ${TRACKING_LIB_SOURCES} ${TRACKING_LIB_HEADERS}) add_library(tracking_lib ${TRACKING_LIB_SOURCES} ${TRACKING_LIB_HEADERS})
source_group(Headers FILES ${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}) add_dependencies(tracking_lib glog-${glog_RELEASE})

View File

@ -36,7 +36,7 @@
#define GNSS_SDR_CPU_MULTICORRELATOR_16SC_H_ #define GNSS_SDR_CPU_MULTICORRELATOR_16SC_H_
#include <volk/volk.h> //include original volk first! #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 #ifndef INCLUDED_volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_u_H
#define 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 <volk_gnsssdr/volk_gnsssdr_complex.h>
#include <stdio.h>
#include <string.h>
#include "saturated_arithmetic.h" #include "saturated_arithmetic.h"
#ifdef LV_HAVE_GENERIC #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) 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++) 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++) for (unsigned int n=0;n<num_points;n++)
{ {
//r*a.r - i*a.i, i*a.r + r*a.i //r*a.r - i*a.i, i*a.r + r*a.i
//result[n_vec]+=in_common[n]*in_a[n_vec][n]; //result[n_vec]+=in_common[n]*in_a[n_vec][n];
lv_16sc_t tmp=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]=lv_cmake(sat_adds16b(lv_creal(result[n_vec]),lv_creal(tmp)),sat_adds16b(lv_cimag(result[n_vec]),lv_cimag(tmp)));
result[n_vec].imag(sat_adds16b(result[n_vec].imag(),tmp.imag()));
} }
//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) 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; 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]); 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 _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) 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; _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++){ for(unsigned int n = sse_iters * 4;n < num_points; n++){
lv_16sc_t tmp=in_common[n]*in_a[n_vec][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} ${Boost_INCLUDE_DIRS}
${GNURADIO_RUNTIME_INCLUDE_DIRS} ${GNURADIO_RUNTIME_INCLUDE_DIRS}
${OPT_RECEIVER_INCLUDE_DIRS} ${OPT_RECEIVER_INCLUDE_DIRS}
${VOLK_GNSSSDR_INCLUDE_DIRS}
) )
if(Boost_VERSION LESS 105000) if(Boost_VERSION LESS 105000)