主要内容

MISRA - C: 2012合规信息汇总表

MathWorks®评估由嵌入式编码器生成C代码®从仿真软件金宝app®和Stateflow®与MISRA - C: 2012编码标准。这一努力的结果可在这些合规汇总表。这些表识别:

  • 方法用于获得合规:

    • 兼容:遵守规则/指令是通过坚持代码生成过程,建模指南,或模型顾问检查。适用时,有注解,提供合规方法或操作相关的信息,您可以执行以满足指令或规则。

    • 偏差:规则或指示不兼容。

  • 是否Polyspace®MISRA - C: 2012检查支持规则金宝app或指示。

您可以使用这些表当准备MISRA - C: 2012年合规声明为您的项目每5.3节的要求MISRA - C: 2012指南的使用C语言的关键系统文档。这些表结合发布MISRA - C: 2012规则和指令表。表中的分类是基于附录E MISRA指南确定的自动生成的代码。他们只可以用于强制和所需的类别(不是咨询和可读性类别)。

MISRA - C: 2012主文档

“实现”MISRA - C: 2012指令

指令 类别 合规 Polyspace支金宝app持吗?
1.1 要求

兼容:

是的,部分支持金宝app

“编译和构建“MISRA - C: 2012指令

指令 类别 合规 Polyspace支金宝app持吗?
2.1 要求 兼容的 是的

“需求跟踪”MISRA - C: 2012指令

指令 类别 合规 Polyspace支金宝app持吗?
3.1 要求

兼容:

没有

“代码设计”MISRA - C: 2012指令

指令 类别 合规 Polyspace支金宝app持吗?
4.1 要求

兼容:

是的
4.3 要求

兼容:

没有
4.6 咨询

不适用。

N /一个
4.7 要求

兼容:

偏差:

是的一个
4.10 要求 兼容的 是的
4.11 要求

兼容:

是的
4.12 要求

兼容:

没有

一个Polyspace MISRA - C: 2012检查可能国旗指令4.717.7违反规则(Polyspace Bug仪)用户定义的函数在没有知识是否返回值包含错误信息。

“标准C环境”MISRA - C: 2012规则

规则 类别 合规 Polyspace支金宝app持吗?
1.1 要求 兼容的 是的
1.3 要求 兼容的 是的

“不用的代码”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
2.1 要求

兼容:

是的
2.2 要求 兼容的 是的

“评论”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
3.1 要求

兼容:

是的
3.2 要求 兼容的 是的

“字符集和词法约定”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
4.1 要求 兼容的 是的

“标识符”MISRA - C: 2012条规则

“类型”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
6.1 要求

兼容:

是的
6.2 要求

兼容:

是的

“文字和常量”MISRA - C: 2012条规则

规则 类别一个 合规 Polyspace支金宝app持吗?
7.1 咨询 兼容的 是的
7.2 可读性 兼容的 是的
7.4 要求 兼容的 是的

一个指南建议规则7.1和7.2的要求手动生成的代码。

“声明和定义”MISRA - C: 2012条规则

规则 类别一个 合规 Polyspace支金宝app持吗?
8.1 要求 兼容的 是的
8.2 要求 兼容的 是的
8.3 要求 兼容的 是的
8.6 要求 兼容的 是的
8.8 要求 兼容的 是的
8.10 要求 兼容的 是的
8.12 要求

兼容:

是的
8.14 咨询 兼容的 是的

一个指南建议规则8.14手动生成的代码所必需的。

“初始化”MISRA - C: 2012条规则

规则 类别一个 合规 Polyspace支金宝app持吗?
9.1 强制性的

兼容:

是的
9.4 要求 兼容的 是的
9.5 可读性 兼容的 是的

一个指南建议规则9.5手动生成的代码所必需的。

“基本类型模式”MISRA - C: 2012规则

规则 类别一个 合规 Polyspace支金宝app持吗?
10.2 咨询 兼容的 是的
10.3 咨询 兼容的 是的

一个指南建议规则10.2和10.3的要求手动生成的代码。

“指针类型转换”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
11.1 要求 兼容的 是的
11.2 要求 兼容的 是的
11.3 要求

兼容:

