检测死逻辑
检查 ID:mathworks.sldv.deadlogic
识别在仿真中保持非活动的逻辑。
描述
此项检查可识别模型中在仿真中保持非活动的部分。
您可以运行更详细的分析,使用 Simulink® Design Verifier™ 设计错误检测来识别死逻辑和活动逻辑。有关详细信息,请参阅 检测由错误值导致的死逻辑 (Simulink Design Verifier)。
遵循此检查的建议可增加为嵌入式应用程序生成符合 MISRA C:2012 的代码以及符合 CERT C 和 CWE 标准的代码的可能性
结果和建议的操作
| 结果 | 建议的操作 |
|---|---|
| 失败,模型不兼容 | 解决模型不兼容问题。请参阅:
另请参阅使用自动插桩处理不兼容问题 (Simulink Design Verifier)。 |
| 模型中发现死逻辑 | Simulink Design Verifier 证明了这些决策和条件结果不可能发生并且是模型中的死逻辑。死逻辑也可能是对参数指定约束或对输入端口指定最小和最大约束的副作用。在极少数情况下,Simulink Design Verifier 执行的近似计算可能会导致死逻辑。可能存在本次分析未确定的目标。为了扩展此分析的结果,请使用 Simulink Design Verifier 设计错误检测来识别活动逻辑。从 Simulink 编辑器中选择 App > Design Verifier > 设置。在配置参数窗格的 Design Verifier > 设计错误检测 窗格中,选择死逻辑(部分) 或将 DVDetectDeadLogic 和 DVDetectActiveLogic 设置为 on。 |
| 模型中未发现死逻辑 | Simulink Design Verifier 未在模型中发现死逻辑。可能存在本次分析未确定的目标。为了扩展此分析的结果,请使用 Simulink Design Verifier 设计错误检测来识别活动逻辑。从 Simulink 编辑器中选择 App > Design Verifier > 设置。在配置参数窗格的 Design Verifier > 设计错误检测 窗格中,选择死逻辑(部分) 或将 DVDetectDeadLogic 和 DVDetectActiveLogic 设置为 on。 |
功能和限制
无法在库模型上运行。
可以分析封装子系统中的内容。默认情况下,输入参数 Look inside masks 设置为
all。可以分析库链接模块的内容。默认情况下,输入参数 Follow links 设置为
on。不支持排除项。
另请参阅
MISRA C:2012:Rule 2.1
CERT C, MSC07-C
CWE, CWE-561
安全编码 (Embedded Coder)
检测由错误值导致的死逻辑 (Simulink Design Verifier)
Design Verifier 窗格:设计错误检测 (Simulink Design Verifier)
hisl_0101: Prevent operations that result in dead logic to improve code compliance