使用polyspace处理硬件

时间:2015-09-30 06:37:24

标签: c code-analysis

我正在使用Mathworks Polyspace进行CODE分析。我有一个硬件寄存器,我写了一个KEY + MODE并读取寄存器来检查寄存器中的值是否等于MODE。

问题是,Polyspace认为这是“总是失败”,因为我正在编写并连续读取不同的值。

Polyspace中是否有任何选项可以解决此问题。?

1 个答案:

答案 0 :(得分:1)

由于KEY + MODE与MODE不同,Polyspace会在逻辑上将测试your_hardware_register == MODE视为失败(幸运)。

KEY和MODE似乎是您寄存器的位标志。 所以我看到两个选择:

  1. 使用按位AND运算符测试寄存器:if (your_hardware_register & MODE)

  2. 使寄存器易变(通过将限定符volatile添加到寄存器的声明中),因此Polyspace会认为它可以取任何值(包括MODE)。