主要内容

安全代码检查证书C, CWE, ISO / IEC TS 17961标准

这些检查是用来验证代码生成的嵌入式编码®符合CERT C、CWE和ISO / IEC TS 17961(嵌入式编码)安全的编码标准。

另请参阅

检查安全编码标准的配置参数

检查身份证:mathworks.security.CodeGenSettings

识别可能影响的配置参数符合安全的编码标准。

描述

下面的建议这张支票生成代码的可能性增加,符合CERT C, CWE, ISO / IEC TS 17961安全的编码标准。

嵌入式编码器和可用金宝app®检查™

结果和建议措施

条件 建议的行动
诊断

配置参数正或南块输出被设置为没有一个错误金宝app支持非谓语形式的数字被设置为

配置参数正或南块输出被设置为没有一个金宝app支持非谓语形式的数字被设置为

金宝app支持非谓语形式的数字是:

  • ,设置正或南块输出警告

  • ,设置正或南块输出警告错误

配置参数模型验证块使被设置为使用本地设置让所有 模型验证块使禁用所有
配置参数无向事件广播被设置为没有一个警告 无向事件广播错误
配置参数包装上溢出被设置为没有一个 包装上溢出警告错误
硬件实现
配置参数生产硬件签署了整数的除法轮被设置为未定义的 生产硬件签署了整数的除法轮地板上
配置参数转变对一个带符号整数算术的转变被选中。 清晰的转变对一个带符号整数算术的转变
模拟目标
配置参数编译时递归限制MATLAB函数将一个值以外0 编译时递归限制MATLAB函数0
配置参数动态内存分配在MATLAB函数被选中。 清晰的动态内存分配在MATLAB函数
配置参数启用运行时为MATLAB函数递归被选中。 清晰的启用运行时为MATLAB函数递归
代码生成
配置参数代码替换库没有设置为没有一个AUTOSAR 4.0 代码替换库没有一个AUTOSAR 4.0
配置参数外部模式被选中。 清晰的外部模式

配置参数包括评论清除。

选择包括评论
配置参数MAT-file日志被选中。 清晰的MAT-file日志
ERT-based目标系统,配置参数MATLAB用户评论清除。 选择MATLAB用户评论
配置参数代替乘法与签署两位变化的权力被选中。 清晰的代替乘法与签署两位变化的权力
ERT-based目标系统,配置参数金宝app支持连续时间被选中 清晰的金宝app支持连续时间
ERT-based目标系统,配置参数金宝app支持非内联S-functions被选中 清晰的金宝app支持非内联S-functions
配置参数系统目标文件被设置为一个GRT-based目标。 系统目标文件ERT-based目标。
配置参数使用动态内存分配模型初始化被选中。 清晰的使用动态内存分配模型初始化

请注意

选择只有当代码接口包装被设置为可重用的功能

行动的结果

点击修改所有改变参数值的推荐值。

请注意

当你点击修改所有对于GRT-based目标的模型,该模型顾问不更新系统目标文件配置参数ERT-based系统。

参数subchecks取决于参数的结果指出D在结果表中。当结果是D-Warning,当前值结果表中的列先决条件约束不满足subchecks。改变参数后,重新运行检查。

请注意

有些subchecks ERT-based系统的具体配置参数。当你点击这些参数都不更新修改所有除非你改变ERT-based系统模型。

另请参阅

MISRA - C(嵌入式编码)

检查块不建议用于C / c++代码部署生产

检查身份证:mathworks.codegen.PCG金宝appSupport

识别模块不支持的代码生成或不建议用于C 金宝app/ c++代码部署生产。

描述

这张支票部分确定模型结构,不建议生产C / c++代码生成。为金宝app仿真软件编码器™和嵌入式编码,这些模型构造的身份出现在表中金宝app仿真软件块支持金宝app(金宝app仿真软件编码器)

在某些情况下,这张支票旗帜支持代码生成的块。金宝app对于这些块,您应该检查提供的脚注信息支持笔记和遵守顾问提供的建议行动模型。金宝app

下面的建议这张支票生成代码的可能性增加,符合CERT C, CWE, ISO / IEC TS 17961标准。

嵌入式编码器和可用金宝app仿真软件检查

结果和建议措施

条件 建议的行动
模型或子系统包含块不应该用于生产代码的部署。 考虑替换块中列出的结果。单击列表中的一个元素的可疑物品定位条件。
模型或子系统包含块支持但不建议用于生产代码生成。金宝app 检查支持笔记和坚持顾问金宝app提供的建议行动模型。

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 分析内容块相关的库。

  • 在蒙面子系统分析的内容。

  • 如果你有一个排除块和图表金宝app仿真软件检查许可证。

编辑时间检查

这张支票是由编辑时间检查。金宝app

