blob: 7707ed4217c9e636121b3caddd9d77260699e502 [file] [log] [blame]
.. _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 ``-DSPARSE=y`` parameter, e.g.
.. code-block:: shell
west build -d hello -b intel_adsp_cavs25 zephyr/samples/hello_world -- -DSPARSE=y