MISRA简介

本文介绍了MISRA,一个专注于汽车工业软件可靠性和安全的非营利组织,及其在嵌入式系统软件开发中的应用。文章详细讲述了MISRA的起源、规则、与Coverity静态代码分析工具的整合,以及在安全关键应用中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

官网:https://misra.org.uk/
主要介绍了MISRA是什么,起源,MISRA C, MISRA C++,MISRA应用场景,以及和静态代码扫描工具Coverity的关系。以下内容来自于官网主页及F&Q https://misra.org.uk/faqs/,以及chatgpt3.5的回答,内容更新截止时间为文章更新时间。以下内容默认来自于官网翻译。来自chatgpt3.5回答部分皆有注明。用于个人学习记录。

MISRA是什么

官网描述:
MISRA为嵌入式控制系统和独立软件的安全应用提供了世界领先的最佳实践指南。
MISRA是制造商、组件供应商、工程咨询公司和学术界之间的合作项目,旨在研究和推广开发与安全和安全相关的电子系统和其他软件密集型应用的最佳实践。
为此,MISRA开展研究项目并发布文件,为工程师和管理层提供可访问的信息。
MISRA还通过支持和举办技术活动,促进从业人员之间的信息传播和交流。

chatgpt3.5回答:
MISRA(Motor Industry Software Reliability Association,汽车工业软件可靠性协会) 是一个非营利组织,致力于提高嵌入式系统软件的可靠性和安全性。MISRA的主要目标是通过制定和推广软件开发标准来提高软件质量,尤其是在汽车、航空、医疗和铁路等领域的安全关键应用中。
MISRA标准包括一系列的指南和规则,它们旨在规范C和C++编程语言的使用,以确保软件的可靠性、安全性和可维护性。这些规则涵盖了诸如代码布局、数据类型、控制流程、错误处理、内存管理、函数接口等方面,以及一些特定的编程实践,如禁止使用某些C语言特性或函数库。
MISRA标准已经成为了一些行业的标准要求。例如,汽车行业的ISO 26262安全标准要求符合MISRA C标准的软件开发过程。
需要注意的是,MISRA标准并不是普遍适用的编程标准,也不是一种通用的最佳实践。它是为了特定领域的安全关键应用而设计的,因此在其他领域的应用可能需要根据实际情况进行适当的修改和调整。

MISRA的起源

MISRA 始于 1990 年代初,是英国政府“SafeIT”研究计划的一个项目,并为在道路车辆电子系统中创建嵌入式软件制定了指南。1994年11月,发布了“基于车辆的软件开发指南”。这份文件具有重要意义,代表了行业共识,也是汽车行业第一种功能安全方法,比国际层面的ISO 26262工作开始早了大约10年。

在资助项目结束后,MISRA继续在自愿的基础上开展工作,出版了具有里程碑意义的出版物,如MISRA C,MISRA C++和MISRA安全论证指南。
自 2021 年以来,MISRA 一直由独立的非营利实体 MISRA Consortium Limited 管理。

MISRA C

MISRA C 最初开发是为了满足 1994 年“基于车辆的软件开发指南”中确定的“标准化编程语言的限制子集”的需求,并以 C 语言新兴用于开发汽车应用中的嵌入式软件为背景。 MISRA C 发布后,它与其他应用程序的相关性很快就被注意到,并且该文档的后续修订涉及来自不同行业和工具供应商的许多专家。 如今,MISRA C 已成为使用 C 语言开发软件的事实上的标准,其中安全性、保密性和代码质量非常重要。 MISRA C 的未来发展将继续扩展对该语言的新版本以及其他语言功能的支持。

MISRA C++

MISRA C++ 最初于 2008 年 6 月发布,认识到 C++ 在关键应用程序中的使用不断增长。最近,修订工作已开始,并于 2017 年宣布 MISRA 将在新版本的 MISRA C++ 中集成 AUTOSAR C++ 指南。 MISRA 主导的指南将纳入最新版本的 C++ 语言 – C++17 – 及其后续版本 C++20(如果可用)。

一些问题

MISRA C 的最新版本是什么?

这是 MISRA C:2023,也称为 MISRA C 第三版第二修订版。

为什么选择MISRA C:2023?

虽然这是一次进一步的增量更新,但我们给它起了一个新的名称,以纪念 MISRA C 25 周年,因为它现在扩展到对 C11 和 C18 语言版本的支持。

“第三版,第二修订版”是什么意思?

