当前位置:首页 > 厂商动态 > IAR
[导读]目前,越来越多的汽车、工业和其他应用都在强调功能安全性(functional safety),其开发过程也需要先进和完善的工具链支持,以及一些重要的开发工具使用经验。作为功能安全性产品的研发工程师,一定听说过类似MISRA C的静态代码检查,以及其他一些代码标准和自动化检查工具。但是,在日常的开发流程中,仅仅知道这些标准并不代表着能够高效地让代码符合代码标准。

目前,越来越多的汽车、工业和其他应用都在强调功能安全性(functional safety),其开发过程也需要先进和完善的工具链支持,以及一些重要的开发工具使用经验。作为功能安全性产品的研发工程师,一定听说过类似MISRA C的静态代码检查,以及其他一些代码标准和自动化检查工具。但是,在日常的开发流程中,仅仅知道这些标准并不代表着能够高效地让代码符合代码标准。

本文将从代码标准本身、以及配套的检查工具如何使用及流程两方面,通过以业界常见的IAR开发工具链为例来提供一些思路,解释为什么在开发需要安全认证的产品时,推荐使用其自带的代码分析工具。在实际应用中,针对Renesas RX和Arm系列内核,C-STAT 静态代码分析和 C-RUN 运行时分析组件往往都作为插件,被添加到IAR Embedded Workbench开发环境中。

功能安全标准与代码分析

在 IEC 61508 2.0 版的第 3 部分中,对安全类系统的软件作出了规定,要求必须采用可靠良好的开发流程。例如,第 7 部分“技术和措施概述”的第 C.4.2 节中指出要使用编程语言子集:

目的:降低引入编程错误的概率,并增加发现残余错误的概率。

描述:对编程语言进行检查,比如使用静态分析法来确定容易出错或难以分析的编程结构。然后定义编程语言子集来排除此类编程结构。

第 C.4.2 节还指出,如果软件的安全完整性等级 (SIL) 高于 1,则不建议在未设定此类限制的情况下使用 C 语言进行编程。换言之,如果您想使用C/C++ 软件开发 SIL 2-4 认证系统,则基本上都需要使用静态分析工具。

类似地,对于运行时分析,第 7 部分“技术和措施概述”的第 B.6.5 节“动态分析和测试”指出:

目的:通过对即将完成的原型进行动态行为检查,检测是否存在规范失效问题。

描述:对安全类系统进行动态分析的方法是,在安全类系统的基本可运行原型上,运行目标环境中的典型输入数据。如果经观察,安全类系统的行为符合所要求的行为,则表明系统通过了分析检查。如果安全类系统出现任何失效问题,则必须予以纠正,然后重新分析新的可运行版本。

下面我们来看看 C-RUN 是如何满足此类分析需求的:

C-RUN 是集成在编译器和 C-SPY 调试器中的工具。借助此工具,可在运行时观察可执行代码,并报告代码在运行时出现的异常行为。C-RUN 会执行算术检查、边界检查和堆检查,并且可在 IAR Embedded Workbench 的工程设置中轻松进行配置:

运行时分析工具的一般特点是误报率低,C-RUN 也不例外。换言之,C-RUN 报告的错误很可能是真的错误,因为执行和分析的均为真实代码,并且是在真实的目标系统上进行的。C-RUN 可查看有关应用程序状态的所有信息,并会报告实际发生的错误。尽管如此,在执行过程中,您可设置适当的 C-SPY 消息规则,让检测到的错误通过检查,如下图所示。

不过,运行时分析也有一些不足。首先,使用这种方法时,通常要到软件开发流程的后期才能发现问题,因为运行时分析工具需要使用代码的可执行文件。此外,运行时分析仅对实际运行的应用程序部分进行检查。如果无法触发所有条件使得应用程序的全部代码都得到分析,则最终将有部分代码处于未经测试的状态。尽管如此,C-RUN 仍可提供非常有价值的反馈,并且由于其与 IAR Embedded Workbench 深度集成,所以非常易用。

接下来说说 C-STAT,这是一种静态分析工具,可通过执行一项或多项规则检查来发现是否存在偏离编码规则的问题。C-STAT 检查代码是否符合 MISRA C:2012、MISRA C++:2008 和 MISRA C:2004 规定的规则,以及对应 CWE 和 CERT C/C++ 所涵盖的各种问题的检查。跟 C-RUN 一样,在 IAR Embedded Workbench 的工程设置中也可轻松地对 C-STAT 进行配置。

与 C-RUN 不同的是,C-STAT 无需实际运行应用程序,即可检查代码是否存在缺陷。它能在不依赖程序的执行路径及所使用的数据集的情况下找到错误。C-STAT 可在软件开发流程的早期发现错误和缺陷,实际上从开发的第 1 天就可以使用,而且不会影响系统性能。

虽然市面上有几款独立的静态分析工具可供 C/C++ 开发人员使用,但 C-STAT 的一大优势在于可直接投入使用,无需进行繁琐的配置。而且,它能理解和分析专为高效嵌入式编程设计的各种 IARSystems特定的C/C++ 语言结构。将 C-STAT 集成到日常开发中,就可以轻松地检查代码是否符合大部分重要编码规则。这样就能为后期的测试和调试省下更多的时间和资源。

C-STAT 可集成到 IAR Embedded Workbench IDE 中,与常规的构建工具一样简单易用:

对于检测到的每个错误,在线帮助系统中都会有相应的描述,按下 F1,就可看到对应的规则说明和相应的示例代码来说明如何满足该规则:

可生成 HTML 格式的报告,用以记录测试结果:

结语

回到本文第一部分谈到的功能安全标准,来看看上述工具如何帮助您的软件达到规定标准。

第 7 部分“技术和措施概述”的第 C.4.2 节中指出要使用编程语言子集:对编程语言进行检查,比如使用静态分析法来确定容易出错或难以分析的编程结构。然后定义编程语言子集来排除此类编程结构。

对此,C-STAT 能够派上用场,可检查代码是否符合 MISRA 规定的规则。如前所述,如果想使用 C/C++ 软件开发 SIL 2-4 认证系统,则确实需要使用静态分析工具。

再来看第 B.6.5 节“动态分析和测试”:对安全类系统进行动态分析的方法是,在安全类系统的基本可运行原型上,运行目标环境中的典型输入数据。如果经观察,安全类系统的行为符合所要求的行为,则表明系统通过了分析检查。如果安全类系统出现任何失效问题,则必须予以纠正,然后重新分析新的可运行版本。

用于运行时分析的 C-RUN 虽然无法全面检查整个安全类系统中的所有动态行为,但它仍是一个非常好用的工具,至少能在安全类系统的软件部分中找到真实存在的和潜在的错误。需要记住的是,必须将安全概念与系统的危险失效率关联起来,而不仅仅是组件(如软件)的失效率。

用于运行时分析的 C-RUN 和用于静态分析的 C-STAT 是两类不同的代码质量分析工具,在安全类软件的开发中都非常有用,二者不形成竞争关系,而是构成优势互补。因此,IAR的C-RUN 和 C-STAT工具 能为开发人员带来互补的代码检查能力,自然而然地集成到日常的开发流程中。在IAR的评估版工具中自带C-RUN和C-STAT插件,欢迎工程师朋友们试用。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