0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是BARR-C

北汇信息POLELINK 2022-11-03 17:21 次阅读

BARR-C是Barr集团的编码标准,旨在减少嵌入式软件中的错误,并引入风格指南以提高可维护性和可移植性。

在这里,我们解释了什么是Barr-C,开发人员如何使用BARR-C:1018检测用C编写的固件中的错误,以及如何将其与MISRA的指南相结合。

什么是BARR-C?

BARR-C是由BarrGroup开发的嵌入式C编码标准,专注于减少软件中的错误数量,同时提高嵌入式软件的可维护性和可移植性。

BARR-C:2018指南分为两大类:

1.处理细分语言的方法,例如避免特定关键字(例如“register”或“continue”)和使用类似于宏的函数。

2.关于编程风格的内容(例如,缩进和命名约定)。

第一类中的一些规则被标记为“零bug...周期”。遵循这些规则将有助于首先防止错误。

为什么BARR-C很重要?

开发嵌入式软件可能具有挑战性,即使使用正确的工具来识别缺陷和合规性问题也是如此。

BARR-C:2018主要旨在最大限度地减少编码错误。因此,BARR-C:2018可以被视为适用于各种项目的C语言子集的第一步。

对于未使用编码标准和静态分析的情况,采用BARR-C:2018是一项重大改进。

如何实现BARR-C合规性?

为了遵守BARR-C:2018,必须执行所有准则。

有几种方法可以检测不合规的代码:例如,非正式代码审查或自动扫描。每条规则都描述了所建议的执行方法。标准中的许多规则都可以使用静态分析工具(如HelixQAC)自动检查。

BARR-C与MISRA有何关系?

设计安全关键型系统的开发人员知道要严格遵守MISRAC:2012指南。符合MISRAC:2012标准可确保嵌入式代码安全可靠。

BARR-C:2018并不是为了与MISRAC:2012竞争而设计的;它们实际上是兼容和互补的。例如,使用MISRA C:2012的项目可以使用BARR-C:2018的编程风格部分来满足MISRA C关于采用和实施一致编码风格的建议。

同样,关键项目最初可以努力实现对BARR-C的遵守,然后顺利过渡到MISRAC的合规性。

为什么使用HelixQAC实现Barr-C合规性

HelixQAC可轻松遵守编码标准和准则,包括MISRA和BARR-C。

亲自了解HelixQAC如何帮助您遵守BARR-C和其他功能安全标准。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4758

    浏览量

    68382
