mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-26 21:17:38 +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:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Javier Arribas
					Javier Arribas