开发人员需要了解的关于MISRA C:2025®的信息
转载自Perforce Software, Inc.
MISRA C:2025 概述
MISRA C:2025标准于2025年3月在德国纽伦堡举办的嵌入式世界大会上正式发布。尽管此次更新相较前版内容更为精简,但它在MISRA C:2023高效框架基础上进行了重大政策调整、功能增强及新增指南,旨在进一步简化开发可靠且稳健的安全关键型代码流程。
MISRA C:2023 涵盖哪些内容?
MISRA C软件开发指南旨在确保使用C语言编写软件的安全可靠。该指南包含开发人员需遵循的规则与指令,开发人员可借助Perforce静态分析工具(如Perforce QAC和Perforce Klocwork)来检测任何违反指南的行为。
在MISRA C:2025之前,MISRA C:2023是最后一个主要版本,共制定了221条指南,涵盖C90、C99以及C11/C18标准。
虽然MISRA C:2025对现有指南的更新更多是属于渐进式改进,但它为支持C标准的下个版本以及开发环境的更新奠定了基础。
MISRA C:2025 同时涵盖 C90、C99 及 C11/C18 标准;对现有指南进行合理化调整与重组以确保延续性;并新增指南至 MISRA C:2025,使有效指南总数达到 225 条。
MISRA C:2025采用了全新的滚动发布开发模式,而非独立的修订文件,使开发人员能够更有效地与文档及其迭代版本进行交互。
MISRA C:2025 发生了哪些变化?
新规则
MISRA C:2025新增了5条准则。其中较为令人注意的是第19.3条规则,该规则通过将单一变体成员的一致使用与更严格的活跃成员变更限制(可能存在安全隐患)分离,放宽了联合体的使用限制。这条规则最初是一个全面性的规定,但如今对常规“安全”使用情形仅作建议性要求。
MISRA C:2025还包含其他新规则,包括关于声明的规则,以及一项从核心类型系统中提取指针的规则,以增强其一致性。
规则变更
一些现有的规则已经被扩展。例如,指针转换规则(规则 11.3、11.4、11.6)现在包括了“intptr_t”系列,同时在处理整数和地址的整数表示时有了更多的可能性。先前版本的指南对地址操作进行了全面禁止,而这对于某些低级系统功能(如指针标记)来说是必不可少的。
指南重组
MISRA C:2025 对部分准则进行了重组,将规则移入更合适的类别,并重新调整了规则与指导原则之间的定位。此次重组为下一版本的扩展奠定了坚实基础。
介绍已删除和已停用的规则
本次新版本首次引入了已删除和已停用的规则。
已删除的规则编号在未来版本中将不会被重复使用。因此,对于早期版本中触发规则21.2(该规则已重新编号并因此从发布版本中删除)违规的工具,其含义与MSIRA C:2023中的先前含义完全一致,不存在任何歧义。
这标志着一个重要的里程碑,因为MISRA现已认识到,随着分析技术和审查理念的发展,并非所有历史性强制要求都能持续提供价值。(例如,备受争议的规则15.5在MISRA C:2025中已被废止。)
新的“已停用”类别也允许用户在必要时重新引入该规则。
通过Perforce QAC确保MISRA合规性
MISRA 正在不断审查其针对 C 和 C++ 语言的规则和指南。虽然每个版本的设计目标都是为了让代码更安全、更可靠,但开发者仍需理解这些规则,检查代码是否有违规,并持续监控代码的 MISRA 合规性。
选择合适的静态代码分析工具可加速实现MISRA合规性。Perforce静态分析工具QAC和Klocwork能自动扫描代码中的规则违规情况,即时识别不合规代码,从而在代码投入生产前提供修复违规问题的机会。
Perforce QAC新增的合规性模块可实现对MISRA C:2025标准的100%覆盖,助您轻松满足并完整记录该标准的合规性要求。
即刻查看Perforce QAC MISRA C:2025合规模块的实际运行效果。立即申请定制演示!
Jill Britton
Director of Compliance
Perforce Software
欢迎联系我们了解更多资料或申请试用
浙公网安备 33010602011771号