Vitis HLS uses its own version of clang that's different from what's
used by UHD. This change clears the clang-format settings for FPGA
code to be compatible with Vitis.
This adds two tools to the ./tools/ subdirectory:
== clang-formatter.sh ==
This is simply a small shell script that can be executed from the top of
the UHD repository, and it will format all files according the the
.clang-format file. It can be executed as such:
$ CLANG_FORMAT=clang-format-14 ./tools/clang-formatter.sh apply
Specifying a clang-format executable is optional, but note that
clang-format 14.0 should be used.
== run-clang-format.py ==
This is a Python script that is a modified version from
https://github.com/gnuradio/clang-format-lint-action/blob/ \
0b0cb14cf220a070d2a8b2610bd74ad1546252a1/run-clang-format.py
It was modified to add --patch-file option.
Alongside this file is a .clang-format-ignore file, which is sourced
from this script. The command can be run as such:
$ ./tools/run-clang-format.py \
--clang-format-executable clang-format-14 \
--extensions c,cpp,h,hpp,hpp.in,ipp \
-r \
--patch-file format.patch \
/path/to/uhd-repo
It will provide both a nice output summary as well as a patch file that
can be consumed with `patch -p0 < format.patch`.
Some files in the source tree need some treatment before clang-format
can automatically be applied to all files.
This commit adds some 'clang-format off' statements and some manual
pre-formatting in order to not cause havoc when clang-format is applied
to the entire source tree.
This was done by running clang-format-14 --dump-config -style:file in
the UHD source tree, and use the output to update .clang-format. Some of
the newer options were then hand-modified to more closely match the
coding standard of UHD.
Note that this new config file is not compatible with older versions of
clang-format, so clang-format 14.0 is the minimum.
Also, due to the nature of clang-format, there is a possibility that
newer versions of clang-format will produce different output.
This fixes issues caused by e22a2a7395.
That commit tried to consolidate the selection of the endpoint based on branch name
in a single shared location. But due to the order that azure pipelines evaluates
things, the endpoints were being authenticated before the stage variables
were evaluated.
From azure docs:
"Resources are authorized before a stage can start running,
so stage- and job-level variables aren't available. Pipeline-level
variables can be used, but only those variables explicitly included in the pipeline."
The previous cast would take the number of nanoseconds, cast them to an
integer, and then add that to the previous command time. Now, we cast
the nanoseconds duration to a number of seconds, represented as a double,
first.
- Embedded builds are no longer always triggered
- GNU Radio builds require Linux builds
- More HW tests (devtests, RF tests) require a valid condition for them
to run
This tool compares two git branches of UHD and produces a list of tests
required to verify the changeset. The intended use case is to be able to
verify branches that are being created for pull requests.
For example, say a pull requests is based on a branch that only modifies
files in host/lib/usrp/x300. Then it is only necessary to run hardware
tests on X300, running tests on other USRPs would be a waste of time.
This commit contains two files: The utility itself (a Python script),
and a rule file (a YAML file). The former uses the latter to map
a changeset to a list of tests.
The way how self-cal gets triggered and what can be done with it has
changed during the development of X440. This reflects these changes
and explains them.
This removes the ADC self-cal during X4xx bootup and when a new FPGA
bitfile was loaded because we now do this when the clocking
configuration was changed. This improves RF performance for X410 and
is required for the flexible sample rates of X440.
While the self-cal that is executed within a UHD session already had the
user-configurable parameters, this was not yet the case for this
stand-alone utility. This commit adds this.
With DPDK 21.11 installed at a non-standard path, the UHD build process failed
to find its shared libraries (librte_*.so) while linking libuhd.so. The
-l flags were passed to the linker as bare filenames, but the -L flag was not
passed to specify the library search path (although that information was
provided to cmake by pkg-config). This patch uses the full path to DPDK
libraries at link time instead of bare filenames, which fixes this case.
- Mention J400 and the ability to do GPIO on there
- Provide some examples on auto-MCR and its effects
- Add comments that changing MCR has ill effects on time synchronization