在 Coverity 扫描中注释中断处理程序和寄存器



我正在嵌入式系统项目(C99语言(中设置Coverity-Scan。代码库使用中断和系统外设寄存器(与大多数嵌入式软件一样(。我不知道它是否忽略了代码路径,这些路径是中断处理程序或易失性设备寄存器更改的结果。

我是否需要注释中断处理程序以标记它们随时被调用?如果是这样,如何?

设备寄存器通过易失性指针访问。我是否需要添加一些注释来向分析器建议寄存器可以包含哪些值范围,或者它们实际上是可变的?

通常,您不需要执行任何特殊操作,例如注释来分析中断处理程序。 Coverity 扫描代码中的每个函数,即使它没有看到对它的显式调用。 Coverity也理解"易失性"。

可以告知分析变量值的约束。 查看分析手册中的"建模"。 但是,您可能不需要这样做,除非您由于不可行的值而看到误报。

更一般地说,如果您担心 Coverity 缺少结果,我建议您故意插入一些类似于手册中示例的错误,看看分析是否捕获了它们。 如果没有,您可以尝试在此处询问具体示例或联系他们的支持团队。

(披露:我曾经为Coverity/Synopsys工作。

最新更新