用polyspace处理硬件



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

问题是,Polyspace认为这是"总是失败",因为我在连续的步骤中编写和读取不同的值。

在Polyspace中有任何选项来处理这个问题吗?

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

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

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

  2. 使寄存器易失性(通过将限定符volatile添加到寄存器的声明中),因此Polyspace将考虑它可以接受任何值(包括MODE)。

最新更新