前言

RFNoc(RF network on chip)是ettus公司推出的以流图的方式调用FPGA资源的开源开发框架,可以在一定程度上降低在USRP设备上的FPGA开发难度。在目前基于ZYNQ系列的硬件设备E3XX系列和X3XX系列上都可以使用。官方的应用笔记给的还算详细,其中由于E系列是嵌入式设备,所以不光需要在PC上搭建环境,还要在设备上搭建运行环境。

Ettus官方提供的系统镜像中UHD是比较旧的3.9.2版本,没有预装rfnoc,编译的时候需要把rfnoc设置为on才行。在现在的最新版本3.14.X中,已经集成到一起了。

这篇官方的应用笔记里有笔记详细的安装方法,PC上的搭建就不详细说了,应用笔记里介绍了在电脑上用交叉编译的方法搭建环境的流程,其实也可以把UHD和GNURadio的源码下到e312上编译,流程稍微简单一些,但是因为处理器的能力没有电脑强所以会比较慢。

https://kb.ettus.com/Software_Development_on_the_E3xx_USRP_-_Building_RFNoC_UHD_/_GNU_Radio_/_gr-ettus_from_Source

一、在E312上直接用源码编译

下载UHD的源码: $ git clone -b rfnoc-devel https://github.com/EttusResearch/uhd.git 
下载GNURadio源码:  $ git clone -b v3.7.10.2 --recursive https://github.com/gnuradio/gnuradio.git

版本可以根据自己实际需要的来下载,UHD推荐用最新的,但是对于GNURadio,由于ettus提供的镜像中的文件系统里面的很多依赖版本都比较旧,太新的GNURadio版本编译时会遇到很多不兼容问题需要更新依赖,比较麻烦,建议跟旧版本保持一致。

1、修改系统时间:

$  date -s  月/日/年

$  date -s   时/分/秒(UTC时间)

一定要先修改时间再编译,不然系统会认为要编译的文件来自未来,会报错。

2、安装UHD

$  cd uhd-XXXX

$  mkdir build

$  cd build

$  cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_E300=ON -DENABLE_B100=OFF -DENABLE_B200=OFF -DENABLE_USRP1=OFF -DENABLE_USRP2=OFF -DENABLE_X300=OFF -DENABLE_N230=OFF -DENABLE_N300=OFF -DENABLE_N320=OFF -DENABLE_RFNOC=ON ..

(cmake 时把不需要的适配其他型号的东西关掉可以让速度快一点)

$  make -j2

(漫长的等待,可以去干点别的)

$  make install

3、安装GNURadio

编译gnuradio的时候会出现内存不足的情况,可以使用交换分区来解决,就类似电脑上的虚拟内存吧,下面64M×16就是增加了1G的内存分区。

先创建交换分区:

$ dd if=/dev/zero of=/swapfile bs=64M count=16
$ mkswap /swapfile
$ swapon /swapfile

然后编译:

$  cd gnuradio

$  mkdir build

$  cd build

$  cmake ../

$  make

$  make install

(这里我没有开-j2,因为分配的交换分区不太对,编译swig相关的时候开了双核还是会因为内存不足退出,如果时间充足就不开慢慢编,如果想快一点,可以把交换分区开大一点用-j2来编,或者先用-j2来编,报错退出了再用单核继续。。。。)

注意:UHD一定要在GNURadio之前装,不然UHD没办法用,后面使用的时候如果更换了UHD的版本,gnuradio也需要重新编译一下,不然版本会错误。

如果觉得存储空间不算很充裕,编译完成和可以把交换分区删掉:

$ swapoff /swapfile
$ rm /swapfileile

还需要安装gr-ettus,安装方法就跟普通的安装oot模块一样,不详细写了。

用 ? 更新一下fpga的软件版本

$ uhd_images_downloader

可以用uhd_usrp_probe命令来查看一下当前的镜像信息,最下面一部分会显示当前已有的rfnoc模块:

|   |   |       RFNoC blocks on this device:
|   |   |
|   |   |   * Radio_0
|   |   |   * FIFO_0
|   |   |   * Window_0
|   |   |   * FFT_0
|   |   |   * fosphor_0
|   |   |   * FIFO_1
|   |   |   * FIR_0

全部安装完成之后,可以把源码删掉来释放存储空间,之后就可以愉快的开始使用了。

4、使用总结