是的
11.6 要求 兼容的 是的
11.7 要求 兼容的 是的
11.8 要求

兼容:

是的

“表达式”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
12.2 要求 兼容的 是的

“副作用”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
13.1 要求 兼容的 是的
13.2 要求

兼容:

是的
13.5 要求

兼容:

偏差:

是的
13.6 强制性的 兼容的 是的

“控制语句表达式”MISRA - C: 2012条规则

规则 类别一个 合规 Polyspace支金宝app持吗?
14.2 可读性

兼容:

是的
14.3 要求

兼容:

是的

一个指南建议规则14.2手动生成的代码所必需的。

“控制流”MISRA - C: 2012条规则

规则 类别一个 合规 Polyspace支金宝app持吗?
15.2 咨询 兼容的 是的
15.3 咨询 兼容的 是的
15.6 要求 兼容的 是的
15.7 可读性 兼容的 是的

一个指南建议规则15.2,15.3和15.7,需要手工生成的代码。

“Switch语句”MISRA - C: 2012条规则

规则 类别一个 合规 Polyspace支金宝app持吗?
16.2 咨询 兼容的 是的
16.3 咨询 兼容的 是的
16.4 咨询

兼容:

是的
16.5 咨询 兼容的 是的
16.6 咨询 兼容的 是的
16.7 咨询 兼容的 是的

一个指南建议规则16.2,16.3,16.4,16.5,16.6和16.7,需要手工生成的代码。

“功能”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
17.1 要求 兼容的 是的
17.2 要求

兼容:

是的
17.3 强制性的 兼容的 是的
17.4 强制性的 兼容的 是的
17.6 强制性的 兼容的 是的

“指针和数组”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
18.1 要求 兼容的 是的
18.2 要求 兼容的 是的
18.3 要求 兼容的 是的
18.6 要求 兼容的 是的
18.7 要求 兼容的 是的
18.8 要求 兼容的 是的

“重叠的存储”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
19.1 强制性的 兼容的 是的

“预处理指令”MISRA - C: 2012规则

规则 类别 合规 Polyspace支金宝app持吗?
20.2 要求 兼容的 是的
20.3 要求 兼容的 是的
20.4 要求 兼容的 是的
20.6 要求 兼容的 是的
20.7 要求 兼容的 是的
20.9 要求 兼容的 是的
20.11 要求 兼容的 是的
20.12 要求 兼容的 是的
20.13 要求 兼容的 是的
20.14 要求 兼容的 是的

“标准库”MISRA - C: 2012条规则

规则 类别 合规 Polyspace支金宝app持吗?
21.1 要求 兼容的 是的
21.2 要求

兼容:

是的
21.3 要求

兼容:

是的
21.4 要求 兼容的 是的
21.5 要求 兼容的 是的
21.6 要求

兼容:

是的
21.7 要求 兼容的 是的
21.8 要求 兼容的 是的
21.9 要求 兼容的 是的
21.10 要求 兼容的 是的
21.11 要求 兼容的 是的
21.12 要求 兼容的 是的

“资源”MISRA - C: 2012规则

规则 类别 合规 Polyspace支金宝app持吗?
22.1 要求 兼容的 是的
22.2 强制性的 兼容的 是的
22.3 要求 兼容的 是的
22.4 强制性的 兼容的 是的
22.5 强制性的 兼容的 是的
22.6 强制性的 兼容的 是的

MISRA - C: 2012修正案1

“代码设计”MISRA - C: 2012修正案1指令

指令 类别 合规 Polyspace支金宝app持吗?
4.14 要求 兼容的 是的

“表达式”MISRA - C: 2012修正案规定

指令 类别 合规 Polyspace支金宝app持吗?
12.5 强制性的 兼容的 是的

“标准库”MISRA - C: 2012修正案规定

指令 类别 合规 Polyspace支金宝app持吗?
21.13 强制性的 兼容的 是的
21.14 要求 兼容的 是的
21.15 要求 兼容的 是的
21.16 要求 兼容的 是的
21.17 强制性的 兼容的 是的
21.18 强制性的 兼容的 是的
21.19 强制性的 兼容的 是的
21.20 强制性的 兼容的 是的

