这些检查用于验证由Embedded Coder生成的代码®符合这一点CERT C, CWE, ISO/IEC TS 17961(嵌入式编码)安全编码标准。
检查身份证:mathworks.security.CodeGenSettings
确定可能影响安全编码标准遵从性的配置参数。
在此检查的建议下,提高了符合CERT C,CWE,ISO / IEC TS 17961安全编码标准的代码的可能性。
可与嵌入式编码器和金宝app®检查™.
条件 | 推荐办法 |
---|---|
诊断 | |
配置参数INF或NAN块输出被设定为 配置参数INF或NAN块输出被设定为 |
什么时候金宝app支持非谓语形式的数字是:
|
配置参数模型验证块启用被设定为使用本地设置 或让所有 . |
集模型验证块启用到禁用所有 . |
配置参数无向事件广播被设定为没有任何 或警告 . |
集无向事件广播到错误 . |
配置参数包装上溢出被设定为没有任何 . |
集包装上溢出到警告 或错误 . |
硬件实现 | |
配置参数生产硬件signed整数除法被设定为未定义的 . |
集生产硬件signed整数除法到零 或地面 . |
配置参数对有符号整数右移称为算术移位被选中。 | 清晰的对有符号整数右移称为算术移位. |
仿真目标 | |
配置参数MATLAB函数的编译时递归极限设置的值不是0 . |
集MATLAB函数的编译时递归极限到0 . |
配置参数动态内存分配MATLAB函数被选中。 | 清晰的动态内存分配MATLAB函数. |
配置参数为MATLAB函数启用运行时递归被选中。 | 清晰的为MATLAB函数启用运行时递归. |
代码生成 | |
配置参数代码替换库没有设置为没有任何 或Autosar 4.0. . |
集代码替换库到没有任何 或Autosar 4.0. . |
配置参数外部模式被选中。 | 清晰的外部模式. |
配置参数包括评论清除。 |
选择包括评论. |
配置参数MAT-file日志被选中。 | 清晰的MAT-file日志. |
对于基于ert的目标系统,配置参数MATLAB用户评论清除。 | 选择MATLAB用户评论. |
配置参数用签名的按位偏移替换两个功率的乘法被选中。 | 清晰的用签名的按位偏移替换两个功率的乘法. |
对于基于ert的目标系统,配置参数金宝app支持连续时间被选中 | 清晰的金宝app支持连续时间. |
对于基于ert的目标系统,配置参数金宝app支持非内联的S函数被选中 | 清晰的金宝app支持非内联的S函数. |
配置参数系统目标文件设置为基于grt的目标。 | 集系统目标文件到基于ERET的目标。 |
配置参数对模型初始化使用动态内存分配被选中。 | 清晰的对模型初始化使用动态内存分配. 请注意 选择只有当代码接口包装被设定为 |
点击修改所有内容将参数值更改为推荐值。
请注意
当你点击修改所有内容对于具有基于GRT的目标的模型,模型顾问不会更新系统目标文件配置参数到基于ERE的系统。
参数子检查依赖于参数记录的结果D在结果表中。结果是D-Warning,当前值结果表格中的列先决条件约束不符合对于亚丘克斯。更改参数后,重新运行检查。
请注意
某些子检查特定于基于ERE的系统的配置参数。单击时不会更新这些参数修改所有内容除非您将模型更改为基于ert的系统。
安全的编码标准(嵌入式编码)
检查身份证:mathworks.codegen.PCG金宝appSupport
识别代码生成不支持或C/ c++产品代码金宝app部署不推荐的代码块。
此检查部分识别不推荐用于C/ c++产品代码生成的模型构造。为金宝appSimulink Coder™和Embedded Coder,这些模型构造身份出现在表金宝appSimulink块支持金宝app(金宝app仿真软件编码器).
在某些情况下,此检查标记为代码生成支持的标志块。金宝app对于这些块,您应该查看支持笔记中提供的脚注信息,并遵守模型顾问提供的推荐行动。金宝app
按照此检查的建议,可以增加生成符合CERT C、CWE和ISO/IEC TS 17961标准的代码的可能性。
可与嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型或子系统包含不应用于生产代码部署的块。 | 考虑替换结果中列出的块。单击问题项列表中的一个元素以定位条件。 |
模型或子系统包含支持但不推荐用于生产代码生成的块。金宝app | 检查支持说明并坚持Mo金宝appdel Advisor提供的建议操作。 |
你可以:
在您的库模型上运行这个检查。
分析库链接块的内容。
分析屏蔽子系统中的内容。
如果您有一个,则排除块和图表金宝app仿真软件检查许可证。
编辑时检查支持此检查。金宝app
代码生成支持的块和产品下载188bet金宝搏金宝app(金宝app仿真软件编码器)
安全的编码标准(嵌入式编码)
检查身份证:mathworks.security.Block金宝appSupport
识别不建议符合安全编码标准的块。
在此检查的建议下,提高了符合CERT C,CWE,ISO / IEC TS 17961安全编码标准的代码的可能性。
可与嵌入式编码器和金宝app仿真软件检查.
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
编辑时间检查。编辑时检查支持此检查。金宝app
检查身份证:mathworks.misra.AssignmentBlocks
识别赋值没有块参数的块如果没有分配任何输出元素,则执行设置为错误或警告.
这张支票适用于赋值Simulink块库中可用的块金宝app金宝app>数学运作.
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
可与嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型或子系统可能包含赋值没有块参数的未完成数组初始化的块如果没有分配任何输出元素,则执行设置为错误或警告. | 设置块参数如果没有分配任何输出元素,则执行到其中一个推荐值:
|
在图书馆模型上运行。
分析库链接块的内容。
分析隐藏子系统中的内容。
如果你有一个金宝app仿真软件检查许可,允许排除方块和图表。
编辑时间检查。编辑时检查支持此检查。金宝app但是,不支持以下检查条件,因为编辑时检查无法确定是否金宝app赋值块位于迭代器子系统中。
设置块参数如果没有分配任何输出元素,则执行到其中一个推荐值:
错误,如果赋值block不在迭代器子系统中。
警告,如果赋值块位于迭代器子系统中。
MISRA C:2012,第9.1条
ISO/IEC TS 17961: 2013, uninitref
CERT C,EXP33-C
CWE,CWE-908
MISRA - C的指导方针(嵌入式编码)
安全的编码标准(嵌入式编码)
检查身份证:mathworks.misra.SwitchDefault
识别没有默认用例的开关用例表达式。
检查标志模型具有切换壳表达式的对象,而无需默认情况。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
如果块是用Polyspace对齐的,则检查不会标记没有默认情况的块®注解。当您运行支票时,块与理由表列出了没有默认情况的有正当理由的块。
可与嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型对象具有默认情况下的切换盒式表达式。 |
为开关情况块,考虑选择块参数显示默认情况下要明确指定默认情况。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
编辑时间检查。编辑时检查支持此检查。金宝app
MISRA C:2012年,规则16.4
ISO/IEC TS 17961: 2013,开关dflt
CERT C, MSC01-C
CWE CWE - 478
注释代码并隐藏已知或可接受的结果(Polyspace Bug Finder)
安全的编码标准(嵌入式编码)
检查身份证:mathworks.misra.CompliantCGIRConstructions
识别包含对有符号整金宝app数的位操作的Simulink块。
此检查的建议遵循嵌入式应用程序生成MISRA C:2012的可能性,以及符合CERT C和CWE标准的代码。
可与嵌入式编码器和金宝app仿真软件检查.
这个检查需要一个状态流®当模型中使用statflow时,使用许可证。
条件 | 推荐办法 |
---|---|
该模型具有在符号整数上包含位操作的块。 | 考虑使用无符号整数进行位运算。 |
你可以:
检查假设为整个模型生成代码。当子系统构建或导出函数生成代码时,检查可以将产品不正确。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012,规则10.1
CERT C,INT13-C
CWE CWE - 682
安全的编码标准(嵌入式编码)
检查身份证:mathworks.misra.CompareFloatEquality
标识浮点值上的相等和不等操作。
检查标志源导致对浮点值进行相等或不等操作。
此检查的建议遵循嵌入式应用程序生成MISRA C:2012的可能性,以及符合CERT C和CWE标准的代码。
如果使用PolySpace注释,则该检查在浮点值上具有平等或不等式操作的标记块。当您运行支票时,块与理由表列出了具有良好理由的平等或不等式操作的块。
可与嵌入式编码器和金宝app仿真软件检查.
此检查需要Stateflow许可证。
条件 | 推荐办法 |
---|---|
模型对象对浮点值具有平等或不等式操作。 |
考虑使用非浮点值进行平等或不等式操作。 |
你可以:
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012, Dir 1.1
证书C,FLP00-C
CWE CWE - 697
注释代码并隐藏已知或可接受的结果(Polyspace Bug Finder)
安全的编码标准(嵌入式编码)
检查身份证:mathworks.misra.IntegerWordLengths
识别不符合硬件实现设置的整数字长
检查标志整数,其字长度超过通过硬件实现设置允许的位数。
此检查的建议遵循嵌入式应用程序生成MISRA C:2012的可能性,以及符合CERT C和CWE标准的代码。
可与嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型对象包含不符合硬件实现设置的整型字长。 |
更新整数,使其长度不超过允许的位数。在“配置参数”对话框中可以查看允许的位数硬件实现>设备详细信息窗格。 |
你可以:
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012,规则10.1
CERT C,INT13-C
CWE CWE - 682
MISRA - C的指导方针(嵌入式编码)
安全的编码标准(嵌入式编码)
检查身份证:mathworks.sldv.deadlogic
识别在模拟期间处于不活动状态的逻辑。
此检查将识别在模拟期间保持不活动的模型部分。
您可以使用以下命令运行更详细的分析,以标识死逻辑和活动逻辑金宝app仿真软件设计校验™设计错误检测。有关更多信息,请参见检测由不正确的值引起的死亡逻辑(金宝app仿真软件设计验证器).
遵循此检查的建议,将增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性,以及符合CERT C和CWE标准的代码
结果 | 推荐办法 |
---|---|
失败,模型不兼容 | 解决模型不兼容问题。看到的:
还要看看用自动存根处理不兼容性(金宝app仿真软件设计验证器). |
模型中发现的死亡逻辑 | 金宝app仿真软件设计验证器证明了这些决策和条件结果是不可能发生的,并且是模型中的死逻辑。死逻辑也可以是参数指定约束或输入端口指定最小和最大约束的副作用。在极少数情况下,死逻辑可能是由金宝app仿真软件设计验证器.可能有一些目标是该分析没有决定的。要扩展此分析的结果,请使用金宝app仿真软件设计验证器设计错误检测来识别活动逻辑。从Simulink金宝app编辑器中选择应用>设计验证器>设置.在里面配置参数窗口中,从设计验证器>设计错误检测窗格,选择两者死的逻辑和识别活动逻辑. |
模型中未发现的死亡逻辑 | 金宝app仿真软件设计验证器在模型中没有发现死亡逻辑。可能有一些目标是该分析没有决定的。要扩展此分析的结果,请使用金宝app仿真软件设计验证器设计错误检测来识别活动逻辑。从Simulink金宝app编辑器中选择应用>设计验证器>设置.在里面配置参数窗口中,从设计验证器>设计错误检测窗格,选择两者死的逻辑和识别活动逻辑. |
MISRA C:2012:规则2.1
CERT C,MSC07-C
CWE CWE - 561
安全的编码标准(嵌入式编码)
检测由不正确的值引起的死亡逻辑(金宝app仿真软件设计验证器)
设计验证程序窗格:设计错误检测(金宝app仿真软件设计验证器)
检查身份证:mathworks.sldv.integeroverflow
检测模型中的整数或定点数据溢出错误
此检查标识超过整数或定点操作的数据类型范围的操作。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
结果 | 推荐办法 |
---|---|
失败,模型不兼容 | 解决模型不兼容问题。看
还要看看用自动存根处理不兼容性(金宝app仿真软件设计验证器). |
在模型中发现整数溢出 | 要查看导致整数溢出的条件,请创建一个线束模型。当您模拟装具时,输入复制错误。点击查看测试用例在模型顾问报告中。 |
Misra C:2012:指令4.1
ISO/IEC TS 17961: 2013,流入
CERT C,INT30-C和INT32-C
CWE,CWE-190
安全的编码标准(嵌入式编码)
设计错误检测(金宝app仿真软件设计验证器)
检测整数溢出和按零除错误(金宝app仿真软件设计验证器)
检查身份证:mathworks.sldv.divbyzero.
检测模型中按零除的错误
此检查标识模型中的操作,导致返回划分错误。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
结果 | 推荐办法 |
---|---|
失败,模型不兼容 | 解决模型不兼容问题。看
还要看看用自动存根处理不兼容性(金宝app仿真软件设计验证器). |
在模型中发现零零 | 要查看使划分为零的条件,请创建一个线束模型。当您模拟装具时,输入复制错误。点击查看测试用例在模型顾问报告中。 |
Misra C:2012:指令4.1
ISO/IEC TS 17961: 2013,潜水员
CERT C, INT33-C和FLP03-C
CWE CWE - 369
安全的编码标准(嵌入式编码)
设计错误检测(金宝app仿真软件设计验证器)
检测整数溢出和按零除错误(金宝app仿真软件设计验证器)
检查身份证:mathworks.sldv.arraybounds
检测访问数组索引边界外的操作
这个检查在Simulink Design Verifier中检测出超出边界的数组访问实例。金宝app
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
结果 | 推荐办法 |
---|---|
失败,模型不兼容 | 解决模型不兼容问题。看
还要看看用自动存根处理不兼容性(金宝app仿真软件设计验证器). |
在模型中找到的绑定数组访问 | 要查看导致越界数组访问的条件,请创建一个利用模型。当您模拟装具时,输入复制错误。点击查看测试用例在模型顾问报告中。 |
MISRA C:2012:规则18.1
ISO/IEC TS 17961: 2013, invptr
CERT C, ARR30-C
CWE CWE - 118
安全的编码标准(嵌入式编码)
设计错误检测(金宝app仿真软件设计验证器)
检测超出绑定的数组访问错误(金宝app仿真软件设计验证器)
检查身份证:mathworks.sldv.minmax.
检测超过指定的最小值和最大值的信号
该分析检查整个模型和输出端口的中间信号的指定的最小值和最大值(设计范围)。如果分析检测到一个信号超出了设计范围,那么结果将识别出模型中错误发生的位置。
此检查的建议遵循嵌入式应用程序生成MISRA C:2012的可能性,以及符合CERT C和CWE标准的代码。
结果 | 推荐办法 |
---|---|
失败,模型不兼容 | 解决模型不兼容问题。看
还要看看用自动存根处理不兼容性(金宝app仿真软件设计验证器). |
模型中最小值和/或最大值的违背 | 要查看导致违规行为的条件,请创建一个线束模型。当您模拟装具时,输入复制错误。点击查看测试用例在模型顾问报告中。 |
Misra C:2012:指令4.1
CERT C,API00-C
CWE CWE - 628
安全的编码标准(嵌入式编码)
设计范围检查(金宝app仿真软件设计验证器)
检查指定的最小值和最大值违规(金宝app仿真软件设计验证器)