如何解决如何配置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组件分配给角色,它似乎就会被过滤。然后它将尝试将软包依赖项分配给已选择的设备,但是没有匹配项。
我有两个问题
我特别想知道/了解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 举报,一经查实,本站将立刻删除。