| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tool uses the Python API to acquire a snapshot of samples during
a gain or frequency change. It can be used to analyze the settling time
of analog components, as well as the accuracy in time.
It has two combinable ways of analyzing the data: 1) Write it to a file,
or 2) plot the time-domain data.
Example: This would receive several seconds of data from an X3x0 device,
tune to 1 GHz, and then bump the gain by 30 dB after a set amount of
time:
$ rx_settling_time.py -a type=x300 -f 1e9 -g 0 --new-gain 30 --plot
|
| |
|
| |
|
|
|
|
|
|
|
| |
set_time_source() for N310 and N300 can take longer than the default RPC
client timeout of 2 seconds due to dboard initialization.
We need increase this timeout, by using the init timeout value which is
2 minutes.
|
| |
|
|
|
|
|
|
|
| |
This provides a new utility for MPM devices (usrp_update_fs.py), which
goes through all the necessary steps to update a filesystem.
Will trigger a mender update, but the tool is not specific to Mender
and can be changed to use other methods in the future.
|
| |
|
|
|
|
|
|
|
|
| |
The DDC and DUC convert the requested rate to an integer before
selecting a decimated / interpolated rate. This causes the selection to
select a lower rate than requested in some corner cases. The effect is
more pronounced when the input rate of the DDC or the output rate of the
DUC is very small.
|
|
|
|
|
|
| |
After going to 2 radios configuration (FPGA), the channnel value
is passed into this set_rx_antenna now have value either 0 or 1.
We want the mapping of {radio_channel:cpld_channel} = {0:CHAN1} or {1:CHAN2}.
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
The E320 default master clock rate is 16MHz, therefore we need to
reduce the 2 channel receive rate to 8MHz in order to be able to meet
the requested rate.
|
|
|
|
|
| |
N3xx and E320 were registering GPSDIface names as get_*_sensor instead
of just the sensor name. Fixing this to now register the sensor name.
|
|
|
|
|
|
|
| |
This tracks the changes on rx_frontend_gen3.v, which was updated to use
a quarter-rate downconverter instead of a generic CORDIC. The X3x0 FPGA
compat number is incremented as the rx_frontend is part of the device
architecture rather than an RFNoC block.
|
|
|
|
|
|
| |
The master clock rate was getting overwritten while
running the codec loopback self test. So now we save the
current rate before running the test and then reapply it.
|
| |
|
|
|
|
| |
This example will allow an RF->RF loopback using RFNoC devices.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Clipping requested frequency to acceptable ranges in Magnesium TX/RX
set frequency functions.
|
| |
|
| |
|
|
|
|
| |
...that are already handled in udp_zero_copy.
|
|
|
|
|
| |
we're no longer need this. Because there are default send buff size in
each transport type impl.
|
|
|
|
| |
This is used to determine send_buff_size and recv_buff_size
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Adding CMake flag to enable/disable NEON SIMD instructions. This is an
addition to the previous checks (check for NEON headers and checking
the size of pointers), so behavior is unchanged unless users specify
that they do not want to use NEON instructions.
|
|
|
|
|
| |
The test has been fixed in commit 9c7d251b32eb476e11f8fce13a797c4de9abc796
to parse for D and S correctly
|
|
|
|
| |
The gpio devtest passes after this fix. Enabling the test
|
|
|
|
|
|
| |
A value of 0 for dt-compat would cause db-init to use the rev
instead. This fixes the check to be on number of args instead of
the dt-compat value.
|
|
|
|
|
|
|
|
| |
Duration of multichannel benchmark was 50 seconds longer than
intended- a 50ms initialization delay was mistakenly multiplied by
1000.
Fixes e735a63ff9e ("python: Adding Python API benchmark rate")
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Ubuntu splits headers between the arch-specific and noarch directories,
so we were only getting one of them. That caused build failure for DPDK.
This fixes the issue by grabbing a fundamental header from the other
set.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This library makes available a userspace network stack with a
socket-like interface for applications (except the sockets pass around
pointers to buffers and use the buffers directly--It's sockets + a
put/get for buffer management). Supported services are ARP and UDP.
Destinations can be unicast or broadcast. Multicast is not currently
supported.
The implementation has two driver layers. The upper layer runs within
the caller's context. The caller will make requests through lockless
ring buffers (including socket creation and packet transmission), and
the lower layer will implement the requests and provide a response.
Currently, the lower layer runs in a separate I/O thread, and the caller
will block until it receives a response.
The I/O thread's main body is in src/uhd_dpdk_driver.c. You'll find that
all I/O thread functions are prefixed by an underscore, and user thread
functions do not.
src/uhd_dpdk.c is used to initialize uhd-dpdk and bring up the network
interfaces.
src/uhd_dpdk_fops.c and src/uhd_dpdk_udp.c are for network services.
The test is a benchmark of a flow control loop using a certain made-up
protocol with credits and sequence number tracking.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
By default, Boost.ASIO uses 'address_configured' mode for UDP endpoint
resolution, which "only return[s] IPv4 addresses if a non-loopback
IPv4 address is configured for the system". This changes the resolver
to use 'all_matching', which instead returns "all matching IPv6 and
IPv4 addresses".
|
| |
|
|
|
|
|
| |
Users can supply the --test/-T option to test the downloaded archive
before extracting it, using the Python zipfile.testzip() function.
|
|
|
|
|
| |
uhd_images_downloader: Adding INFO message when there is no target
selected to download, as when the user misspells a target name.
|
|
|
|
|
|
|
|
|
|
|
| |
When reloading the Periph Manager (as when we run the image loader),
we need to run the RPCServer `__init__` function in order to reset the
cache of RPC methods. Otherwise, that cache keeps stale references to
old functions (and prevents garbage collection).
It may be possible to reset the method cache some other way, but the
`_methods` attribute of RPCServer is Cython, and doesn't seem to be
accessible in our Python code.
|