blob: bf4a138ffaf5c8d43085655dd031c660a844e002 [file] [log] [blame]
.. _sparse:
Sparse support
##############
`Sparse <https://kernelnewbies.org/Sparse>`__ 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 `-DSPARSE=y` parameter, e.g.
.. code-block:: shell
west build -d hello -b intel_adsp_cavs25 zephyr/samples/hello_world -- -DSPARSE=y