收藏 人收藏

    评论

    相关推荐

    C7000 C/C++优化指南用户手册

    电子发烧友网站提供《C7000 C/C++优化指南用户手册.pdf》资料免费下载
    发表于 11-09 15:00 0次下载
    <b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C</b>++优化指南用户手册

    TMS320C6000优化C/C++编译器v8.3.x

    电子发烧友网站提供《TMS320C6000优化C/C++编译器v8.3.x.pdf》资料免费下载
    发表于 11-01 09:35 0次下载
    TMS320<b class='flag-5'>C</b>6000优化<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++编译器v8.3.x

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    <b class='flag-5'>C</b>7000优化<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++编译器

    TMS320C6201/C6701/C6211 HPI启动操作

    电子发烧友网站提供《TMS320C6201/C6701/C6211 HPI启动操作.pdf》资料免费下载
    发表于 10-26 10:15 0次下载
    TMS320<b class='flag-5'>C</b>6201/<b class='flag-5'>C</b>6701/<b class='flag-5'>C</b>6211 HPI启动操作

    从TMS320C6211B/C6711/C6711B/C6711C迁移到TMS320C6711D

    电子发烧友网站提供《从TMS320C6211B/C6711/C6711B/C6711C迁移到TMS320C6711D.pdf》资料免费下载
    发表于 10-23 10:01 0次下载
    从TMS320<b class='flag-5'>C</b>6211B/<b class='flag-5'>C</b>6711/<b class='flag-5'>C</b>6711B/<b class='flag-5'>C6711C</b>迁移到TMS320<b class='flag-5'>C</b>6711D

    从TMS320C6712/C6712C迁移到TMS320C6712D

    电子发烧友网站提供《从TMS320C6712/C6712C迁移到TMS320C6712D.pdf》资料免费下载
    发表于 10-18 11:12 0次下载
    从TMS320<b class='flag-5'>C</b>6712/<b class='flag-5'>C6712C</b>迁移到TMS320<b class='flag-5'>C</b>6712D

    对TMS320VC5503/C5506/C5507/C5509/C5509A I2C外设进行编程

    电子发烧友网站提供《对TMS320VC5503/C5506/C5507/C5509/C5509A I2C外设进行编程.pdf》资料免费下载
    发表于 10-18 09:53 0次下载
    对TMS320VC5503/<b class='flag-5'>C</b>5506/<b class='flag-5'>C</b>5507/<b class='flag-5'>C</b>5509/<b class='flag-5'>C</b>5509A I2<b class='flag-5'>C</b>外设进行编程

    从TMS320C6211B/C6711/C6711B和C6713迁移到TMS320C6713B

    电子发烧友网站提供《从TMS320C6211B/C6711/C6711B和C6713迁移到TMS320C6713B.pdf》资料免费下载
    发表于 10-18 09:25 0次下载
    从TMS320<b class='flag-5'>C</b>6211B/<b class='flag-5'>C</b>6711/<b class='flag-5'>C</b>6711B和<b class='flag-5'>C</b>6713迁移到TMS320<b class='flag-5'>C</b>6713B

    C2000™ MISRA-C策略

    电子发烧友网站提供《C2000™ MISRA-C策略.pdf》资料免费下载
    发表于 10-11 11:43 0次下载
    <b class='flag-5'>C</b>2000™ MISRA-<b class='flag-5'>C</b>策略

    USB-C和TYPE-C有哪些区别

    USB-C和TYPE-C都是现代电子设备中常见的接口类型,它们在外观和功能上具有一定的相似性,但也存在一些区别。本文将从多个方面对USB-C和TYPE-C进行详细比较,以便读者更好地了
    的头像 发表于 04-03 15:33 5132次阅读
    USB-<b class='flag-5'>C</b>和TYPE-<b class='flag-5'>C</b>有哪些区别

    c语言,c++,java,python区别

    C语言、C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言: C语言是一种面向过程的编程语言。它具有底层的特性,能够对计算机硬件进行直接操作。
    的头像 发表于 02-05 14:11 2279次阅读

    USB C和USB Type C的传输性能

    USB-C和USB Type-C是同一种标准,用于连接电子设备和传输数据、音频和视频信号。USB-C是USB Type-C的简称,两者可以互换使用。USB-
    的头像 发表于 01-17 09:18 3051次阅读

    R8C/L35C 组, R8C/L36C 组, R8C/L38C 组, R8C/L3AC 组 数据表

    R8C/L35C 组, R8C/L36C 组, R8C/L38C 组, R8
    发表于 12-11 18:30 0次下载
    R8<b class='flag-5'>C</b>/L35<b class='flag-5'>C</b> 组, R8<b class='flag-5'>C</b>/L36<b class='flag-5'>C</b> 组, R8<b class='flag-5'>C</b>/L38<b class='flag-5'>C</b> 组, R8<b class='flag-5'>C</b>/L3AC 组 数据表

    usb-c和type-c的区别

    usb-c和type-c的区别  USB-C和Type-C是同一种接口,用于连接电子设备和充电设备。USB-C是该接口的技术规范名称,而Ty
    的头像 发表于 12-08 10:10 9449次阅读

    C语言和C++中那些不同的地方

    C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是
    的头像 发表于 12-07 14:29 920次阅读
    <b class='flag-5'>C</b>语言和<b class='flag-5'>C</b>++中那些不同的地方