[USRP-users] E312 - Migrating OOT Modules to the USRP
jlockhartrt at gmail.com
Thu Nov 21 15:48:26 EST 2019
So, from the tutorial, they have you edit the gain.xml file, and this is
what I have for it.
<!--Default XML file-->
<!-- Registers -->
<!-- Args -->
<check>GE($gain, 0.0) AND LE($gain, 32767.0)</check>
<!--One input, one output. If this is used, better have all the info the
There is an args value and it is declared as gain.
So from there, I followed your second suggestion and tried to find where it
was installed when I did the cross compile. It was not placed in the
"GRC_BLOCKS_PATH" of "/share/gnuradio/grc/blocks" like the default RFNoC
blocks. It was instead placed in "/share/uhd/rfnoc/bocks" so I added that
to the setup.env file, included below.
Unfortunately, after re-sourcing the setup.env, I still get the same
File "rfnoc_myGain_usrp.py", line 223, in <module>
File "rfnoc_myGain_usrp.py", line 212, in main
tb = top_block_cls(fpga_path=options.fpga_path,
File "rfnoc_myGain_usrp.py", line 117, in __init__
line 315, in set_arg
return _tutorial_swig.gain_sptr_set_arg(self, *args)
RuntimeError: LookupError: Path not found in tree:
I looked at some of your examples (which have been very helpful to get me
this far) from what I believe is your github someone linked me. Everything
appears to match what it should, for what gain is trying to accomplish.
On Thu, Nov 21, 2019 at 3:27 PM EJ Kreinar <ejkreinar at gmail.com> wrote:
> Hi Jon,
> The rfnoc "nocscript" xml definition can create arguments and attach to
> the device tree like you are trying to set there (it's not compiled
> directly, but rather created dynamically from the xml definition)
> Recommended debugging...
> 1. Check your OOT gain block xml (in rfnoc/blocks) and make sure it has a
> "gain" field in the "args" list. You'll also want to make sure it writes
> your desired register, but I don't think you're even getting that far
> 2. Make sure the block xml is installed on the e310 embedded prefix and is
> found at run time during uhd_usrp_probe and when running your application.
> If it's not in the right place or not attaching to your block then it won't
> create the gain argument
> I'm guessing it's one of those two possibilities...
> On Thu, Nov 21, 2019, 3:19 PM Jonathan Lockhart via USRP-users <
> usrp-users at lists.ettus.com> wrote:
>> I was able to get the ARM cross compile working. I removed the build
>> directory and re-sourced the dev environment and then the cross-compile
>> used the -mfloar=hard flag. Not sure what caused the issue earlier and why
>> it wasn't picking it up.
>> Now I have a different issue. So I have completed this guide:
>> I modified the GNURadio just a bit so that the output from gain was
>> placed on a ZMQ push, and the graphics were on the host to graph the signal
>> (seen in the screenshots below).
>> [image: Screenshot from 2019-11-21 15-06-33.jpg]
>> [image: Screenshot from 2019-11-21 15-010-44.jpg]
>> However, when I run the top file for the USRP, I am running into this
>> Traceback (most recent call last):
>> File "rfnoc_myGain_usrp.py", line 223, in <module>
>> File "rfnoc_myGain_usrp.py", line 212, in main
>> tb = top_block_cls(fpga_path=options.fpga_path,
>> rx_gain=options.rx_gain, rx_digital_gain=options.rx_digital_gain,
>> rx_freq=options.rx_freq, host_ip_addr=options.host_ip_addr)
>> File "rfnoc_myGain_usrp.py", line 117, in __init__
>> self.tutorial_gain_0.set_arg("gain", rx_digital_gain)
>> line 315, in set_arg
>> return _tutorial_swig.gain_sptr_set_arg(self, *args)
>> RuntimeError: LookupError: Path not found in tree:
>> No where else in building GNURadio scripts and .bit files does this
>> "/mboards" arise, and I have looked through my verilog file for gain
>> (gain.v) and it is correct per the instructions in the linked guide, and I
>> built the python and gnuradio hook exactly as the instructions stated to.
>> Anyone have an troubleshooting ideas b/c I am currently at a loss. It did
>> past the test bench they have you build with no issues.
>> On Wed, Nov 20, 2019 at 3:21 PM Jonathan Lockhart <jlockhartrt at gmail.com>
>>> I am having some issues completing the RFNOC build tutorial on the Ettus
>>> E312. The reference documentation is using an X3xx series radio, and from
>>> the final python script it appears to be running the GNR script natively on
>>> the host. I built the exact script from the KB but when running on the
>>> radio it fails stating it can't "import tutorial." I realized all the files
>>> that were installed were placed on the host but not cross compiled for the
>>> E3xx using the SDK and ARM cross compile tool. I tried to complete this
>>> task, but unfortunately the compilation dies here.
>>> fatal error: gnu/stubs-soft.h: No such file or directory
>>> # include <gnu/stubs-soft.h>
>>> compilation terminated.
>>> Now I did find the stubs-soft.h file in the libc6-dev-armel-cross in the
>>> apt repo. I installed it and tried to cp the file into the
>>> location but it still doesn't like that. I verified that on my echo $CC
>>> that the -mfloat is set to hard as shown here.
>>> jon at jon-OptiPlex-9020:~/rfnoc/src/rfnoc-tutorial$ echo $CC
>>> arm-oe-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon
>>> So I am not sure why the gain module in the tutorial is looking for the
>>> soft file.
>>> If anyone has experience in porting their OOT modules over to the
>>> E-series of radios I would appreciate the help.
>> USRP-users mailing list
>> USRP-users at lists.ettus.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the USRP-users