主要内容

本页采用了机器翻译。点击此处可查看英文原文。

检查与数据初始化相关的安全优化设置

mathworks.hism.hisl_0052

依赖关系: Simulink® Check™

用法: 高完整性系统建模

规范: hisl_0052:配置参数 > 优化 > 数据初始化

说明

此检查验证模型优化配置参数是否已设置为最佳状态,以便为安全相关应用程序生成代码。虽然高度优化的代码对于大多数实时系统来说是可取的,但有些优化可能会产生影响安全性的不良副作用。

建议的行动和结果

查看检查中标记出的违规行为以及建议的修复措施。应用更改后,保存模型并重新运行检查分析。

如果您认为标记的违规行为与您的设计无关或不可行,请使用申述按钮提供理由,说明为什么该违规行为与您的设计无关或不可行。

您可以使用修复按钮,让模型顾问修复所有标记的违规行为。本次检查中,模型顾问会配置可能影响安全性的模型代码生成设置。

建模条件建议的操作
已选择抑制为设置为零的根级输入端口和输出端口生成初始化代码的优化。对于与安全相关的代码,您应该显式初始化所有变量。如果您拥有 Embedded Coder® 许可证并且正在使用基于 ERT 的系统目标文件,请清除配置参数 删除根级 I/O 零初始化 (Embedded Coder) 或将参数 ZeroExternalMemoryAtStartup 设置为 on。或者,确认您的编译器符合标准,因为大多数现代 C 编译器会将全局数据初始化为零。或者,集成外部手写代码,显式地将所有 I/O 变量初始化为零。
选择抑制生成内部工作结构(例如设置为零的模块状态和模块输出)初始化代码的优化。对于与安全相关的代码,您应该显式初始化每个变量。如果您拥有 Embedded Coder 许可证并且正在使用基于 ERT 的系统目标文件,请清除配置参数 删除内部数据零初始化 (Embedded Coder) 或将参数 ZeroInternalMemoryAtStartup 设置为 on。或者,确认您的编译器符合标准,因为大多数现代 C 编译器会将全局数据初始化为零。或者,集成外部手写代码,显式地将每个状态变量初始化为零。

子检查取决于模型顾问窗口结果表中标有 D 的子检查结果。

功能和限制

  • 无需模型编译

  • 无法在库模型上运行。

  • 不允许排除模块或图。

  • 没有 Embedded Coder 时,报告中不会高亮显示参数名称。

版本历史记录

在 R2020a 中推出