模型顾问检查是否符合 MISRA C 编码标准
要检查您的模型或子系统是否能够生成符合 MISRA C:2012 和 MISRA C:2023 标准的代码,请打开模型顾问并运行 按任务 > MISRA C:2023 建模标准 中的检查。
注意
符合 MISRA C:2012 的高完整性系统建模规范及其相关检查也符合 MISRA C:2023。从 R2026a 开始,模型顾问将包含专门引用 MISRA C:2023 的文件夹和检查,同时保持与 MISRA C:2012 的合规性。
执行以下检查需要使用 Embedded Coder® 和 Simulink® Check™。
| 模型顾问检查 | 检查 ID |
|---|---|
| 检查 MISRA C:2023 的配置参数 | mathworks.misra.CodeGenSettings |
| 检查是否存在不建议用于 C/C++ 生产代码部署的模块 | mathworks.codegen.PCGSupport |
| 检查 MISRA C:2023 中不推荐使用的块 | mathworks.misra.BlkSupport |
| 检查不支持的模块名称 | mathworks.misra.BlockNames |
| 检查 Assignment 模块的使用 | mathworks.misra.AssignmentBlocks |
| 检查没有默认情况的 switch case 表达式 | mathworks.misra.SwitchDefault |
| 检查 AUTOSAR 接收器接口是否存在缺失的错误端口 | mathworks.misra.AutosarReceiverInterface |
| 检查有符号整数的按位运算 | mathworks.misra.CompliantCGIRConstructions |
| 检查递归函数调用 | mathworks.misra.RecursionCompliance |
| 检查浮点数值的相等性和不等性运算 | mathworks.misra.CompareFloatEquality |
| 检查模型函数中是否缺失常量限定符 | mathworks.misra.ModelFunctionInterface |
| 检查整数字长 | mathworks.misra.IntegerWordLengths |
mathworks.misra.BusElementNames | |
| 检查没有默认选择项的变体模块 | mathworks.misra.DefaultChoiceVariantChecks |
要访问 MISRA C:2012 和 MISRA C:2023 标准支持的高完整性检查,请转到 按任务 > MISRA C:2023 建模标准 > 高完整性系统 文件夹。
注意
高完整性建模规范旨在确保符合 MISRA C:2012 和 MISRA C:2023 建模的某些方面。
此外,高完整性系统还包括含有基于其功能的高完整性检查的子文件夹,列举如下:
按任务 > MISRA C:2023 建模标准 > 高完整性系统 > 配置
按任务 > MISRA C:2023 建模标准 > 高完整性系统 > MATLAB
| 模型顾问检查 | 检查 ID | 高完整性系统建模规范 |
|---|---|---|
| 检查 MATLAB Function 模块中的 switch 语句 | mathworks.hism.himl_0007 | himl_0007: MATLAB code switch / case / otherwise patterns |
按任务 > MISRA C:2023 建模标准 > 高完整性系统 > 命名
| 模型顾问检查 | 检查 ID | 高完整性系统建模规范 |
|---|---|---|
| 检查模型对象名称 | mathworks.hism.hisl_0032 | hisl_0032: Model element names |
按任务 > MISRA C:2023 建模标准 > 高完整性系统 > Simulink
按任务 > MISRA C:2023 建模标准 > 高完整性系统 > Stateflow
| 模型顾问检查 | 检查 ID | 高完整性系统建模规范 |
|---|---|---|
| 检查 Stateflow 图,确保数据类型正确。 | mathworks.hism.hisf_0015 | hisf_0015: Strong data typing (casting variables and parameters in expressions) |
| 检查 Stateflow 图中的赋值运算 | mathworks.hism.hisf_0065 | hisf_0065: Type cast operations in Stateflow to improve code compliance |
| 查看 Stateflow 图以了解一元运算符。 | mathworks.hism.hisf_0211 | hisf_0211: Protect against use of unary operators in Stateflow Charts to improve code compliance |