| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the package path constant with a runtime library path
lookup. The package path is taken to be the parent directory of the
library directory.
When boost >= 1.61 is not available, this maintains the current behavior
of using CMake to set path contants.
Runtime path determination is preferable for making a relocatable
library so that it is not necessary to do string substitution on
relocated binaries (as with, for example, building a conda package).
|
|
|
|
|
|
|
|
|
| |
This adds the python implementation, major and minor version numbers,
and any additional flags (debug, pymalloc, wide unicode) to the
extension module suffix as specified in PEP 3149.
Hat tip to @isuruf:
https://github.com/conda-forge/staged-recipes/pull/10076#discussion_r348721448
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a segmentation fault when trying to use the python module on
OSX when built with conda (unsure why it doesn't arise otherwise).
Instead of linking against the python library, it is proper to not link
against the library and, for OSX builds, add linker options for
"-undefined" and "dynamic_lookup". This is precisely what the CMake
FindPython module does for linking against the Python::Module target.
See https://blog.tim-smith.us/2015/09/python-extension-modules-os-x
and https://bugs.python.org/issue36721
|
|
|
|
|
|
| |
Instead of renaming the library file, this sets the suffix in CMake so
that the filename turns out as desired and also linker references know
the correct name.
|
|
|
|
|
|
|
|
|
|
|
| |
This combines two intertwined changes:
- The scaling_in and scaling_out properties of the DDC now start off
uninitialized. This is to avoid invalid loops of property resolution:
When the block is first initialized in a graph context, the default
values for scaling over-constrain the resolution problem.
- The resolver for samp_rate_in used to prefer changing samp_rate_out,
it now prefers to modify the decimation. This is necessary to allow
calling set_output_rate() before the graph is committed.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
While merging the FPGA code into the UHD codebase, the manual building
process was not modified, resulting in either a link to the website
instead of building the FPGA manual as part of the rest, or by using a
residual submodule.
|
| |
|
| |
|
|
|
|
|
|
| |
Cleans up the print out for the benchmark rate example. Removes
race condition that would cause send and receive initialization
messages to interleave to stdout.
|
|
|
|
|
|
|
|
|
| |
Before, the type was octoclock_eeprom_t, which was incompatible with
mboard_eeprom_t and would cause issues with uhd_usrp_probe.
octoclock_eeprom_t is a superset of mboard_eeprom_t, and there is no
necessity for exposing the additional features to the public. This
harmonizes the Octoclock prop tree with the rest of UHD, and fixes an
issue where the Octoclock won't allow uhd_usrp_probe on master branch.
|
|
|
|
|
|
|
|
| |
The Octoclock host code would send uninitialized memory over the
network, which would be flagged by tools such as Valgrind. This patch
creates a factory function for OctoClock packets that initializes the
memory to zero, defaults the proto version to the OctoClock default, and
can provide a random sequence number if none is given.
|
| |
|
|
|
|
|
|
| |
This allows access to the underlying property tree without having to
refer to the device object. Useful for RFNoC objects, where the device
object is not accessible.
|
| |
|
|
|
|
|
|
| |
This is an API that allows creating mock block controllers, to write
unit tests for block controllers. See rfnoc_blocks_test for an example
how to use them.
|
|
|
|
|
|
| |
_get_log_level() is an internal function that only gets called during
setup, so the logger isn't ready yet. It thus now logs to stderr instead
of the logger.
|
|
|
|
|
|
| |
Logging creates two threads, one for regular logging, and one for
fastpath logging. Now these threads are named using
uhd::set_thread_name()
|
|
|
|
|
|
|
|
|
|
|
| |
On systems like Windows, set_thread_name() is not supported, and would
previously log an error message telling the user that it can't set the
thread name. However, that prevents set_thread_name() to be called
before the logger is being set up, and the logger would like to use this
function.
Since it is obvious to the user if threads can be named or not, the log
message is considered redundant and is removed.
|
| |
|
|
|
|
|
|
| |
The pps_generator module receives a new parameter (PIPELINE) which can
optionally add a register on the output. The default behaviour is
unchanged.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The FPGA codebase was removed from the UHD repository in 2014 to reduce
the size of the repository. However, over the last half-decade, the
split between the repositories has proven more burdensome than it has
been helpful. By merging the FPGA code back, it will be possible to
create atomic commits that touch both FPGA and UHD codebases. Continuous
integration testing is also simplified by merging the repositories,
because it was previously difficult to automatically derive the correct
UHD branch when testing a feature branch on the FPGA repository.
This commit also updates the license files and paths therein.
We are therefore merging the repositories again. Future development for
FPGA code will happen in the same repository as the UHD host code and
MPM code.
== Original Codebase and Rebasing ==
The original FPGA repository will be hosted for the foreseeable future
at its original local location: https://github.com/EttusResearch/fpga/
It can be used for bisecting, reference, and a more detailed history.
The final commit from said repository to be merged here is
05003794e2da61cabf64dd278c45685a7abad7ec. This commit is tagged as
v4.0.0.0-pre-uhd-merge.
If you have changes in the FPGA repository that you want to rebase onto
the UHD repository, simply run the following commands:
- Create a directory to store patches (this should be an empty
directory):
mkdir ~/patches
- Now make sure that your FPGA codebase is based on the same state as
the code that was merged:
cd src/fpga # Or wherever your FPGA code is stored
git rebase v4.0.0.0-pre-uhd-merge
Note: The rebase command may look slightly different depending on what
exactly you're trying to rebase.
- Create a patch set for your changes versus v4.0.0.0-pre-uhd-merge:
git format-patch v4.0.0.0-pre-uhd-merge -o ~/patches
Note: Make sure that only patches are stored in your output directory.
It should otherwise be empty. Make sure that you picked the correct
range of commits, and only commits you wanted to rebase were exported
as patch files.
- Go to the UHD repository and apply the patches:
cd src/uhd # Or wherever your UHD repository is stored
git am --directory fpga ~/patches/*
rm -rf ~/patches # This is for cleanup
== Contributors ==
The following people have contributed mainly to these files (this list
is not complete):
Co-authored-by: Alex Williams <alex.williams@ni.com>
Co-authored-by: Andrej Rode <andrej.rode@ettus.com>
Co-authored-by: Ashish Chaudhari <ashish@ettus.com>
Co-authored-by: Ben Hilburn <ben.hilburn@ettus.com>
Co-authored-by: Ciro Nishiguchi <ciro.nishiguchi@ni.com>
Co-authored-by: Daniel Jepson <daniel.jepson@ni.com>
Co-authored-by: Derek Kozel <derek.kozel@ettus.com>
Co-authored-by: EJ Kreinar <ej@he360.com>
Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com>
Co-authored-by: Ian Buckley <ian.buckley@gmail.com>
Co-authored-by: Jörg Hofrichter <joerg.hofrichter@ni.com>
Co-authored-by: Jon Kiser <jon.kiser@ni.com>
Co-authored-by: Josh Blum <josh@joshknows.com>
Co-authored-by: Jonathon Pendlum <jonathan.pendlum@ettus.com>
Co-authored-by: Martin Braun <martin.braun@ettus.com>
Co-authored-by: Matt Ettus <matt@ettus.com>
Co-authored-by: Michael West <michael.west@ettus.com>
Co-authored-by: Moritz Fischer <moritz.fischer@ettus.com>
Co-authored-by: Nick Foster <nick@ettus.com>
Co-authored-by: Nicolas Cuervo <nicolas.cuervo@ettus.com>
Co-authored-by: Paul Butler <paul.butler@ni.com>
Co-authored-by: Paul David <paul.david@ettus.com>
Co-authored-by: Ryan Marlow <ryan.marlow@ettus.com>
Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
Co-authored-by: Sylvain Munaut <tnt@246tNt.com>
Co-authored-by: Trung Tran <trung.tran@ettus.com>
Co-authored-by: Vidush Vishwanath <vidush.vishwanath@ettus.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
|
|
|
|
|
| |
This removes a comment that refers to Boost smart pointers, which were
removed in UHD.
|
|
|
|
| |
This gives examples of how to use the set_gpio_src() API and friends.
|
|
|
|
| |
This enables the *gpio_src* APIs for the E320 and the E31x.
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new API call to multi_usrp: get_gpio_src_banks(). This
returns a list of GPIO banks who's source can be controlled through the
motherboard controller.
The remaining GPIO source methods' docstrings are improved, to explain
the difference between GPIO banks for set_gpio_attr() and
set_gpio_src(). The former controls the actual value on a GPIO bank, and
the latter who drives it. These can be different banks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The N310 has a feature that allows the front panel GPIOs to be driven by
various sources: The PS, or any of the radio channels. The MPM-based
APIs did not expose any way to change that.
Changes:
- Add MPM APIs to PeripheralManagerBase and n3xx classes
- Improve comments and explanations
- Add host-side hooks into these new APIs in mpmd_mb_controller
- Implement these APIs for N3xx
The N3xx devices will have the option to set the GPIO source to "PS", or
to one of "RF0", "RF1", "RF2", "RF3" (if there are four channels; the
N300 and N320 can only go up to RF1).
Note: The N310 radio does not have separate FP-GPIO banks for channels
0 and 1, which needs to be fixed in a separate commit.
|
|
|
|
| |
And delete the stale code for the DPDK-specific version.
|
|
|
|
|
|
|
|
| |
Args were being parsed in x300_eth_manager::find(), before UHD could
ascertain the args were intended for an X300 device (and not some
other device). This caused unwarranted error messages to print in
some cases. The changes here fix this and prevent the premature
parsing and error messages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The macro MPM_REGISTER_COMPONENT did not work as described: in case
the default enable was set to ON and all dependencies were met, the
module was still not enabled.
Also made the status prints more helpful:
- print the default value,
- print the user override (if one was provided)
- print the resulting VAR = VALUE
- print the override hint only if the user did not
already specify an override
Example of old incorrect behavior:
-- Configuring Mykonos support...
-- Dependency ENABLE_LIBMPM = ON
-- Disabling Mykonos support.
-- Override with -DENABLE_MYKONOS=ON/OFF
Example of new correct behavior (also with changed prints):
-- Configuring Mykonos support...
-- Default value ENABLE_MYKONOS = ON
-- Dependency ENABLE_LIBMPM = ON
-- Enabling Mykonos support (ENABLE_MYKONOS = ON)
-- Override with -DENABLE_MYKONOS=ON/OFF
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cmake script (macro MPM_REGISTER_COMPONENT) has an issue that the default
value is ignored which will be fixed in the following commit.
As a result of this issue, the modules Mykonos, Magnesium, E320 and E300 never
got enabled per default. It was always necessary to use an override
like ENABLE_MYKONOS=ON.
Therefore, change the default enable values so that a fix to MPM_REGISTER_COMPONENT
does not change the current behavior.
|
|
|
|
|
|
| |
Debian uses pkg-config without the libdpdk.so linker script. Use
the pkg-config file to grab the installed libraries and determine
what to link to.
|
|
|
|
|
|
|
|
|
|
| |
Stop the streaming and free the allocated buffers on destruction of the
liberio xport object.
Note: There is a lingering resource leak in the kernel module, this
patch merely orders the resource release correctly.
Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
|
|
|
|
|
| |
If the unittests are invoked with an extra argument -x, an XML report
is generated if the xmlrunner module is installed
|
| |
|
|
|
|
|
|
|
|
| |
Add a subsection to both N310- and N320 specific features to
document the EEPROM flags simliar to as it is done in the E320
documentation.
Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
|
|
|
|
|
| |
Adding more details on uhd_images_downloader usage, as well as some
technical details.
|
|
|
|
|
|
| |
Using default values, the initial delay for tx is larger than the
default timeout of tx_streamer::send. Changing the example to always
specify a timeout in send.
|
|
|
|
|
| |
In some environments _GNU_SOURCE must be defined to use
O_LARGEFILE.
|
|
|
|
|
|
|
| |
The latter causes issues with some builds using `/tmp` as the build directory.
Ref: https://github.com/EttusResearch/uhddev/commit/9517de45709adaea8b574011573a565007149d5d
This commit changed these from `abspath` to `relpath` for Windows needs.
Trying `realpath` as an alternative to both of those.
|
| |
|
| |
|
|
|
|
|
|
| |
-Adds embedded mode tests for E310 and E320 to the
R&D testing procedure.
-Modifies increased rates for 1Gige testing on E320
|
|
|
|
|
|
|
|
|
|
|
| |
Small changes to remove various compiler warnings found in MSVC
- Adding uhd::narrow_cast to verious spots
- wavetable.hpp: all floats literals in the wavetable.
- paths_test: unnecessary character escape
- replay example: remove unreferenced noc_id
- adfXXXX: Fixing qualifiers to match between parent and derived
classes
- rpc, block_id: Removing unused name in try...catch
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Updating FPGA image packages, filesystems, and submodule pointer to
include recent RFNoC changes.
Note: These filesystems have compatible Linux distributions, but do
require an MPM update in order to use the UHD features in this branch.
|
|
|
|
| |
Correct a typo differentiating RX and TX EEPROM paths.
|