使用 polyspace 处理硬件
Handling hardware with polyspace
我正在使用 Mathworks Polyspace 进行代码分析。我有一个硬件寄存器,我在其中写入 KEY+MODE 并读取寄存器以检查寄存器中的值是否等于 MODE。
问题是,Polyspace 认为这是 'always fail',因为我在连续的步骤中写入和读取不同的值。
Polyspace 中是否有任何选项可以处理此问题?
由于KEY+MODE不同于MODE,Polyspace逻辑上会认为测试your_hardware_register == MODE
失败(幸好)。
KEY和MODE好像是你寄存器的位标志。
所以我看到两个选项:
使用按位与运算符测试寄存器:if (your_hardware_register & MODE)
使寄存器可变(通过在寄存器声明中添加限定符 volatile),这样 Polyspace 就会认为它可以取任何值(包括 MODE)。
我正在使用 Mathworks Polyspace 进行代码分析。我有一个硬件寄存器,我在其中写入 KEY+MODE 并读取寄存器以检查寄存器中的值是否等于 MODE。
问题是,Polyspace 认为这是 'always fail',因为我在连续的步骤中写入和读取不同的值。
Polyspace 中是否有任何选项可以处理此问题?
由于KEY+MODE不同于MODE,Polyspace逻辑上会认为测试your_hardware_register == MODE
失败(幸好)。
KEY和MODE好像是你寄存器的位标志。 所以我看到两个选项:
使用按位与运算符测试寄存器:
if (your_hardware_register & MODE)
使寄存器可变(通过在寄存器声明中添加限定符 volatile),这样 Polyspace 就会认为它可以取任何值(包括 MODE)。