Embedded 在Coverity scan中注释中断处理程序和寄存器

Embedded 在Coverity scan中注释中断处理程序和寄存器,embedded,static-analysis,coverity,Embedded,Static Analysis,Coverity,我正在一个嵌入式系统项目(C99语言)中设置Coverity Scan。代码库利用中断和系统外围寄存器(与大多数嵌入式软件一样)。我不知道它是否忽略了中断处理程序或易失性设备寄存器更改导致的代码路径 我是否需要对中断处理程序进行注释,以标记它们随时都可以被调用?如果是,怎么做 通过易失性指针访问设备寄存器。是否需要添加一些注释,以向分析器建议寄存器可以包含的值的范围,或者它们实际上是易失性的?通常,您不需要执行任何特殊操作,例如注释来分析中断处理程序。Coverity扫描代码中的每个函数,即使它

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

我是否需要对中断处理程序进行注释,以标记它们随时都可以被调用?如果是,怎么做


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

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

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

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

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