代码质量与安全 | 嵌入式开发中不得不说的编码标准——Barr-C
来自 Barr Group 的编码标准 Barr-C 能够减少嵌入式软件中的 bug,并引入风格指南(stylistic guidelines),让维护、移植更简单。
本文将讲述开发人员如何使用 Barr-C:1018 来检测用 C 语言编译的固件中的错误,以及它如何与 MISRA 结合使用。
龙智作为 DevSecOps 研发安全运营一体化解决方案供应商、Perforce 授权合作伙伴,持续关注代码质量与安全领域的动态与发展,为您提供功能安全和标准合规领先的静态代码分析解决方案与最佳实践参考。联系我们,立即了解 C/C ++语言静态代码分析器 Helix QAC 如何帮您遵守 Barr-C 规则。
什么是 Barr-C?
Barr-C 是由 Barr Group 开发的嵌入式 C 语言编码标准,致力于减少固件中的 bug 数量,同时让嵌入式软件的维护、移植更简单。
BARR-C:2018 指南分为两大类:
第一类:处理语言的子集,例如避免使用特定的关键字(例如“register”或“continue”)和使用类似函数的宏。
第二类:与编程风格相关(例如缩进和命名约定)。
第一类中的某些规则被标记为“0bug...句号(Zero Bugs…Period.)”。遵守这些规则有助于在第一时间防止 bug。
为什么 Barr-C 很重要?
即使已经使用了正确的工具来识别缺陷和合规性问题,开发嵌入式软件依旧充满着挑战。
BARR-C:2018 定义了一种风格,主要是为了尽量减少编码错误。因此,BARR-C:2018 可以被视为 C 语言子集的第一步,适用于各种项目。
对于没有使用编码标准和静态分析的情况来说,采用 BARR-C:2018 会带来显著的进步。
如何实现 Barr-C 合规性?
要想符合 BARR-C:2018,您必须强制执行所有规则。
检测不合规的代码有几种方法,例如使用非正式的代码审查或自动扫描。每条规则中都描述了建议的实施方法。标准中的许多规则都可以使用静态分析工具来进行自动检查,比如Helix QAC。
Barr-C 与 MISRA 有何关系?
设计关键安全系统的开发人员都知道,要严格遵循 MISRA C:2012 指南,因为符合 MISRA C:2012 能确保嵌入式代码安全可靠。
BARR-C:2018 不是为了与 MISRA C:2012 竞争而设计的,实际上,它们相容且互补。例如,某个项目使用 MISRA C:2012,MISRA C 给出的建议是采用和执行一致的编码(coding)风格,这就可以使用 BARR-C:2018 的某部分编程(programming)风格来满足。
同样的,一些关键项目可以先遵循 Barr-C,然后顺利过渡到 MISRA C。
为什么要使用 Helix QAC 来满足 Barr-C 合规性?
因为Helix QAC可以帮助您轻松遵守编码标准和指南,包括 MISRA、Barr-C 和其他功能安全标准。
作者简介:
吉尔·布里顿
合规总监,Perforce
吉尔·布里顿在多个行业拥有超过 30 年的嵌入式软件经验。她曾担任电信、汽车、国防和教育软件等领域企业的软件工程师和管理者。
吉尔现在是 Perforce 的合规总监,同时也是 MISRA 的委员会成员。吉尔拥有纽卡斯尔大学计算机科学和统计学学士学位,以及伦敦布鲁内尔大学计算机科学硕士学位。
评论