# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件

因为我在使用usrpx310时按照中文官网的教程时
[link] (http://www.ettus.com.cn/peixun/28/)
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第1张图片
提示fpga镜像与uhd版本不兼容,需要烧写镜像,因为我使用的是网口,所以我直接运行以下命令进行烧写
"/usr/local/bin/uhd_images_downloader" --agrs="sype=x300,addr=192.168.40.2"
但是在烧写时出现问题,usrp直接掉线,重启后网口也无法连接上电脑,如下图所示,提示超时,然后USRP中端连接(我采用的方式是万兆网口连接到PC并配置了IP信息,之前连接正常),之后重启设备后仍然无法连接。经过检查发现万兆网卡的网口工作正常,USRPX310的两个网口均无法正常工作(指示灯不亮,对插也没反应),如下图提示信息,在咨询后得到的建议是使用JTAG口重新烧写固件。
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第2张图片

9月26日-9.30日调试结果记录:
通过和厂商联系后,获悉的解决方案是用JTAG口对USRP的FPGA镜像重新烧写,有可能可以解决问题。
参照的官网教程:
http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_jtag
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第3张图片

教程上说要采用JTAG烧写,必须使用On-Board JTAG Programmer工具:# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第4张图片
我选择的是Vivado,一开始安装的版本是最新版2018.2,参考了一些教程,考虑到License的缘故,选择了下载免费的web pack版,根据需求选择,然后安装即可(默认路径 /opt/Xilinx), 安装后参考教程:https://blog.csdn.net/wmyan/article/details/78926324

【启动】
方法1.直接使用 启动vivado的指令:

source /opt/Xilinx/Vivado/2017.4/settings64.sh
vivado

方法2.自己创建.sh启动文件(这样便不用每次启动都打这么长的命令了)

touch a.sh 创建一个.sh文件,输入一下内容,并保存;

source /opt/Xilinx/Vivado/2017.4/settings64.sh
vivado

上述的命令可以使用sh文件编辑,这样便不用每次启动都打这么长的命令了。

在命令行下面进入到sh文件的目录,执行./a.sh。
这样便可以成功启动Vivado了。

方法3.打开终端,自动加载环境变量:

[1]. 在终端中,打开.bashrc文件

cd

sudo gedit .bashrc

[2].在该文件末端,添加:

source /opt/Xilinx/Vivado/2017.4/settings64.sh

[3].关闭终端,并在你想创建vivado工程的目录下,右键打开终端,然后执行:

vivado

即可启动vivado

执行烧写命令

然后再执行官网教程的命令后,出现了第一个问题。

执行
cd uhd/fpga-src/usrp3/top/x300 # Assuming this is where the FPGA code is checked out
后,提示找不到该文件夹我发现我安装的uhd文件夹中,fpga-src文件夹是空的,之后我去github官网直接找对应版本的3.10.0.0的FPGA源码下载直接拷贝到fpga-src文件夹中(我找不到教程有讲这一内容的我就自己试了下这个方法),之后运行命令,最后结果还是不成功。好像提示我的vivado版本不支持,仅支持2017.4版本的。

重新安装了vivado,这次选择安装2017.4版本的,又重新更换了UHD驱动的版本,参考教程
https://blog.csdn.net/jipengwang/article/details/79451729
使用第二种方法,这次的安装uhd版本是3.13.0.2,选择对应的uhd镜像下载到目录 /usr/local/share/uhd/images/

重新开始调试,新下载的uhd 3.13.0.2版本的fpga-src文件夹目录下仍然是空的,没办法我只能去官网下载对应的源码,如图所示:
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第5张图片
下载完成后用USRPX310的JTAG口连接上电脑然后,运行以下代码:
$ cd uhd/fpga-src/usrp3/top/x300 # Assuming this is where the FPGA code is checked out
$ source ./setupenv.sh

$ viv_jtag_program /path/to/bitfile.bit
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第6张图片
前二句代码可以正常运行 显示能够找到vivado 2017.4环境,如上图所示。
第三句则需要修改才能运行。/path/to/bitfile.bit部分写法容易误导,写成更容易理解,其实就是也就是我们之前下载的uhd镜像目录的bit文件 /usr/local/share/uhd/images/usrp_x310_fpga_HG.bit
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第7张图片
在教程中找到 viv_jtag_program的用法,发现后面要跟fpga镜像的.bit文件所在的路径,也就是我们之前下载的uhd镜像目录 /usr/local/share/uhd/images/usrp_x310_fpga_HG.bit
烧写成功:
# ubuntu 16.04 vivado2017.4版本用JTAG烧写usrpx310的固件_第8张图片

你可能感兴趣的:(USRP调试)