| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
We need to properly contraint the send/recv_frame_size based on the
minimum MTU of all the down/upstream blocks. This fixes the issue with
E310 tx/rx streaming as it has smaller MTU sizes than the other usrps.
|
|
|
|
|
|
| |
This reverts commit 655b9b0f8e8f8556d434404da51aaccd124bbc3a.
Signed-off-by: Michael West <michael.west@ettus.com>
|
|
|
|
|
| |
This fixes a warning about multiple operators. Doesn't change any
functionality.
|
|
|
|
|
|
|
|
|
|
|
|
| |
A node is not a block, it doesn't use any block definition to
populate the number of input and output ports. This is equivalent to it
have undefined number of input and output ports.
The _find_child_node function relies on node input and output port size.
When port size is not defined we should not follow the active channel;
instead, we need to greedily to find all child node.
Without this change graph_search_test will fail.
Signed-off-by: Trung Tran<trung.tran@ettus.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The configure_flow_control_out function was set to dump any packets
onto the crossbar, which could cause issues on the crossbar and in
downstream blocks. Replacing wil a call to the _flush() function in
the block_ctrl_base parent class, which drops the packets so they do
not get put onto the crossbar.
Signed-off-by: Michael West <michael.west@ettus.com>
|
|
|
|
|
|
|
| |
FC ACK packets are unnecessary on lossless links and degrade overall
performance. This change disables those packets on all lossless links.
Signed-off-by: Michael West <michael.west@ettus.com>
|
|
|
|
|
|
|
| |
Increase frame size from 364 to 508 samples. Reduces overhead. For
some reason yet to be understood, sizes over 508 do not work.
Signed-off-by: michael-west <michael.west@ettus.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Store number of input and ouptput ports from block definition.
- Use number of input and ouptut ports for graph traversal rather
than number of connected blocks.
- Fixes DAC synchronization failure errors when using only one TX
channel on X300.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
| |
Added explicit use of default block controller to remove warnings.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
| |
Changed muxed_zero_copy_if to make each stream buffer the same number
of frames as the underlying transport and changed the size of the
underlying control transport for X300 and MPMD devices to match the
size of the command FIFO in order to prevent starvation of any single
control transport. Added some constants to remove hard coded values.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
| |
Boost changed the macros for endianness identification in 1.69, and the
deprecation warning is a pretty noisy one during compilation. This
abstracts away the Boost macro, so we have two UHD macros,
UHD_BIG_ENDIAN and UHD_LITTLE_ENDIAN. They indicate big and little
endian byte order.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a continuation of 967be2a4. Applying clang-format to files
needed for endianness changes.
$ clang-format -i --style=file \
host/include/uhd/types/endianness.hpp \
host/include/uhd/utils/byteswap.hpp \
host/include/uhd/utils/byteswap.ipp
$ clang-format -i --style=file \
host/lib/convert/convert_with_tables.cpp \
host/lib/transport/chdr.cpp
|
|
|
|
|
|
|
| |
The use of the wildcard channel index, ALL_CHANS, as the default
value for the argument chan in the methods get_{tx/rx}_dc_offset_range
seems inappropriate. A default value of 0 is consistent with other
getters.
|
|
|
|
|
|
| |
Boost changed the lcm() and gcd() functions in Boost 1.67. This creates
portable UHD versions to be used instead. They use various Boost
versions under the hood conditionally.
|
|
|
|
|
| |
Now that we're C++11, we can assume the existence of said symbol and
need no more portability hacks.
|
|
|
|
|
|
|
| |
There was a bug where the number of outstanding ACKS in RFNoC's
ctrl_iface was derived from the number of recv frames, which was wrong.
A number that was too low would effectively break timed commands on
tune, which would, e.g., affect phase alignment.
|
|
|
|
|
|
|
| |
Because our headers do not require C++11, they need a different syntax
(e.g., vector<vector<int> >, note the space between the >). Since some
editors automatically pick up a .clang-format from a parent dir, this
helps when editing headers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Applying formatting changes to all .cpp and .hpp files in the following
directories:
```
find host/examples/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/tests/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/utils/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find mpm/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
```
Also formatted host/include/, except Cpp03 was used as a the language
standard instead of Cpp11.
```
sed -i 's/ Cpp11/ Cpp03/g' .clang-format
find host/include/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
```
Formatting style was designated by the .clang-format file.
|
|
|
|
|
| |
Remove trailing vim hints in header files. This functionality will be
replaced by clang-format.
|
|
|
|
|
| |
Boost changed the includes, and boost/version.hpp was being implicitly
imported. This makes the include explicit.
|
|
|
|
| |
This fixes a warning C4267 which pops up a lot in this file.
|
|
|
|
| |
- Fix variable name in recent graph traversal changes
|
|
|
|
|
|
| |
- Allows different TX sample rates on separate channels
- Prevents stream commands from being issued on wrong ports
- Prevents some receive timeout errors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- correct lmk initialization parameters
- adding missing parameters and consts wrt clock synchronization.
- fixed default master clock rate
- eiscat, ddc: update xml.
- remove references to CORDIC_FREQ in ddc_eiscat
- update readback reg addr in radio_eiscat
- set default spp from 3992 to 3968.
- updated jesd mode sequence initialization
- updating eiscat_radio_ctrl_impl
- add rx_codecs to property tree to display correct ADC chip.
- updated issue_stream_cmd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Factor out the _start_drain helper function, which starts flushing
data out of the block. We should always be disabling flow control after
we write to the flushing registers.
- Always attempt to flush when calling the _flush function. Previously,
we would check if data appeared to be moving when _flush was called,
and only write to the flush registers if data was moving. However, if
data is stuck for some reason (for example, the block ran out of flow
control credits), this check will give us a false positive, and we
won't flush. Instead, we need to always begin the flushing process,
then check those counters, and return once the counters stop changing.
Note: we need to start flushing before disabling flow control so that
the flushed data isn't flooded onto the crossbar.
Co-authored-by: michael-west <michael.west@ettus.com>
Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
|
|
|
|
|
| |
The Rx LO control was always there, but the Tx LO control was not
exposed into the C API.
|
|
|
|
|
| |
+ needed on some older OS / compilers;
+ won't hurt newer ones that already include this header.
|
|
|
|
|
|
| |
+ better compiler compatibility
+ let the compiler figure out the actual function IO signature that
makes sense, instead of forcing float.
|
|
|
|
|
|
|
|
|
| |
- When highband_spur_reduction is enabled, the lowband LO will be disabled
during highband operation. This improves spur performance, but also renders
timed tune commands unusable due to the MPM call.
- A warning is logged if the user uses a timed tune command that would change
the state of the lowband LO, as the MPM call will occur immediately instead
of at the given command time.
|
| |
|
|
|
|
|
| |
The HALT feature allows a command that takes a long time to run to be
stopped while it is in progress.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also updates our coding style file.
Ancient CMake versions required upper-case commands. Later command
names became case-insensitive. Now the preferred style is lower-case.
Run the following shell code (with GNU compliant sed):
cmake --help-command-list | grep -v "cmake version" | while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done > convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \
'*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed
(Make sure the backslashes don't get mangled!)
|
|
|
|
|
|
| |
This makes the noc traffic counter register actually reflect the
registers in the FPGA. The FPGA register names were changed prior to
merging to master, and the ready count registers were removed.
|
|
|
|
|
|
| |
Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com>
Co-authored-by: Alex Williams <alex.williams@ni.com>
Co-authored-by: Derek Kozel <derek.kozel@ni.com>
|
|
|
|
|
| |
- Added note on bad-value-handling (throws uhd::value_error)
- Added notes on what happens on re-init
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The sync_source API is an atomic setter for all sync-related settings.
If supported by the underlying USRP, it can be faster to call
set_sync_source() rather than sequentially calling set_clock_source()
and set_time_source().
If the underlying device does not support the sync_source API, it will
fall back to the set_clock_source() and set_time_source() APIs, making
this change backward-compatiple.
|
| |
|
|
|
|
| |
ALL_MBOARDS and ALL_CHANS will be exported on GCC and MSVC
|
|
|
|
|
|
| |
- Removes operator+ which was ambiguously defined in some cases
- Adds additive concept for time_spec_t and double operators
- Remove unnecessary ctime header
|
|
|
|
| |
Reported-by: Brian Padalino <bpadalino@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes #2484
When building uhd host as a static library on Windows, UHD_API is
defined as __declspec(dllimport). This results in MSVC returning error
C2491 during compilation. Added a preprocessor define UHD_STATIC_LIB
in cmake and made the config headers set UHD_API to empty string when
UHD_STATIC_LIB is defined.
|
|
|
|
|
| |
Change the RB_FIFOSIZE register to store the FIFO size in bytes
instead of log2 of bytes.
|
|
|
|
|
|
|
|
|
|
| |
The C/C++ standards don't define what time_t is, only that it is
arithmetic (and real for C11, and integral for C++). It should not be
used in portable software and is only used as the return value for some
libc calls.
A common definition for time_t is int64_t, so we'll switch to that
permanently in our own APIs. System APIs will of course stick with
time_t.
|
|
|
|
|
|
|
|
|
|
|
| |
For USRPs that support user settings (e.g., B2xx, N230), this will
return an object that will allow peeking and poking user-defined
settings registers.
Mock code example:
auto usrp = multi_usrp::make(...);
auto user_settings_iface = usrp->get_user_settings_iface();
user_settings_iface->poke32(0, 23);
|