主要内容

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

检查 MISRA C:2023 的配置参数

mathworks.misra.CodeGenSettings

依赖关系: Embedded Coder®Simulink® Check™

用法: C/C++ 代码生成 和 高完整性系统建模

规范: hisl_0060:提高 MISRA C 合规性的配置参数

说明

使用此检查来识别可能影响 MISRA C:2012 和 MISRA C:2023 合规代码生成的配置参数。遵循此检查的建议可以提高为嵌入式应用程序生成符合 MISRA C:2012 和 MISRA C:2023 标准的代码的可能性。

建议的行动和结果

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

您可以使用修复按钮,让模型顾问修复所有标记的违规行为。进行此项检查时,模型顾问将参数值更改为推荐值。

注意

对于以 GRT 为基础的目标模型,模型顾问不会将系统目标文件配置参数更新为以 ERT 为基础的系统。

表格列出了根据其在“配置参数”对话框中的位置而推荐的参数设置。

数学和数据类型

建模条件建议的操作

模型配置参数使用除法进行定点净斜率计算未设置为 on只对整数的倒数使用除法

将模型配置参数使用除法进行定点净斜率计算设置为 on只对整数的倒数使用除法

模型配置参数模块输出为 Inf 或 NaN 设置为错误,并且支持: 非有限数设置为 on

模型配置参数模块输出为 Inf 或 NaN 设置为支持: 非有限数设置为off

支持: 非有限数 (Simulink Coder)设置为 on 时,将模块输出为 Inf 或 NaN 设置为警告

支持: 非有限数 (Simulink Coder)设置为 off 时,将模块输出为 Inf 或 NaN 设置为警告错误

模型配置参数 Model Verification 模块启用设置为使用局部设置全部启用将模型配置参数 Model Verification 模块启用设置为全部禁用
模型配置参数无向事件广播设置为警告将模型配置参数无向事件广播设置为错误
模型配置参数溢出时绕回设置为将模型配置参数溢出时绕回设置为警告错误

硬件实现

建模条件建议的操作
模型配置参数有符号整数除法舍入方式设置为未定义将模型配置参数有符号整数除法舍入方式设置为向零向下舍入
已选择模型配置参数采用算术移位方式右移有符号整数清除模型配置参数采用算术移位方式右移有符号整数

仿真目标

建模条件建议的操作
模型配置参数 MATLAB 函数的编译时递归限制设置为除 0 之外的值。将模型配置参数 MATLAB 函数的编译时递归限制设置为 0
已选择模型配置参数在 MATLAB 函数中使用动态内存分配清除模型配置参数在 MATLAB 函数中使用动态内存分配
已选择模型配置参数为 MATLAB 函数启用运行时递归清除模型配置参数为 MATLAB 函数启用运行时递归

代码生成

建模条件建议的操作

当选择以下任一参数时,模型配置参数位字段声明符类型设定符将设置为 uchar_T

  • 将布尔数据打包到位字段中

  • 使用位集来存储状态配置

  • 使用位集来存储布尔数据

将模型配置参数位字段声明符类型设定符 (Embedded Coder)设置为 uint_T
模型配置参数强制转换模式未设置为符合标准将模型配置参数强制转换模式 (Embedded Coder)设置为符合标准
模型配置参数代码替换库未设置为AUTOSAR 4.x

将模型配置参数代码替换库 (Simulink Coder)设置为AUTOSAR 4.x

已选择模型配置参数外部模式清除模型配置参数外部模式 (Simulink Coder)
已选择模型配置参数生成共享常量清除模型配置参数生成共享常量。有关详细信息,请参阅 模型配置参数:代码生成接口 (Simulink Coder) 中的 GenerateSharedConstants

模型配置参数包括注释已清除。

选择模型配置参数包括注释 (Simulink Coder)
已选择模型配置参数 MAT 文件记录

清除模型配置参数 MAT 文件记录 (Simulink Coder)

对于基于 ERT 的目标系统,配置参数 MATLAB 用户注释将被清除。选择模型配置参数 MATLAB 用户注释 (Embedded Coder)
未提供配置参数最大标识符长度的值。根据您实现的限制,设置模型配置参数最大标识符长度 (Simulink Coder)的值。默认值为 31
模型配置参数圆括号层级未设置为标准 (按标准规范使用圆括号)最多 (用圆括号指定优先级)将模型配置参数圆括号层级 (Embedded Coder)设置为标准 (按标准规范使用圆括号)最多 (用圆括号指定优先级)

对于基于 ERT 的目标系统,当文件打包格式设置为紧凑紧凑 (具有单独的数据文件) 时,配置参数在函数声明中保留 static 关键字将被清除。

选择模型配置参数在函数声明中保留 static 关键字 (Embedded Coder)
已选择模型配置参数用有符号按位移位替代乘以 2 的幂的运算清除模型配置参数用有符号按位移位替代乘以 2 的幂的运算 (Embedded Coder)
模型配置参数共享代码放置设置为自动

将模型配置参数共享代码放置 (Simulink Coder)设置为共享位置

对于基于 ERT 的目标系统,选择配置参数支持: 连续时间清除模型配置参数支持: 连续时间 (Embedded Coder)
对于基于 ERT 的目标系统,选择配置参数支持非内联 S-Function清除模型配置参数支持非内联 S-Function (Embedded Coder)
已选择模型配置参数禁止为 switch 语句生成不可达的默认 case清除模型配置参数禁止为 switch 语句生成不可达的默认 case (Embedded Coder)
模型配置参数系统生成的标识符设置为经典将模型配置参数系统生成的标识符 (Embedded Coder)设置为缩短
模型配置参数系统目标文件设置为基于 GRT 的目标。将模型配置参数系统目标文件 (Simulink Coder)设置为基于 ERT 的目标。
代码接口打包设置为可重用函数时,选择模型配置参数使用动态内存分配进行模型初始化

清除模型配置参数使用动态内存分配进行模型初始化 (Embedded Coder)

参数子检查取决于结果表中标记为 D 的参数的结果。当结果状态为 D-Warning 时,结果表中的当前值列对于子检查读取 Prerequisite constraint not met。更改参数后,请重新运行检查。

注意

某些子检查是针对基于 ERT 的系统的配置参数特有的。除非您将模型更改为基于 ERT 的系统,否则使用修复按钮时这些参数不会更新。

功能和限制

  • 不审查引用的模型

  • 无需模型编译

版本历史记录

在 R2017b 中推出