Simon, the E310 can't support rates > 10 Msps into the ARM. The idea of RFNoC is to offload the signal processing into the FPGA, so the ARM core doesn't have to do the signal processing.
As for your segfault, the stack trace is not really useful -- generally a clue that there's a mis-linking going on. Can you confirm that you were using the correct SDK for the filesystem you're running? Also, how did you do the cross-compile? Can you try ldd to figure out if your UHD is picking up the correct .so files? Thanks, Martin On 10/05/2017 03:25 PM, Simon Méra via USRP-users wrote: > 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 > _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com