Back to Zephyr

Sparse support

doc/develop/sca/sparse.rst

4.4.01.0 KB
Original Source

.. _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