【问题标题】:Annotating interrupt handlers and registers in Coverity-scan在 Coverity-scan 中注释中断处理程序和寄存器
【发布时间】:2019-09-13 21:16:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: embedded static-analysis coverity


    【解决方案1】:

    一般来说,您不需要做任何特殊的事情,例如注释来分析中断处理程序。 Coverity 会扫描代码中的每个函数,即使它没有看到对它的显式调用。 Coverity 也理解“易失性”。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2018-02-23
      • 1970-01-01
      相关资源
      最近更新 更多