Well, per usual, I believe I've figured this out with some more digging...

1. If I run a python program that includes my OOT module, the blocks are
registered correctly with the block_ctrl_base_factory, and the
initialization call to ettus.device3 will correctly correlate my FPGA CE
with the OOT controller.

2. I assume that a C program will also register blocks correctly if it uses
the my class and links to the OOT module

3. But the uhd_usrp_probe is *not* linked to my OOT module, so I dont think
I should expect it to register my new controller class.

Conclusion #3 is sad because I like using uhd_usrp_probe as a debug tool to
evaluate whether blocks are configured and initialized correctly, but I'm
not sure if there's a way to get around this.. Maybe I could create an OOT
uhd_usrp_probe function that compiles/links with my OOT repo(s)?

Is this all correct?
EJ

On Fri, Dec 8, 2017 at 11:52 AM, EJ Kreinar <ejkrei...@gmail.com> wrote:

> Hi All,
>
> I'm having trouble getting an OOT RFNoC block controller to register
> correctly with the rfnoc block factory. The goal here is to create a block
> controller class that attaches to the FPGA CE.
>
> I've traced this operation down to the block_ctrl_base_factory.cpp, which
> exposes the register_block(...) function that is called from RFNoC block
> controllers using the UHD_RFNOC_BLOCK_REGISTER macro. When I add a debug
> statement in the register_block function, I can see all of the block
> controllers in the UHD repo getting registered at the start of a
> uhd_usrp_probe, but my OOT block is not registered here.
>
> Register block adding key: Block
> Register block adding key: DDC
> Register block adding key: DUC
> Register block adding key: FIR
> Register block adding key: NullSrcSink
> Register block adding key: Window
> Register block adding key: SigGen
> Register block adding key: DmaFIFO
> Register block adding key: X300Radio
>
> If I take the SAME block controller cpp and hpp files from my OOT repo,
> insert into the UHD repo with corresponding CMakeLists edits, and then
> rerun, I can see the block controller get registered on startup.
>
> Any suggestions how to register the blocks from the OOT repos??  Am I
> missing something obvious?
>
> Thanks!
> EJ
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to