On 01/10/2017 11:06 PM, Steve Knoeck wrote:
Hi,
I get a floating point exception when I run rtl_tcp. I traced the error
with GDB to line 515 of tuner_r82xx.c
if (vco_fra > (2 * pll_ref_khz / n_sdm))
I found that n_sdm was 0.
I don't understand how this code work and I'm very new to this software
but it sure looks like a programming bug.
| 513 /* sdm calculator */||
|| 514 while (vco_fra > 1) {||
|| 515 if (vco_fra > (2 * pll_ref_khz / n_sdm)) {||
|| 516 sdm = sdm + 32768 / (n_sdm / 2);||
|| 517 vco_fra = vco_fra - 2 * pll_ref_khz /
n_sdm;||
|| 518 if (n_sdm >= 0x8000)||
|| 519 break;||
|| 520 }||
|| 521 n_sdm <<= 1;||
|| 522 }|
If the condition on line 515 ever evaluates to false then vco_fra
doesn't get updated. The loop will keep repeating with the same value
of vco_fra until n_sdm becomes 0.
Steve
I'm using rtl_tcp from
http://git.osmocom.org/rtl-sdr/rtl-sdr-0.5.3.tar.xz with
gnuradio-3.7.10.1 and it works perfectly.
Which version are you using?
-- Cinaed