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
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 west build should be called with a -DSPARSE=y parameter, e.g.
west build -d hello -b intel_adsp_cavs25 zephyr/samples/hello_world -- -DSPARSE=y