另请参阅

不建议用于安全检查块的编码标准

检查身份证:mathworks.security.Block金宝appSupport

确定符合安全代码块不推荐标准。

描述

下面的建议这张支票生成代码的可能性增加,符合CERT C, CWE, ISO / IEC TS 17961安全的编码标准。

嵌入式编码器和可用金宝app仿真软件检查

结果和建议措施

条件 建议的行动

查找表块使用三次样条内插或外推方法在模型中被发现或子系统。具体的模块是:

考虑其他的内插和外推方法查找表块。

弃用查找表块被发现在模型或子系统。具体的模块是:

  • 查找表

  • 查找表(二)

考虑更换弃用查找表块。
s函数生成器在模型中被发现或子系统。 考虑更换s函数构建器阻塞与推荐给生产。
从工作空间在模型中被发现或子系统 考虑更换从工作区阻塞与推荐产品。

字符串块模型中被发现或子系统。具体的模块是:

考虑替换字符串块与块推荐给生产。

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 排除块和图表从这个检查如果你有一个金宝app仿真软件检查许可证。

编辑时间检查。这张支票是由编辑时间检查。金宝app

另请参阅

检查使用分配的块

检查身份证:mathworks.misra.AssignmentBlocks

识别赋值块没有块参数行动如果没有分配任何输出元素设置为错误警告

描述

这张支票适用于赋值块,在仿真软件块库可用金宝app金宝app>数学操作

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

嵌入式编码器和可用金宝app仿真软件检查

结果和建议措施

条件 建议的行动
该模型可能包含或子系统赋值数组初始化块与不完整,没有阻止参数行动如果没有分配任何输出元素设置为错误警告

块参数设置行动如果没有分配任何输出元素的推荐值:

  • 错误,如果赋值块不是一个迭代器子系统。

  • 警告,如果赋值在迭代器块子系统。

功能和限制

  • 运行库模型。

  • 分析内容块相关的库。

  • 在蒙面子系统分析的内容。

  • 如果你有一个金宝app仿真软件检查许可证,允许排除块和图表。

编辑时间检查。这张支票是由编辑时间检查。金宝app然而,下面的检查条件不支持因为编辑时间检查不能确定金宝app赋值在迭代器块子系统。

块参数设置行动如果没有分配任何输出元素的推荐值:

  • 错误,如果赋值块不是一个迭代器子系统。

  • 警告,如果赋值在迭代器块子系统。

另请参阅

检查开关情况表情没有违约情况

检查身份证:mathworks.misra.SwitchDefault

确定切换实例表达式没有违约的情况。

描述

检查标志模型对象,切换实例表达式没有违约情况。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

检查不标记块没有Polyspace默认情况下,如果他们是有道理的®注释。当您运行检查,块与理由表列出了块没有违约的情况下,有一个理由。

嵌入式编码器和可用金宝app仿真软件检查

结果和建议措施

条件 建议的行动

模型对象有一个没有默认情况下切换实例表达式。

开关情况块,可以考虑选择块参数显示默认情况下显式地指定一个默认情况下。

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 排除块和图表从这个检查如果你有一个金宝app仿真软件检查许可证。

编辑时间检查。这张支票是由编辑时间检查。金宝app

另请参阅

检查按位操作整数签署

检查身份证:mathworks.misra.CompliantCGIRConstructions

确定模型块包含逐位金宝app操作整数签署。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

嵌入式编码器和可用金宝app仿真软件检查

请注意

Stateflow®如果模型包含Stateflow元素需要许可证。

结果和建议措施

条件 建议的行动
包含逐位操作的模型块签署整数。 考虑使用无符号整数的位操作。

功能和限制

您可以:

  • 检查假设为整个模型生成代码。当代码是由一个子系统构建或导出功能,检查产品不正确的结果。

  • 排除块和图表从这个检查如果你有一个金宝app仿真软件检查许可证。

另请参阅

检查平等和不平等操作浮点值

检查身份证:mathworks.misra.CompareFloatEquality

识别平等和不平等操作浮点值。

描述

检查标志来源导致平等或不平等操作浮点值。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

检查不标记块与平等或不平等操作浮点值Polyspace注释如果他们是合理的。当您运行检查,块与理由表列出了块与平等或不平等的操作有一个理由。

嵌入式编码器和可用金宝app仿真软件检查

请注意

Stateflow许可证需模型包含Stateflow元素。

结果和建议措施

条件 建议的行动

模型对象有一个平等或不平等的操作在一个浮点值。

考虑使用non-floating-point值平等或不平等的操作。

功能和限制

您可以:

  • 排除块和图表从这个检查如果你有一个金宝app仿真软件检查许可证。

另请参阅

检查整字长

