package/uhd: fix usrp2 build with boost 1.77.0
Fix build failure: uhd-3.15.0.0/host/lib/usrp/usrp2/usrp2_impl.cpp:847:29: error: 'boost::math' has not been declared for boost::math::sign and boost::math::iround Backport and adapt commits: - 3796175f32f0cc24c16809d8175d423bc7053de9 - d1c6290fe9c8b01068abfca6f272e2a1e031b9de Fixes: - http://autobuild.buildroot.net/results/aa2bd1fbe1b4880aa8de389238380a3d35f80b53/ - http://autobuild.buildroot.net/results/22b022f360d0f0f23161bc279b736e6a80f87c1a/ - http://autobuild.buildroot.net/results/f65ea915509a8669c624ddab85e76576c8522005/ Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
ad2b4b8cc7
commit
0fcf166db0
@ -0,0 +1,57 @@
|
||||
From 3796175f32f0cc24c16809d8175d423bc7053de9 Mon Sep 17 00:00:00 2001
|
||||
From: StefanBruens <stefan.bruens@rwth-aachen.de>
|
||||
Date: Wed, 5 May 2021 18:24:58 +0200
|
||||
Subject: [PATCH] usrp2: Replace boost::math::iround/math::sign with std::lround
|
||||
|
||||
Instead of multiplying zone with the sign repeatedly just make
|
||||
the zone a signed value.
|
||||
|
||||
See #437, #438
|
||||
|
||||
Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
|
||||
[gwenhael.goavec-merou@trabucayre.com: backport from upstream]
|
||||
Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
|
||||
---
|
||||
host/lib/usrp/usrp2/usrp2_impl.cpp | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp
|
||||
index 1be4c7339..c0719a316 100644
|
||||
--- a/host/lib/usrp/usrp2/usrp2_impl.cpp
|
||||
+++ b/host/lib/usrp/usrp2/usrp2_impl.cpp
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <boost/asio/ip/address_v4.hpp>
|
||||
#include <boost/asio.hpp> //used for htonl and ntohl
|
||||
#include <boost/thread.hpp>
|
||||
+#include <cmath>
|
||||
|
||||
using namespace uhd;
|
||||
using namespace uhd::usrp;
|
||||
@@ -844,20 +845,19 @@ double usrp2_impl::set_tx_dsp_freq(
|
||||
_tree->access<double>("/mboards/"+mb+"/tick_rate").get();
|
||||
|
||||
//calculate the DAC shift (multiples of rate)
|
||||
- const int sign = boost::math::sign(new_freq);
|
||||
- const int zone = std::min(boost::math::iround(new_freq/tick_rate), 2);
|
||||
- const double dac_shift = sign*zone*tick_rate;
|
||||
+ const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2);
|
||||
+ const double dac_shift = zone * tick_rate;
|
||||
new_freq -= dac_shift; //update FPGA DSP target freq
|
||||
UHD_LOG_TRACE("USRP2",
|
||||
"DSP Tuning: Requested " + std::to_string(freq_/1e6) + " MHz, Using "
|
||||
- "Nyquist zone " + std::to_string(sign*zone) + ", leftover DSP tuning: "
|
||||
+ "Nyquist zone " + std::to_string(zone) + ", leftover DSP tuning: "
|
||||
+ std::to_string(new_freq/1e6) + " MHz.");
|
||||
|
||||
//set the DAC shift (modulation mode)
|
||||
if (zone == 0) {
|
||||
_mbc[mb].codec->set_tx_mod_mode(0); //no shift
|
||||
} else {
|
||||
- _mbc[mb].codec->set_tx_mod_mode(sign*4/zone); //DAC interp = 4
|
||||
+ _mbc[mb].codec->set_tx_mod_mode(4 / zone); // DAC interp = 4
|
||||
}
|
||||
|
||||
return _mbc[mb].tx_dsp->set_freq(new_freq) + dac_shift; //actual freq
|
||||
--
|
||||
2.32.0
|
||||
|
@ -0,0 +1,28 @@
|
||||
From d1c6290fe9c8b01068abfca6f272e2a1e031b9de Mon Sep 17 00:00:00 2001
|
||||
From: StefanBruens <stefan.bruens@rwth-aachen.de>
|
||||
Date: Wed, 5 May 2021 18:49:40 +0200
|
||||
Subject: [PATCH] usrp2: Use explicit template type for std::min<T>
|
||||
|
||||
Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
|
||||
[gwenhael.goavec-merou@trabucayre.com: backport from upstream]
|
||||
Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
|
||||
---
|
||||
host/lib/usrp/usrp2/usrp2_impl.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp
|
||||
index 59fd9849c..e82a9fa71 100644
|
||||
--- a/host/lib/usrp/usrp2/usrp2_impl.cpp
|
||||
+++ b/host/lib/usrp/usrp2/usrp2_impl.cpp
|
||||
@@ -845,7 +845,7 @@ double usrp2_impl::set_tx_dsp_freq(
|
||||
_tree->access<double>("/mboards/"+mb+"/tick_rate").get();
|
||||
|
||||
//calculate the DAC shift (multiples of rate)
|
||||
- const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2);
|
||||
+ const int zone = std::max(std::min<int>(std::lround(new_freq / tick_rate), 2), -2);
|
||||
const double dac_shift = zone * tick_rate;
|
||||
new_freq -= dac_shift; //update FPGA DSP target freq
|
||||
UHD_LOG_TRACE("USRP2",
|
||||
--
|
||||
2.32.0
|
||||
|
Loading…
Reference in New Issue
Block a user