This patch set updates the usrp to support libusb-1.0. Asynchronous I/O
through libusb is added with fusb_libusb1.*, which is heavily based on
fusb_linux.*. In short, URB's and ioctl calls are replaced with
libusb_transfer structs and native calls. Transfer reaping is handled by
libusb and associated callbacks. I get 32Mb/s on all of my machines using
test_usrp_standard_rx or tx. Due to the API rewrite in 1.0 from 0.12, there
are alot of changes, many are simply name changes.
Known Issues:
Transmit and receive both work, but not at same time
(e.g. usrp_benchmark_usb.py). libusb does not create any internal threads,
so for a single session fusb_libusb1 works in the same manner as
fusb_linux with the callback called at controlled times. With multiple
libusb sessions the callback may occur at any time and threading issues
come into play causing behavior to become undefined. The use of separate
libusb_contexts _might_ solve this issue; I have not had the time to look
into it.
* Public USRP(1) header files are now in their own source directory
and install into $(includedir)/usrp. This was done to avoid name
clashes in the top-level include directory.
Only users who are developing directly to libusrp in C++ are
affected; the GNU Radio C++ and Python APIs are unchanged.
The simple change required by this update is to change:
#include <usrp_*.h>
to #include
<usrp/usrp_*.h>
...in your source code.
* Removed usrp-inband code from tree (put into limbo directory.)
This code has become unmaintained and has started to suffer
from bitrot. A checkpoint tag has been made for anyone still
needing to use it:
http://gnuradio.org/svn/gnuradio/tags/checkpoints/trunk-20090708-pre-usrp-reorg
The plan during the 3.2->3.3 development cycle is to replace the
functions done by the in-band code with extensions to the existing
gr-usrp blocks using the new message passing architecture.
The USRP hardware FPGA code that provided the inband interface
has not been removed; however, it too has become unmaintained and
will likely be rewritten/replaced during the 3.3 timeframe.
The trunk passes distcheck.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11394 221aa14e-8319-0410-a670-987f0aec2ac5
Adds --enable-python option to configure (defaults to yes).
Using --disable-python or --enable-python=no will cause only
C++ API targets to be created and installed.
Several new shared libraries are now created. Where in the past,
the C++ objects of the actual gnuradio blocks that were in a component
were hidden inside their corresponding Python extension modules, these
are now split out into a libgnuradio-foo.so library, and the _foo.so
Python module is linked to that. This has been the way several top-
level components have operated for some time, such as gr-audio-alsa
and gr-usrp and gr-usrp2. This changeset applies that pattern to all
components.
C++ API users can use pkg-config to discover the cflags and libs
parameters needed to include and link against these libraries.
These components have not been tested:
gr-comedi
gr-audio-osx
gr-audio-windows
Passes distcheck.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11150 221aa14e-8319-0410-a670-987f0aec2ac5
The rbfs are built from r11012 and were compiled using Quartus II
Version 7.1 build 178 06/25/2007 SP 1 SJ Web Edition.
ticket:248 was actually fixed in [9485], but the updated rbfs were
never checked in. Ticket:290 wasn't really a bug. The host code has
always been correct.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11014 221aa14e-8319-0410-a670-987f0aec2ac5