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:
parent
5ba12c6fdb
commit
c2676ec491
@ -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
|
||||
|
||||
|
@ -47,6 +47,7 @@ include_directories(
|
||||
${GLOG_INCLUDE_DIRS}
|
||||
${GFlags_INCLUDE_DIRS}
|
||||
${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
||||
${VOLK_GNSSSDR_INCLUDE_DIRS}
|
||||
${OPT_TRACKING_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
|
@ -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})
|
||||
|
@ -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>
|
||||
|
||||
|
||||
/*!
|
||||
|
@ -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)));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user