如何配置Redhawk波形以与USRP RFNoC一起使用

如何解决如何配置Redhawk波形以与USRP RFNoC一起使用

我对SDR / FPGA游戏还比较陌生,因此如果术语错误,我深表歉意。我知道这会有很多相当具体的细节,但我希望有人可能做了类似的事情。 我正在尝试在具有RFNoC的UHD v3.14的Ettus USRP E312上运行一个简单的Redhawk 2.2.1波形。 Redhawk域正在USRP上运行,我正在从Centos7虚拟盒中连接Redhawk IDE。 我正在使用的代码是使用https://github.com/Geontech/redhawk-rfnoc-build构建的 FPGA的位文件是根据Ettus知识库中的说明使用Vivado制作的。波形本身包含具有ppd-rfnoc实现的单个psd组件,该组件依赖于RFNoC_RH共享库。有一个RFNOC_Programmable设备和两个由设备管理器控制的RFNoC角色。

我的问题是Redhawk无法为波形创建应用程序。我曾尝试过更改配置,添加更多日志记录以及对Redhawk代码进行一些小改动,但是整个过程通常由于无法解析组件或软件包依赖关系而失败。 我曾尝试在USRP上运行GPP,但是似乎没有考虑,因为一旦将psd组件分配给角色,它似乎就会被过滤。然后它将尝试将软包依赖项分配给已选择的设备,但是没有匹配项。

我有两个问题

  • 该设置可以正常工作的最小化redhawk模块集是什么(到目前为止,我的波形中包含一个psd组件,运行一个可编程设备和两个角色的设备管理器)
  • 模块之间的关系是什么?

我特别想知道/了解psd组件应该在哪里分配/运行?我需要GPP设备吗? Psd组件通过RFNoC接口从fpga中的块接收/发送数据,同时通过redhawk的bulkio与其他组件接口,这让我认为它确实需要GPP设备才能运行。 还是我想念其他东西?

解决方法

我必须承认,我对该项目有些生疏,并且应该更新。 Ettus针对RFNoC的构建和E3xx现在不再使用该构建指向的层堆栈版本。我从年初开始在我们的meta-redhawk-sdr thud-next分支上开始涉嫌此问题,但是在我不希望看到的2.2.6 REDHAWK更新中遇到了一些错误。最终,这刷新了Ettus最新的源代码树(即原始E3xx图像和RFNoC变体)的刷新。

也就是说,在查看XML时,rh.psd组件的RFNoC实现(cpp_rfnoc)表明目标可执行设备的处理器属性必须为RF-NoC-Default。 RFNoC_DefaultPersona设备已满足该要求(正确地,基于您的日志)。

rh.psd的实现还取决于RFNoC共享库(SoftPkg依赖性,RFNoC_RH),根据SPD的实现,该实现需要armv7l处理器。与可用可执行设备的比较失败。

在默认的构建配置中,我看不到任何东西为设备管理器中的设备提供该处理器名称(例如GPP)。那可能是疏忽。您可以尝试在系统中添加并运行GPP吗?

更新:在重现了设置并进行了一些调查之后,它似乎出现了一些热门补丁,并且在2019年达到2.2的高点通过引入一些东西打破了设计。

首先,共享库SPD可能需要为processor使用第二个RF-NoC-Default声明,以便可执行角色可以满足依赖关系(热补丁...)。

第二,应用程序工厂将创建一个ComponentHost来处理运行任何正在启动的 SharedLibrary 组件实现(2.2),这会引起问题,因为Persona期望dlopen 一切通过Load API传递,这就是为什么简单地重新添加ComponentHost(带有其自己的processor补丁)不能解决问题的原因。

解决的第一个是SPD XML补丁。修复第二个问题是REDHAWK核心框架修补程序,该修补程序可能应该上游,因为任何 Executable Persona设备很可能都希望将组件部署到父级Programmable设备设置到进程空间中(出于所有性能原因,为什么ComponentHost现在存在)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?