随着汽车向自动驾驶汽车发展,硬件和软件的功能安全是软件开发人员、工程师、经理和高管最关心的问题。没有不折不扣的安全性,就不会有自动驾驶汽车。
功能安全是系统或设备响应其输入的正确操作。当功能安全得到满足时,该系统已经消除了所有不可接受的风险,并且不会对乘员造成伤害威胁。不幸的是,由于嵌入式软件通常非常复杂,因此很难降低所有风险。
汽车行业的安全标准 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 意识的静态分析涵盖了完整的代码库。您可以在编写完第一个软件元素后立即开始分析,然后继续分析,直到所有软件都集成到系统中。
审核编辑:郭婷
-
源代码
+关注
关注
96文章
2944浏览量
66680 -
编译器
+关注
关注
1文章
1618浏览量
49060 -
自动驾驶
+关注
关注
783文章
13699浏览量
166177
发布评论请先 登录
相关推荐
评论