Hi,
For my project, I have to use an Ettus e310 at high rates (> 10MSPs). With the 
default settings, I’m not able to go further than 2MSPs, and was trying to use 
RFNoC to avoid using the DUC (I’ve got UAL errors, so I thought using directly 
the radio avoiding the upsampling, giving that I have a signal at 10MSPs or 
more). 

After cross-compiling, I’m able to see my device using uhd_usrp_probe, running 
the given example, but using whatever scripts generated by gnuradio give me 
this output : 

        [INFO] [UHDlinux; GNU C++ version 4.9.2; Boost_105700; 
UHD_4.0.0.rfnoc-devel-369-g1908672f] 
        [INFO] [E300] Loading FPGA image: 
/home/root/usr/usr/share/uhd/images/usrp_e310_fpga.bit...
        [INFO] [E300] FPGA image loaded
        [INFO] [E300] Detecting internal GPSDO 
        .... [INFO] [E300] GPSDO found
        [INFO] [E300] Initializing core control (global registers)...

        [INFO] [E300] Performing register loopback test... 
        [INFO] [E300] Register loopback test passed
        [INFO] [RFNOC RADIO] Register loopback test passed
        [INFO] [RFNOC RADIO] Register loopback test passed
        [WARNING] [RFNOC] [0/fosphor_0] defines 2 input buffer sizes, but 1 
input ports
        [INFO] [AD936X] Performing CODEC loopback test... 
        [INFO] [AD936X] CODEC loopback test passed
        [INFO] [AD936X] Performing CODEC loopback test... 
        [INFO] [AD936X] CODEC loopback test passed
        [INFO] [CORES] Performing timer loopback test... 
        [INFO] [CORES] Timer loopback test passed
        Segmentation fault

gdb give this information about the segfault : 

        Program received signal SIGSEGV, Segmentation fault.
        memcmp_common_alignment (len=<optimized out>, srcp2=<optimized out>, 
srcp1=7221248) at memcmp.c:165
        165           a0 = ((op_t *) srcp1)[0];

The stack at the segfault is : 

        #0  memcmp_common_alignment (len=<optimized out>, srcp2=<optimized 
out>, 
            srcp1=<optimized out>) at memcmp.c:177
        #1  __GI_memcmp (s1=<optimized out>, s2=<optimized out>, len=<optimized 
out>)
            at memcmp.c:343
        #2  0xb64b4618 in compare (__n=<optimized out>, __s2=<optimized out>, 
            __s1=<optimized out>)
          at 
/usr/src/debug/gcc-runtime/4.9.2-r0/gcc-4.9.2/build.arm-oe-linux-gnueabi.arm-oe-linux-gnueabi/arm-oe-linux-gnueabi/libstdc++-v3/include/bits/char_traits.h:259
        #3  std::string::compare (this=this@entry=0x6620c8, __str=...)
          at 
/usr/src/debug/gcc-runtime/4.9.2-r0/gcc-4.9.2/build.arm-oe-linux-gnueabi.arm-oe-linux-gnueabi/arm-oe-linux-gnueabi/libstdc++-v3/include/bits/basic_string.h:2250
        #4  0xb28cadcc in operator< <char, std::char_traits<char>, 
std::allocator<char> > (__rhs=..., __lhs=...)
            at 
/home/balister/release-4/build/tmp-glibc/sysroots/ettus-e3xx-sg1/usr/include/c++/4.9.2/bits/basic_string.h:2590
        #5  operator() (this=<optimized out>, __y=..., __x=...)
            at 
/home/balister/release-4/build/tmp-glibc/sysroots/ettus-e3xx-sg1/usr/include/c++/4.9.2/bits/stl_function.h:371
        #6  _M_lower_bound (this=<optimized out>, __k=..., __y=<optimized out>, 
           __x=0x6620b8)
            at 
/home/balister/release-4/build/tmp-glibc/sysroots/ettus-e3xx-sg1/usr/incl---Type
 <return> to continue, or q <return> to quit—
ude/c++/4.9.2/bits/stl_tree.h:1261
        #7  lower_bound (__k=..., this=0xb2926658 <global_block_registry>)
            at 
/home/balister/release-4/build/tmp-glibc/sysroots/ettus-e3xx-sg1/usr/include/c++/4.9.2/bits/stl_tree.h:927
        #8  lower_bound (__x=..., this=0xb2926658 <global_block_registry>)
            at 
/home/balister/release-4/build/tmp-glibc/sysroots/ettus-e3xx-sg1/usr/include/c++/4.9.2/bits/stl_map.h:902
        #9  std::map<std::string, std::map<long, gr::basic_block*, 
std::less<long>, std::allocator<std::pair<long const, gr::basic_block*> > >, 
std::less<std::string>, std::allocator<std::pair<std::string const, 
std::map<long, gr::basic_block*, std::less<long>, std::allocator<std::pair<long 
const, gr::basic_block*> > > > > >::operator[] (this=this@entry=0xb2926658 
<global_block_registry>, __k=...)
          at 
/home/balister/release-4/build/tmp-glibc/sysroots/ettus-e3xx-sg1/usr/include/c++/4.9.2/bits/stl_map.h:496

(The full stack is 46 lines)


Is the idea of using RFNoC to emit at higher rates a good idea ? 
If yes, how can I resolve the SEGFAULT ? Where does it come ? 

Regards,
Simon


_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to