在ubuntu下使用指令烧写固件到usrp N210

来源:互联网 发布:数据挖掘相关研究生 编辑:程序博客网 时间:2024/04/28 00:21

usrp在windows下用labview可以进行开发,在ubuntu下用的则是gnuradio。

在windows界面下,labview有配套的NI-Driver能够直接把固件烧进usrp,在此不在赘述。主要来说在ubuntu下怎么用指令烧写固件。

首先要确定在ubuntu下已经安装好了UHD+GNU radio,然后确定使用uhd_find_devices 能够发现设备,记住显示的address,接下来会用到,不过一般情况下默认的是192.168.10.2。第三步是要确定images是否完整,一般情况下images需要从官网下载,具体地址是ettus官网images下载地址 ,下载后解压到任意目录都可以,但是前提是你自己要记得解压到了哪里, 然后要找到uhd提供的utils,我的utils文件夹目录如下/uhd/host/utils ,这是因为我直接把uhd装到了根目录下,在utils文件夹中使用ls命令查看包含文件,得到结果如下:

b2xx_fx3_utils.cpp             octoclock_burn_eeprom.cpp      uhd_image_loader.cpp         usrp_burn_mb_eeprom.cppb2xx_side_channel.py           octoclock_firmware_burner.cpp  uhd_images_downloader.py.in  usrp_cal_utils.hppCMakeLists.txt                 query_gpsdo_sensors.cpp        uhd_usrp_probe.cpp           usrp_e3x0_network_mode.cppconverter_benchmark.cpp        uhd_cal_rx_iq_balance.cpp      uhd-usrp.rules               usrp_n2xx_net_burner_gui.pyconverter_benchmark.py         uhd_cal_tx_dc_offset.cpp       usrp2_card_burner_gui.py     usrp_n2xx_net_burner.pyFastSendDatagramThreshold.reg  uhd_cal_tx_iq_balance.cpp      usrp2_card_burner.py         usrp_n2xx_simple_net_burner.cppfx2_init_eeprom.cpp            uhd_config_info.cpp            usrp2_recovery.py            usrp_x3xx_fpga_burner.cpplatency                        uhd_find_devices.cpp           usrp_burn_db_eeprom.cpp

需要特别指出的是,只有.py结尾的文件才可以直接用./命令运行,我使用了usrp_n2xx_net_burner.py来烧写固件,具体的指令如下

./usrp_n2xx_net_burner.py --addr="192.168.10.2" --fw /usr/share/gnuradio/images/usrp_n210_fw.bin  --fpga /usr/share/gnuradio/images/usrp_n210_r4_fpga.bin

请注意空格,否则系统会报错。

烧写成功后的提示如下:

USRP-N2XX found.************************************************************************************************WARNING: This utility will be removed in an upcoming version of UHD. In the future, use         this command:uhd_image_loader --args="type=usrp2,addr=192.168.10.2" \    --fw-path="/usr/share/gnuradio/images/usrp_n210_fw.bin" \    --fpga-path="/usr/share/gnuradio/images/usrp_n210_r4_fpga.bin"************************************************************************************************Hardware type: n210_r4Flash size: 4194304Sector size: 65536Begin FPGA write: this should take about 1 minute...Erasing 1572864 bytes at 1572864Writing imageVerifying dataRead back 1299084 bytesSuccess.Time elapsed: 50.462293 secondsBegin firmware write: this should take about 1 second...Erasing 31744 bytes at 3145728Writing imageVerifying dataRead back 16383 bytesSuccess.Time elapsed: 1.096099 seconds

好了,现在可以开始学习例程啦!



额,最终发现,用这个方法烧进去的固件不可用,usrp并不能自动识别,不过好在,有了之前无数次失败的经验,终于解决了这个问题。

在ubuntu下有一个命令真的是特别好用,就是locate。我使用了locate uhd_images_downloader.py 命令来查找这个文件,找到后按照所示目录进入文件夹,文件夹里的内容有这些:

fx2_init_eeprom           uhd-usrp.rules            usrp2_recovery.py    usrp_n2xx_net_burner_gui.pyquery_gpsdo_sensors       usrp2_card_burner_gui.py  usrp_burn_db_eeprom  usrp_n2xx_net_burner.pyuhd_images_downloader.py  usrp2_card_burner.py      usrp_burn_mb_eeprom  usrp_n2xx_simple_net_burner

运行./uhd_images_downloader.py后就可以开始下载所需要的iamges,接下来运行./usrp_n2xx_net_burner_gui.py,能够看到引导界面,找到所需要的文件,选定设备后点击最下面的按钮,burn images开始烧写镜像。

0 0
原创粉丝点击