确保嵌入式软件的功能安全

描述

  对于我们这些从事嵌入式软件汽车领域的人来说,我们公司的成败在很大程度上取决于满足安全要求。如果我们不使用经过验证的开发方法来开发代码来确保安全,我们充其量只会倒闭;在最坏的情况下,我们可能导致财产破坏,伤害甚至死亡。随着汽车向自动驾驶车辆发展,硬件和软件的功能安全性是软件开发人员、工程师、经理和高管最关心的问题。没有不折不扣的安全性,就没有自动驾驶汽车。

  功能安全是系统或设备响应其输入的正确操作。当功能安全得到满足时,该系统消除了所有不可接受的风险,并且不会对乘员造成伤害的威胁。不幸的是,由于嵌入式软件通常非常复杂,因此很难减轻所有风险。

  汽车行业的安全标准ISO 26262定义了开发软件以降低风险和生产更安全软件的方法。ISO 26262中定义的功能安全是为车辆中的每个电气或电子系统设置安全目标的方法。这些目标使用汽车安全完整性等级(ASIL)分类按严重程度进行分类。这些级别由风险级别确定,其中 ASIL A 是最低严重性,ASIL D 是最大。例如,ASIL A 风险可能是 DVD 播放机出现故障(没有受伤的机会),而意外的安全气囊展开是 ASIL D 风险。想象一下,在高速公路上以55英里/小时的速度进行部署:严重伤害和无法控制的可能性非常大。

  ASIL是在开发过程开始时确定的。ASIL 用于定义系统必须满足的安全目标。每个ASIL都是通过检查事故的可能严重程度,暴露时间以及车辆在这种情况下的可控性来确定的。ASIL迫使设计人员提出这样一个问题:“如果出现功能故障,操作员、相关道路使用者和周围环境会发生什么变化?

  该标准定义了开发软件的方法,使其满足功能安全要求。这些要求包括软件开发过程的管理、可追溯性、风险管理和质量保证。公司必须实施严格的过程控制。

  那么,如何开发具有这些严格要求的产品呢?

  确保功能安全的工具

  大多数软件错误和问题都是由于需求不足和流程管理不善造成的。不良的需求会导致功能实现不正确或不可靠,从而导致功能安全失败。当一个功能被错误地实现时,它可能会干扰其他软件功能,违反ISO 26262的“主要指令”,即不受干扰。

  静态分析可用于在软件引起干扰时查找错误。使用静态分析的主要优点之一是,您可以在完成模块准备就绪后立即开始分析。分析可以继续,直到整个产品代码集完成。

  可以对源代码或目标代码执行静态分析。分析二进制文件有一些优点。例如,它不依赖于所使用的编译器或汇编程序。它还可以揭示编译器或汇编程序在没有源代码的情况下引入的错误。

  但是,由于缺乏有关编译器以及它如何优化代码的信息,因此无法进行某些分析。此外,您无法将错误追溯到源代码中的违规点,因此纠正错误几乎没有用处。

  因此,使用源代码时,分析质量会大大提高。使用源代码,您确实可以将故障追溯到故障发生的点。当然,您必须具有可用的源代码才能运行静态分析。

  静态分析显示,ASIL 函数在未经许可的情况下非法尝试访问受保护内存会受到干扰。您可以想象在自动驾驶车辆甚至当前车辆中损坏受保护内存的后果。如果您点击DVD播放按钮而不是更改巡航控制设置,可能会导致不好的事情!

  静态分析确保不受干扰

  静态分析不能取代硬件和软件验证,但对于防止应用中的干扰非常有价值。它可以在源代码中找到违反ISO 26262要求的错误。通过在开发代码时发现问题,验证通常可以更快地进行。具有 SIL 感知功能的静态分析涵盖了完整的代码库。您可以在编写完第一个软件元素后立即开始分析,然后继续分析,直到所有软件都集成到系统中。

  审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分