在ubuntu下使用指令燒寫固件到usrp N210

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.cpp
b2xx_side_channel.py           octoclock_firmware_burner.cpp  uhd_images_downloader.py.in  usrp_cal_utils.hpp
CMakeLists.txt                 query_gpsdo_sensors.cpp        uhd_usrp_probe.cpp           usrp_e3x0_network_mode.cpp
converter_benchmark.cpp        uhd_cal_rx_iq_balance.cpp      uhd-usrp.rules               usrp_n2xx_net_burner_gui.py
converter_benchmark.py         uhd_cal_tx_dc_offset.cpp       usrp2_card_burner_gui.py     usrp_n2xx_net_burner.py
FastSendDatagramThreshold.reg  uhd_cal_tx_iq_balance.cpp      usrp2_card_burner.py         usrp_n2xx_simple_net_burner.cpp
fx2_init_eeprom.cpp            uhd_config_info.cpp            usrp2_recovery.py            usrp_x3xx_fpga_burner.cpp
latency                        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_r4
Flash size: 4194304
Sector size: 65536

Begin FPGA write: this should take about 1 minute...
Erasing 1572864 bytes at 1572864
Writing image
Verifying data
Read back 1299084 bytes
Success.
Time elapsed: 50.462293 seconds



Begin firmware write: this should take about 1 second...
Erasing 31744 bytes at 3145728
Writing image
Verifying data
Read back 16383 bytes
Success.
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.py
query_gpsdo_sensors       usrp2_card_burner_gui.py  usrp_burn_db_eeprom  usrp_n2xx_net_burner.py
uhd_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開始燒寫鏡像。

發佈了28 篇原創文章 · 獲贊 27 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章