“资源”MISRA - C: 2012年修正案1规则

指令 类别 合规 Polyspace支金宝app持吗?
22.7 要求 兼容的 是的
22.8 要求 兼容的 是的
22.9 要求 兼容的 是的
22.10 要求 兼容的 是的

MISRA - C: 2012修正案2

“标准C环境”MISRA - C: 2012修正案2规则

指令 类别 合规 Polyspace支金宝app持吗?
1.4 要求 兼容的 是的

“标准库”MISRA - C: 2012修正案规定

指令 类别 合规 Polyspace支金宝app持吗?
21.21 要求 兼容的 是的

注解

这些注解是引用的MISRA - C: 2012合规信息汇总表

附注1.1指令

信息嵌入编码器的实现定义的行为是可用的配置运行时环境的选择。编译器文档的范围。

使用的字符集编码管理SavedCharacterEncoding模型参数。有关更多信息,请参见slCharacterEncoding

配置的整数除法模型配置参数对话框中,在硬件实现窗格。有关更多信息,请参见配置运行时环境的选择

嵌入式编码器生成# pragma当用户:

在这两个实例,你负责记录的用途# pragma。有关更多信息,请参见控制数据和函数放置在内存中插入语法

使一代的有:

  1. 选择至少一个这样的模型配置参数:

  2. 创建一个自定义存储类有定义。看到创建存储类通过使用自定义存储类设计师为更多的信息。

如果你的模型使用一个数据类型转换到另一个地方,Polyspace检查显示违反Dir 1.1从模型生成的代码。在这种情况下,违反来自模型不是问题如果你根据MISRA指南文档这个显式转换。

附注3.1 MISRA指令

你可以联系需求模型元素。这些链接是包括在生成的C代码从需求文档,提供可追溯性的模型元素,生成的代码。有关更多信息,请参见查看需求工具箱与模型元素相关的链接连接块和需求(需求工具箱)

附注4.1指令

您可以使用Polyspace错误发现者™运行时错误和识别Polyspace代码验证™证明没有运行时错误。更多信息,请参阅:

金宝app仿真软件设计验证器可以用来检测在模式级别设计错误。有关更多信息,请参见分析模型设计错误(金宝app仿真软件设计验证器)

处理溢出侵犯,明白了处理溢出在仿真软件模型金宝app(定点设计师)

附注4.3指令

嵌入式编码器不直接调用汇编语言代码。您可以添加通过S-functions调用汇编语言函数,代码替换库Stateflow, MATLAB®块。这些调用被记录为调用外部C函数。在这些情况下,你负责封装。

有关更多信息,请参见:

附注4.6指令

嵌入式编码器取代基本数据类型与typedef类型,这是兼容4.6指令。指导方针不是必需的,因为这种行为是违约行为在嵌入式编码器。有关更多信息,请参见取代和重命名数据类型符合编码标准typedef

附注4.11指令

这个指令的要求是通过:

“演示静态输入参数不能采取无效值”。

您可以使用Polyspace代码验证分析参数范围和证明的情况下运行时错误造成的超出范围的值。有关更多信息,请参见采用嵌入式编码器生成Polyspace分析代码运行(Polyspace代码验证)

附注2.1规则

嵌入式编码器不从Stateflow检查用户定义的代码。你必须照顾违反报道。

注释规则5.1,5.2,5.4,5.5,5.6,5.7和5.8

嵌入式编码器是可配置的强加的限制的字符数实现。有关更多信息,请参见最大标识符长度

以确保惟一名称为不同类型的变量(局部作用域的变量,全局作用域的变量,宏,等等),实现一个命名约定。有关更多信息,请参见模型配置参数:代码生成符号

在长标识符的情况下,推荐使用共享的公用事业。有关更多信息,请参见生成共享工具代码

附注8.12规则

嵌入式编码支持使用枚举数据。金宝app该文件用于定义枚举可以手动或自动生成的。文件定义枚举生成的嵌入式编码符合MISRA - C: 2012规则8.12的设计。如果你手动创建定义文件,你负责确保合规。有关更多信息,请参见使用枚举数据在仿真软件模型金宝app