Update the Sparse documentation to refer to the official Sparse documentation instead of some random link, which no longeer works. It also fixes an incorrect inline literal usage. Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
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 ``-DSPARSE=y`` parameter, e.g.
|
|
|
|
.. code-block:: shell
|
|
|
|
west build -d hello -b intel_adsp_cavs25 zephyr/samples/hello_world -- -DSPARSE=y
|