Some debian control files (e.g. "control") may need to be adopted
for specific Debian/Ubuntu version being used. However, instead of
copying the whole debian directory for each Debian/Ubuntu version,
support having a version-specific ending (e.g. ".noble") which
takes preference over the default file.
Example: when building for "noble", the file "control.noble" will
be copied to "control" before executing the debuild commands.
This will cast str to unsigned long if size_t is
of same size, otherwise unsigned long long
Co-authored-by: Grant Meyerhoff <grant.meyerhoff@emerson.com>
-merged device specific procedures into one section
-updated table to include x4xx and n3xx
-added usage of EXTRA_DEV_ARGS using make test_<devtest-pattern>
-extended devtest table with more devices
- Adds calling pnpdriver util to apply all installed inf win drivers
- Change installer to be aware of the target proc architecture of
installed files. This reults into a 64-bit installer to default
installing registry keys into the 64-bit registry hive.
- Extended file info of installer executable to incl. publisher and
copyright and make installer binary version match version of
deployed binaries.
- Add custom icon to installer and uninstaller binaries as well as
ARP entry.
This adds uhdlib/asio.hpp, which makes it possible for UHD to use either
Boost.Asio or regular asio. Note that for using regular asio, additional
CMake changes are required, which are not part of this changeset, and
all C++ sources would need to reference namespace asio:: instead of
boost::asio::, which is also not part of this changeset.
However, the boost/asio.hpp include statement is now limited to a single
location, which makes it possible to set custom include preferences for
this file. Here, we allow gcc builds to allow some warnings when
including Boost.Asio.
This adds support for the OBX daughterboard, a new daughterboard
compatible with the USRP X3x0 series.
- Includes both UHD and CPLD codebases
- Includes CI hooks
Co-authored-by: Javier Valenzuela <javier.valenzuela@emerson.com>
With this commit the host enables retranmit capabilities to tx
streamer. This can be used for host to FPGA transmission that
are real time depended but need absolut reliability. The main
use case will be transmissions from host to replay block. The
current implementation supports only single channel transmissions.
To enable retransmissions the streamer has to change the op mode
using the new STREAM_MODE_STOP_ON_SEQ_ERROR. The streamer will
check whether the FPGA reports that this mode was enabled before
proceeding. When enabled on the FPGA the FPGA will reject data
from the host when it detects a sequence error. Only after a new
initialize stream command is sent the host can transfer more data
to the FPGA. When the tx streamer detects a sequence error from the
FPGA it will stop the current send command and return the samples
sent so far. Note: This might be more than the FPGA has actually
processed. It is up to the user logic to determine if and where
the transmission has to restart (e.g. query the replay block for
arrived samples). If the tx streamer calls send again the
reinitialization is triggered automatically.
Add a new play command that accepts a size_t for iterations. This
allows arbritrary iteration on the signal as well as continous
play (max value of iteration). Use the CONTINOUS_PLAY command for
that.
The old play command (using bool) is deprecated but stays in
for backward capabilities.
If the HDL sources for RFNoC get installed during installation (i.e., by
providing -DENABLE_RFNOC_DEV), then rfnoc_image_builder will default to
using the installed HDL sources when building bitfiles, unless the CWD
is in a UHD repository or the --fpga-path argument is provided (same
behaviour as before).
With -DENABLE_RFNOC_DEV=ON (the default is OFF), the HDL sources for
building RFNoC blocks and RFNoC images through rfnoc_image_builder are
now also installed into $PREFIX/share/uhd/rfnoc/fpga/usrp3. This re-uses
the existing share/uhd/rfnoc/fpga directory.
This commit also includes a Python script that copies the fpga/usrp3
directory into a staging directory inside the build dir. The
installation happens from the staging directory, not the fpga/usrp3
directory itself. This allows us to filter the usrp3 source dir without
having to use highly verbose CMake for that.
The uhd-host Debian install file is also modified so that the RFNoC
sources are not packaged into the uhd-host package.
This commit fixes two issues:
1. Unreliable SYSREF capture mechanism from SYSREF to AXI clock
domain. This clock domain crossing is removed by moving the
state machine to the PLL reference clock domain.
2. The reset processs execution time is not static.
Aligning between devices is now done using a fixed number of
SYSREF edges before reenabling the SYSREF signal in the RFDC
to trigger the NCO reset.
The mock RFNoC nodes that were previously only part of UHD are now part
of the public headers (however, the mock nodes are not compiled as part
of UHD). This makes them available to out-of-tree RFNoC modules that
want to write unit tests for their block controllers.
This class is only meant for special use cases, but it is useful for
unit tests. In order to make unit tests available for everyone, we
include this file in the public headers, even if it's potentially
dangerous.
This adds a publicly available header (uhd/rfnoc/detail/graph.hpp) which
has the same API as uhd::rfnoc::detail::graph_t before, but without any
private implementation details leaked.
The main reason for this change is to enable RFNoC OOT modules to
implement their own unit tests on block controllers. The majority of the
files changed are in order to change the include path or other
naming-related changes.
A note on host/lib/rfnoc/graph.cpp: The unit test for this file requires
access to non-public attributes and methods, so we add defines to
conditionally compile private symbols only.