MISRA C 的以下主要版本已发布:

  • MISRA C:1998 – The first edition
    MISRA C:1998 – 第一版
  • MISRA C:2004 – The second edition
    MISRA C:2004 – 第二版
  • MISRA C:2012 – The third edition
    MISRA C:2012 – 第三版
    在 MISRA C:2012 发布后,发布了进一步的增量更新,并合并到修订后的文档中:
    MISRA C:2012(2019 年 2 月)– 第三版,第一修订版纳入了修正案 1 (AMD1) 和技术勘误 1 (TC1) – 也称为 MISRA C:2019
    MISRA C:2023(2023 年 4 月)– 第三版,第二修订版纳入了修正案 2 (AMD2)、3 (AMD3) 和 4 (AMD4),以及技术勘误 2 (TC2)

MISRA C:2023 会提供硬拷贝吗?

是的,我们通过“按需打印”服务提供硬拷贝选项,请参阅购买>硬拷贝。请注意,PDF 版本仅供单用户在屏幕上使用,您无法从中打印。

MISRA应用场景

chatgpt3.5回答:

MISRA标准通常用于提高嵌入式系统软件的可靠性和安全性,特别是在对软件质量有严格要求的领域,如汽车、航空、医疗和铁路等安全关键应用中。使用MISRA标准可以帮助开发团队规范C和C++编程语言的使用,确保代码符合特定的规范和最佳实践。具体场景包括但不限于:

  1. 安全关键应用开发: MISRA标准适用于需要高度可靠性和安全性的系统,如汽车电子控制单元(ECU)、医疗设备控制系统等。在这些领域,软件故障可能导致严重的后果,因此需要严格的编码规范来确保软件质量。
  2. 合规要求满足: 某些行业标准和法规可能要求软件开发过程符合特定的标准,例如汽车行业的ISO 26262标准。采用MISRA标准可以帮助开发团队满足这些合规性要求。
  3. 代码审查和质量控制: MISRA标准提供了一系列的指南和规则,可以用于代码审查和质量控制。通过遵循这些规则,开发团队可以更容易地识别和纠正潜在的代码质量问题,提高软件的可维护性和可靠性。
  4. 跨团队协作: 在大型软件项目中,采用统一的编码规范可以促进团队之间的协作和交流。MISRA标准提供了一套共同的规范,有助于确保整个团队的代码风格一致,减少因个人偏好而引入的问题。
    总之,MISRA标准在需要高度可靠性和安全性的嵌入式系统软件开发中发挥着重要作用,帮助开发团队提高软件质量、降低风险,并满足合规性要求。

MISRA和coverity关系是什么

chatgpt3.5回答:
MISRA和Coverity是两个在软件开发领域起着不同作用的实体。

MISRA是一个非营利组织,旨在提高嵌入式系统软件的可靠性和安全性。它制定了一系列规范和指南,主要用于规范C和C++编程语言的使用,特别是在安全关键应用领域。MISRA标准帮助开发团队确保其代码符合特定的规范和最佳实践,以提高软件质量、降低风险,并满足合规性要求。

Coverity是一种静态代码分析工具,用于发现和修复软件中的缺陷和漏洞。它可以帮助开发团队在早期发现潜在的代码质量问题,如内存泄漏、空指针引用、不安全的函数调用等。Coverity的作用是在代码级别进行静态分析,而不涉及制定编程规范或指南。

因此,MISRA和Coverity之间的关系是:MISRA提供了编程规范和最佳实践,而Coverity则提供了工具和技术,帮助开发团队确保其代码符合这些规范,并发现潜在的代码质量问题。在实际应用中,开发团队可以结合使用MISRA标准和Coverity工具,以提高软件的质量和安全性。

如何在Coverity静态代码分析的时候使用MISRA规则呢

Coverity静态代码分析工具可以与MISRA C规范集成,以帮助开发团队确保其代码符合MISRA C规范。以下是在Coverity中使用MISRA规则的一般步骤:

  1. 选择MISRA C规范版本: MISRA C规范有多个版本,每个版本都有不同的规则和指南。在使用Coverity之前,您需要选择要遵循的MISRA C规范版本。例如,您可以选择MISRA C:2012规范。
  2. 启用MISRA规则: 在Coverity的配置文件中启用MISRA规则。您可以使用Coverity提供的MISRA C规范模板或自定义模板,以根据您的需求启用或禁用特定的MISRA规则。
  3. 运行Coverity静态代码分析: 使用Coverity工具对您的代码进行静态分析。Coverity将检查您的代码是否符合您选择的MISRA C规范版本,并生成相应的报告。
  4. 解决问题: 检查Coverity生成的报告,查找与MISRA规则不符合的问题。然后,您可以采取相应的措施来解决这些问题,例如修改代码或调整编程风格。

总之,通过使用Coverity静态代码分析工具与MISRA C规范集成,您可以更轻松地确保您的代码符合MISRA C规范,并遵循最佳实践,从而提高软件质量和安全性。

PS:
总结:MISRA文档 是要花钱买的,个人用户或企业用户购买。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值