📄 readme_osx
字号:
USRP Darwin Fast USB ChangesVersion 0.2 of 2006-04-27Michael Dickens <mdickens @at@ nd .dot. edu>The files included in this archive are:circular_buffer.hcircular_linked_list.hdarwin_libusb.hfusb_darwin.ccfusb_darwin.hmld_threads.hThese files allow GNURadio code for Darwin / MaxOS X to talk to theUSRP via USB 2.0 at rates up to around 30 Mega-Bytes/sec (MBps), upfrom 4-8 MBps without the changes.I implemented the buffering myself; there are probably GR buffersavailable which would do the work but as this is "beta" software it'sa good place to start. Speed improvements are made by portingLIBUSB's non-true async bulk read and write functions into USRP's"fusb", and upgrading them to handle -true- async transfers.Unfortunately, the easiest way to do this is to spawn a thread or 2 tohandle the "async" part of the transfers. This implementation usesDarwin's pthreads to do the work for mutexes, conditions, and threads.Previous implementations (0.1 and before) used "omni_threads" asprovided by gnuradio-core, which caused issues with compiling andexecution ... I'm glad that this is no longer the case.As far as I have tested, there is no way to improve the throughput to32+ MBps without moving into Darwin's "port"s ... a kernel-level datatransport method with a user/application layer for USB-specificfunctions. Unfortunately, Apple's documentation for these "port"s isminimal; I have learned more from reading the Darwin source code< http://darwinsource.opendarwin.org/ > than by reading Apple'sdocuments! This would also require -not- using LIBUSB, of which theremoval from the rest of the USRP code would be potentially tedious.If you run into issues either compiling or testing the USRP onOSX, please send me a note.(1) Go through the bootstrap, configure, compile, and install asusual (e.g. see < http://www.nd.edu/~mdickens/GNURadio/ > for myusual).(2) from .../usrp/host/apps : run the scripts++++++++++++++++./test_usrp_standard_tx./test_usrp_standard_rx++++++++++++++++For -all- systems I've tested on thus far, both of these returnexactly 41 overruns / underruns, and -most- systems start out with astalled pipe. This stall comes in a usb_control function call toLIBUSB; one would have to change the LIBUSB code to handle this issue.(3) from gr-build/gnuradio-examples/python/usrp :++++++++++++++++./benchmark_usb.py++++++++++++++++(4) If you get to here, the try doing the FM receiver (gui or not).If that sounds correct, then the USB is working. Yay!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -