在开发功能安全型关键应用中,开发人员可以采取多项调整措施来加快认证,然而这一切都依赖于应用的代码质量。要怎么做代码质量才能得到保障呢?

序言

在汽车、航空电子、医疗和工业控制等众多行业中,新开发的应用在大多数情况下必须取得相应的功能安全认证。通过所有必要的流程和测试来完成功能安全认证历来是一个非常困难的过程,但有一些方法有助于加快完成认证的速度。当然,选择诸如IAR Embedded Workbench这样本身就获得了认证,并在多样化的实际应用中经过验证的开发工具,也是加快从设计到完成认证过程的方法。

在开发功能安全型关键应用中,开发人员可以采取多项调整措施来加快认证,然而这一切都依赖于应用的代码质量。要怎么做代码质量才能得到保障呢?幸运的是,我们拥有一些简单的方法来立竿见影地提升代码质量,并尽可能地减少工作量。

善用标准

您知道吗,在C99代码规范中有大约190个歧义?确切地说,在C99中,有190种语法上合法的C结构,但在C语言规范中却没有得到明确说明。实际上,如果使用最新的C18代码规范,情况会变得更糟一些,如果在C++中引入多重继承和虚拟继承,将会陷入更为糟糕的局面。编译器会把源代码转变成可执行代码,因此必须对代码的含义进行解析后才能正确运行。

在实际情况中,开发人员可能会用到不同的编译器,它们可能会对源代码进行不同的解释。然而,在一个高可靠性的系统中,这将是一个噩梦般的场景,尤其是许多追求功能安全认证的公司一般都会在多个平台上交叉编译他们的代码以方便测试。可以想象,这将严重拖慢认证速度,因为您必须针对所有此类情况进行测试,以证明代码的可重复性和可靠性。

怎样才能度过这个难关呢?简单来说,避免代码歧义即可。但要如何做到这一点呢?开发人员可以选择MISRA这样的编码标准,该标准经设计,可避免常见的代码歧义。此外,该标准还提倡运用安全可靠的编码实践,以减少代码中的缺陷数量。有了功能安全标准,问题就能迎刃而解。

功能安全标准涵盖了代码分析

几乎每一个功能安全标准都要求开发人员对代码进行静态分析,而且还会强烈建议项目团队对代码进行运行时(或称之为动态)分析。其中影响最广的标准是IEC 61508,在通常意义上它适用于所有安全相关系统。根据该标准第C.4.2节的内容,不建议在安全完整性等级(SIL)在1级以上的情况下使用没有消除歧义和危险行为的编码标准的C语言。换句话说,如果开发的产品要获得SIL 2-4认证,就必须使用静态分析来提升代码的健壮性。

而静态分析工具可以强制开发者实施编码标准,如MISRA。此外,静态和运行时分析可以快速指出有风险的编码行为,特别是之前提到的编码标准歧义,因此有助于提高代码质量。基于这样的考虑,开发人员应当更多地选择诸如IAR Embedded Workbench这类在多样化应用中得到验证的工具,它们可以提供更全面的标准化功能。

然而,何时使用这些类型的自动化工具也会对项目的认证时间表产生巨大影响。许多公司组织会使用难以配置、难以使用的代码分析工具,使其每晚运行在构建服务器上。然而这种工具实际作用有限,因为每个程序开发者无法得到即时反馈,弄清他们刚写的代码究竟有什么问题。

此外,有时这些工具发出的警告信息本身就晦涩难懂,浪费了开发者的时间去弄清楚它们的真正含义,以及如何纠正代码来消除警告。如果能在开发过程中先运行代码分析,然后才进入正式构建,那么就可以完美避免代码缺陷。如此一来,项目代码缺陷注入率将大幅降低,这正是认证机构非常看重的指标,因为这意味着项目有一个非常成熟的开发组织。

将代码分析融入日常工作流程

根据针对多个行业里多家公司开展的调研的结果,IAR Systems团队发现,代码分析工具的配置和使用越容易,开发者选用它的几率就越高,也能更快受益。如果能将这些自动化工具纳入到开发者的工具箱中,那么开发者就可以在编写应用时随时检查和改进代码质量,同时在“实地”考察这部分代码要做什么以及它如何与系统中的其他模块互动。为了有效地做到这一点,必须将代码分析工具整合到日常工作流程中。

为了解其他人对集成代码分析的看法,IAR团队在查阅资料时发现谷歌在ACM期刊上发表了一篇文章,探讨了代码分析的优点。虽然文章对他们的整个代码库(包括C、C++和Java)进行了全面的考察,但他们的结论非常明确:

在开发过程的早期就能发现编译器错误,并且能够整合到开发者的工作流程中。我们发现扩大编译器的检查集对提高谷歌的代码质量是有效的。

作者表示,把静态分析检查整合到编译器工作流程并输出为Error信息,将极大地提高开发者对工具输出信息的关注,最终大幅提升代码质量。再往下看,他们谈到了向最近遇到某个编译器错误的开发者和已经收到该错误问题的修复补丁的开发者发出相同的调研。

谷歌的开发者认为,在编译时标记出错误信息相比于植入代码检测功能的补丁)能捕捉到更重的错误;例如,调研参与者认为在编译时标记的问题中的74%属于真正的问题,而在检测代码中发现的真正问题只有21%

此外,该文章还谈到了将代码分析整合到工作流程的重要性,指出当他们通过静态分析工具自动运行提交的代码并邀请工程师查看分析仪表板时,很少有工程师跟进。但是,如果在编译过程中就能得到即时反馈,则静态分析工具的使用更便捷且分析结果也更难被忽视。因此,他们选择在每个人的工作流程中默认集成静态代码分析。他们认为要推广代码分析工具,开发者必须感到能从中受益,并且喜欢使用这些工具。

在工作流程中加入代码分析会得到什么样的结果?结果之一是提高了应用的整体安全性,因为优质代码可以消除缓冲区溢出、非法指针等漏洞。虽然这个理由足够充分,但有时很难让人们做到“防范于未然”,您需要更显著的结果来说服开发者和管理层相信代码分析的优点。

