27 lines
1.0 KiB
ReStructuredText
27 lines
1.0 KiB
ReStructuredText
.. _sparse:
|
|
|
|
Sparse support
|
|
##############
|
|
|
|
`Sparse <https://www.kernel.org/doc/html/latest/dev-tools/sparse.html>`__
|
|
is a static code analysis tool.
|
|
Apart from performing common code analysis tasks it also supports an
|
|
``address_space`` attribute, which allows introduction of distinct address
|
|
spaces in C code with subsequent verification that pointers to different
|
|
address spaces do not get confused. Additionally it supports a ``force``
|
|
attribute which should be used to cast pointers between different address
|
|
spaces. At the moment Zephyr introduces a single custom address space
|
|
``__cache`` used to identify pointers from the cached address range on the
|
|
Xtensa architecture. This helps identify cases where cached and uncached
|
|
addresses are confused.
|
|
|
|
Running with sparse
|
|
*******************
|
|
|
|
To run a sparse verification build :ref:`west build <west-building>` should be
|
|
called with a ``-DZEPHYR_SCA_VARIANT=sparse`` parameter, e.g.
|
|
|
|
.. code-block:: shell
|
|
|
|
west build -d hello -b intel_adsp/cavs25 zephyr/samples/hello_world -- -DZEPHYR_SCA_VARIANT=sparse
|