虽然RFNoc这种开发架构能降低开发难度,但是为了方便增减模块,框架本身比较臃肿,片上资源的利用率不高,而且因为e312本身使用的Z7020芯片的FPGA资源也不是十分充足,就造成能添加的RFNoc模块数量十分有限。上面显示的这些,基本就是e312能同时使用的极限了,如果想用DDC和DUC模块,那么上面的这些模块除了Radio以为就都没办法使用了。

二、交叉编译方法

这个方法上面的链接中已经介绍的比较详细了,就先不展开写了(主要是因为懒= =),过后想到什么了再补充。

如有错误,欢迎指正。

关于Ettus usrp E312 RFNOC环境搭建的详细总结相关推荐

  1. USRP e312 RFnoc环境搭建流程

    USRP e312 RFnoc环境搭建流程 rfnoc模块是gnuradio用来调用烧写在usrp里面的FPGA模块 目录 一. 安装Ubuntu系统 二. 安装uhd+gnuradio+gr-ett ...

  2. DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu)

    DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu) 目录 1.安装nvidia驱动 2.安装CUDA ...

  3. win7中Android开发环境搭建超详细(百度)

    Android系统如火如荼,Android软件开发也相当流行,这里介绍如何一步步完成Android软件开发环境的搭建. 工具/原料 能联网的计算机 Java环境搭建 1 Android软建开发用的是J ...

  4. Faster R-CNN WINDOWS CPU环境搭建(详细版)

    操作系统: bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/tools$ cat /etc/issue Ubuntu 14.04.2 LTS \n \l ...

  5. 《手把手教你》系列基础篇之1-python+ selenium自动化测试-环境搭建(详细)

    1.环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一 ...

  6. 《动手学深度学习》环境搭建全程详细教程 window用户

    一.下载并安装Miniconda 第一步是根据操作系统下载并安装Miniconda,在安装过程中需要勾选"Add Anaconda to the system PATH environmen ...

  7. AD域环境搭建超详细

    AD域环境搭建1/2 工具 环境介绍 Windows Server 2012 的配置 AD域环境搭建2/2(这是第二篇) 文章太长分两篇写了 工具 Vmware.Windows10 环境介绍 Wind ...

  8. 嵌入式和Python(一):python环境搭建的详细步骤

    目录 ● 安装python ① 更新软件列表 ② 安装编译python需要用到的环境 ③ 下载python源码 ④ 解压源码包 ⑤ 配置 ⑥ 编译 ⑦ 安装 ● 建立软连接 说明 ① 删除原来的软连接 ...

  9. 路由器固件模拟环境搭建(超详细)

    路由器固件模拟环境搭建 0X01 想说的话

最新文章

  1. [译][python]ImportError:attempted relative import with no known parent package
  2. Qt多线程中的信号与槽
  3. 微型计算机引脚,微型计算机硬件基础8086引脚.doc
  4. 程序员/设计师能用上的 75 份速查表
  5. UNIX环境编程学习笔记(19)——进程管理之fork 函数的深入学习
  6. 不是每个人都可以坚持!
  7. GCC常用选项使用详解
  8. matlab磁铁模拟,用matlab-模拟环形磁铁的磁场分布
  9. IE 浏览器 js new Date NAN
  10. 【linux】nohup运行守护进程
  11. Dijkstra与Floyd算法
  12. 精选|2018年6月R新包推荐
  13. Twitter数据抓取
  14. SlickEdit介绍
  15. 大学四年的收获及工作感悟
  16. 继屠呦呦后,下一个得诺奖的中国人可能是他?
  17. python写诗代码_牛逼了,用Python写个会做诗的机器人
  18. 量子计算机解泊松方程,试求泊松方程的解.ppt
  19. ALEXA中国网站排名真相调查[内幕调查:出卖Alexa]
  20. 特斯拉电池细节_为什么特斯拉电池日实际上可以辜负炒作

热门文章

  1. 华为海关单据识别服务--基于文字识别技术
  2. c语言ik,C语言入门 - osc_xgq4n4ik的个人空间 - OSCHINA - 中文开源技术交流社区
  3. Springboot毕设项目基于大数据的毕业生去向追踪系统8lrp3java+VUE+Mybatis+Maven+Mysql+sprnig)
  4. 局域网Git服务器和客户端的搭建和简单使用
  5. 【Python】称重系统-异步执行多线程运行threading 模块 Thread 类实现
  6. 红色梦幻背景爱情flash动画
  7. 深圳核芯物联科技有限公司:中国第1家正向自研,量产出货蓝牙AOA高精度定位基站厂家核心团队“三驾马车”介绍
  8. idea本地安装gradle
  9. 适合您业务的四种B2B模型
  10. web 安全漏洞及防范