Stefan Wagner等人的一篇论文(https://arxiv.org/pdf/1711.05019.pdf)使用经验数据来计算代码分析工具与传统测试在不同代码库中的优劣。他们的结果很有说服力,在769个被识别的缺陷中,76%是被代码分析工具发现的,而只有4%被传统测试发现(其余20%则在代码审查时发现)。

如果能在开始测试前就消除75%的缺陷,实现软件平均故障间隔时间(MTTF)目标能有多快?答案是“非常快”。仅仅是在测试上节省的时间和金钱就值得在代码分析工具上进行投资,更不用说它还能加快上市时间。这些都是功能安全认证机构喜欢看到的流程类型,因为它极大地降低了缺陷进入最终产品的风险。

优质代码加速功能安全认证

加快功能安全认证的关键是提高代码质量。只有提高代码质量,项目团队才可以降低缺陷注入率,从而更快地达到软件发布标准,这样在提交给功能安全认证机构认证时,它们才会认为您的组织拥有非常成熟的流程。虽然开发者永远无法确切知道一个应用中还有多少缺陷,但通过早期和经常使用代码分析工具将有助于减少其数量。

责编:Amy.wu
阅读全文,请先
您可能感兴趣
早在十多年前,电动汽车就已经引入400V电池系统,现在我们看到行业正在向800V系统迁移,主要是为了支持直流快速充电。随着电压的提高和从400V系统中学到的经验教训,设计人员现在正专注于增强高压保护电路的性能并提高可靠性。他们正在重新评估使用熔丝、接触器或继电器的现有解决方案,以寻找响应速度更快、稳健性更强且可靠性更高的解决方案,如热熔丝和电子熔丝(即E-Fuse)。
对于工程师来说,当不同的工程有不同的电池充电需求时,设计使用可充电电池并为消费者提供出色充电体验的应用可能具有挑战性。如果对每个应用使用专用的电池充电器,会增加设计时间,因为您必须重新设计、调试和重新鉴定每个新电路。
自ChatGPT带火AI以来,AI芯片得到了空前的发展,十月底高通发布了基于Arm架构的带有AI算力的骁龙X Elite芯片。刚刚,Arm宣布将在2024年推出Cortex-M52芯片,为低功耗物联网设备带来AI加速功能。
因应人工智能(AI)等应用对于更高效能计算的需求,以及小芯片(chiplet)异质整合架构的挑战,英特尔(Intel)打造可用于下一代先进封装的玻璃(Glass Core)衬底...
由于电子器件的频率和性能不断提高,要求与之匹配的二极管必须具备恢复时间短,反向恢复电流小和软恢复等特点。而快恢复二极管(FRD)因具备上述特点而被广泛应用。本文简要介绍快恢复二极管的反向恢复过程,及基于TCAD软件工具采取一系列方法优化恢复二极管的反向恢复,使其能够实现快速而软的恢复。
音频产品具有独特性质,这意味着将给工程师带来特殊的测试挑战。那么,如何通过评估使音频产品能够输出“最佳”声音?本文详论了主客观评估之间的巨大差异,给出了音频测试的层次结构、客观测试性能指标、以及客观评估测试技巧。并强调,音频产品开发无论是哪个阶段,都必须为测试留出超出常规想象的时间预算。
根据TrendForce集邦咨询最新OLED技术及市场发展分析报告统计,在近期发表的摺叠新机中,UTG的市场渗透率已逾九成,随着摺叠手机规模持续成长,预估2023年UTG产值将达3.6亿美元;2024年可望挑战6亿美元。
随着终端及IC客户库存陆续消化至较为健康的水位,及下半年iPhone、Android阵营推出新机等有利因素,带动第三季智能手机、笔电相关零部件急单涌现,但高通胀风险仍在,短期市况依旧不明朗,故此波备货仅以急单方式进行。此外,台积电(TSMC)、三星(Samsung)3nm高价制程贡献营收亦对产值带来正面效益,带动2023年第三季前十大晶圆代工业者产值为282.9亿美元,环比增长7.9%。
治精微推出具过压保护OVP、低功耗、高精度运放ZJA3018
无线技术每天都在拯救生命,有些非常方式是人们意想不到的。在美国加利福尼亚州Scotts Valley,一名路过的慢跑者发现一处住宅冒出火焰后,按响了门铃,试图通知屋主。屋主不在家中,但无线门铃连接到了智能家居中枢,提醒屋主慢跑者试图联系。屋主立即向他提供了安全密码,让他跑进房子,从火场中救出了宠物。
来看看,你需不需要这门接收机设计课程吧(已更新八次)。如有需要,现在仍然可以报名。(1)前几天,号友发来她的听课笔记,我真的是泪流满面。感觉,自己这么长时间的备课,总算没白费。说实话,我备课的时候,真
EETOP编译自electronicdesign1.任何计算引擎,无论是CPU、GPU、FPGA还是定制ASIC,都可以加速GenAI不对。CPU 不具备完成任务的性能。GPU 具有标称性能,但效率较
自从集成电路发明以后,人类的电子信息技术开始腾飞,60年多年来,在摩尔定律的指导下,半导体集成电路的高速发展彻底改变了电子产品。以计算机为例,1946年诞生的世界第一台数字计算机重30吨,占地约140
有奖问卷调查:各位工程师朋友,作为全球知名的授权半导体和电子元器件代理商,贸泽电子 Mouser多年来一直倾心为中国工程师服务,助力本土创新! 时至年终,为了更好的服务工程师朋友,我们特别推出“贸泽电
AMD Vitis™ 高层次综合 ( HLS ) 已成为自适应 SoC 及 FPGA 产品设计领域的一项颠覆性技术,可在创建定制硬件设计时实现更高层次的抽象并提高生产力。Vitis HLS 通过将 C
点击左上角“锂电联盟会长”,即可关注!有需要联系,王经理:18058289318相关阅读:锂离子电池制备材料/压力测试!锂电池自放电测量方法:静态与动态测量法!软包电池关键工艺问题!一文搞懂锂离子电池
本文来源:物联传媒本文作者:市大妈前几年,对大部分人来说,FWA是一个比较陌生的领域,尽管早在3G和4G时代就已经得到一定的发展。后来,随着5G的发展,FWA作为当前5G应用量级最大的场景之一,被更多
点击左上角“锂电联盟会长”,即可关注!粉尘、水分和毛刺是锂离子电池生产过程中需要严格控制的关键因素。严格控制电池生产环境的粉尘对锂离子电池的安全和性能至关重要。生产环境粉尘控制不足会导致涂层表面产生大
本文来源:物联传媒“2023‘物联之星’中国物联网行业年度榜单” 评选活动正在火热进行中!为深度挖掘物联网领域的优秀企业、创新产品和优秀项目,审读年度热门领域和发展方向,推动物联网行业的普及与宣传,促
巨头动向腾讯今年回购金额已超过去10年总额12月11日,腾讯公告称,当日耗资约4.03亿港元,回购133万股股份。年初至今,腾讯已经出手113次,累计回购数量约1.28亿股,累计回购金额超过422亿港