检查身份证:mathworks.misra.IntegerWordLengths

确定整数单词长度不符合硬件实现设置

描述

检查标志整数的单词长度超过允许通过硬件实现的比特数设置。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

嵌入式编码器和可用金宝app仿真软件检查

请注意

Stateflow许可证需模型包含Stateflow元素。

结果和建议措施

条件 建议的行动

模型对象包含整数单词长度不符合硬件实现设置。

更新整数,所以它的长度不超过允许的比特数。您可以查看配置参数对话框中允许的比特数,在硬件实现>设备详细信息窗格。

功能和限制

您可以:

  • 排除块和图表从这个检查如果你有一个金宝app仿真软件检查许可证。

另请参阅

检测死逻辑

检查身份证:mathworks.sldv.deadlogic

在模拟识别逻辑保持不活跃。

描述

这张支票识别部分模型,在模拟保持不活跃。

您可以运行一个更详细的分析,表明两个死去的逻辑和活跃逻辑使用金宝app仿真软件设计校验™设计错误检测。有关更多信息,请参见检测死逻辑造成的不正确的值(金宝app仿真软件设计验证器)

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准

结果和建议措施

结果 建议的行动
失败了,模式不兼容

解决模型的不兼容性。看到的:

也看到处理与自动stub不兼容(金宝app仿真软件设计验证器)

死的逻辑模型中找到 金宝app仿真软件设计验证器证明这些决定和条件的结果不能发生还是死了逻辑模型中。死的逻辑也可以限制指定参数的副作用或指定最小值和最大值限制输入端口。在极少数情况下,死亡逻辑可以从近似的结果金宝app仿真软件设计验证器。这有可能获得目标分析没有决定。扩展的结果分析,使用金宝app仿真软件设计验证器设计错误检测来识别活跃逻辑。从模型编辑器,选择金宝app应用程序>设计验证器>设置。在配置参数窗口中,从设计验证器>设计错误检测窗格中,选择两个死的逻辑确定活动的逻辑
死亡中没有逻辑模型 金宝app仿真软件设计验证器没有发现死去的逻辑模型。这有可能获得目标分析没有决定。扩展的结果分析,使用金宝app仿真软件设计验证器设计错误检测来识别活跃逻辑。从模型编辑器,选择金宝app应用程序>设计验证器>设置。在配置参数窗口中,从设计验证器>设计错误检测窗格中,选择两个死的逻辑确定活动的逻辑

另请参阅

检测整数溢出

检查身份证:mathworks.sldv.integeroverflow

检测到整数或定点数据溢出错误在您的模型中

描述

这张支票识别操作超过的数据类型为整数或定点操作范围。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

结果和建议措施

结果 建议的行动
失败了,模式不兼容

解决模型的不兼容性。看到

也看到处理与自动stub不兼容(金宝app仿真软件设计验证器)

整数溢出模型中找到

查看条件导致整数溢出,创建一个利用模型。模拟利用时,输入复制错误。点击查看测试用例在模型中顾问报告。

另请参阅

检测除零

检查身份证:mathworks.sldv.divbyzero

在你的模型检测除零错误

描述

这张支票识别业务模型导致除零错误。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

结果和建议措施

结果 建议的行动
失败了,模式不兼容

解决模型的不兼容性。看到

也看到处理与自动stub不兼容(金宝app仿真软件设计验证器)

除零模型中找到

查看导致除零的条件下,创建一个利用模型。模拟利用时,输入复制错误。点击查看测试用例在模型中顾问报告。

另请参阅

检测绑定数组访问

检查身份证:mathworks.sldv.arraybounds

检测操作,访问数组索引的范围之外

描述

这张支票的检测实例绑定数组访问的仿真软件设计验证器。金宝app

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

结果和建议措施

结果 建议的行动
失败了,模式不兼容

解决模型的不兼容性。看到

也看到处理与自动stub不兼容(金宝app仿真软件设计验证器)

绑定数组访问中发现模型

查看条件导致绑定数组访问,创建一个利用模型。模拟利用时,输入复制错误。点击查看测试用例在模型中顾问报告。

另请参阅

检测指定最小值和最大值

检查身份证:mathworks.sldv.minmax

检测信号超过指定的最小和最大值

描述

这种分析检查指定的最小值和最大值(设计范围)中间信号在整个模型和输出端口。如果分析检测到的信号超出设计范围,结果确定模型中发生了错误。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

结果和建议措施

结果 建议的行动
失败了,模式不兼容

解决模型的不兼容性。看到

也看到处理与自动stub不兼容(金宝app仿真软件设计验证器)

违反最小和/或最大模型中找到

查看条件导致违反,创建一个利用模型。模拟利用时,输入复制错误。点击查看测试用例在模型中顾问报告。

另请参阅