2021年9月15日 汽车

Diab编译器-为安全认证用例构建高度优化的代码

拉朱·苏比安

在过去的35年中,我和Diab在整个工业应用程序链中发挥了至关重要的作用,在这一链中,我和Diab的安全性是最重要的除了满足其性能和代码大小要求之外,我们还开发了ve代码。Diab工具链根据客户反馈和市场分析进行了持续改进。在这篇博文中,我们将研究一些最近的改进。

迪亚卜自成立之初,就依靠尖端的内部技术和创新加快新功能的开发和新体系结构的添加,因为行业采用了更新的体系结构。Diab 5.9.x经过35多年的研究和开发,已经发展成熟。Diab支持世界上最广泛使用的32位和64位处理器嵌入式市场。由于行业法规,汽车和工业市场开始越来越多地转向符合功能安全标准的应用程序开发,编译器作为应用程序开发中的关键工具的角色导致客户要求功能安全认证的工具链。Diab 5.9.x是rst将推出工具链鉴定工具包(QKit),允许客户选择应用程序开发中使用的编译器功能,然后在自己的环境中运行与这些功能匹配的测试,以根据ISO 26262和IEC 61508标准鉴定编译器的安全使用。

根据客户反馈进行开发和发展,Diab 5.9。X减轻了客户需要花费的资格认证工作。Diab工具链并没有让客户部署和测试QKit生成的测试代码,而是选择了由TUV SUD评估的预认证编译器,分别用于汽车(ISO 26262)和工业(IEC 61508)市场所需的任何ASIL和SIL级别。该TUV SUD认证工具链不仅提供了所有必要的文件,如安全手册和工具鉴定报告,而且还提供了一个诊断编译器,行业第一。像编译器这样的高度复杂的产品有bug,需要分析它们对为嵌入式应用生成的代码的影响。Diab编译团队将所有缺陷发布在Wind River Support网站上,并标注缺陷是否会对安全造成影响,或者是否只影响某些处理器架构,触发这些潜在缺陷的选项,解决方案等,以帮助客户分析影响并采取必要的应对措施。尽管有这些有用的数据,但客户仍然很难知道一个特定的缺陷是如何影响他们的应用程序的,因为很难确定代码序列或在数百万行应用程序代码中找到触发条件。

诊断编译器概念是Diab编译器团队的创新,是TUV认证合格编译器产品的一部分。诊断编译器是基于相同编译器产品的辅助编译器,但它不包含对缺陷的修复,而是向应用程序中触发编译器缺陷的代码发出有用的诊断消息。关键思想是在应用程序中识别可能导致编译器生成错误代码或产生错误行为的代码序列。然后,客户可以对应用程序代码应用变通方法,并再次使用诊断编译器重新编译,以确保触发器条件不再存在。客户需要定期使用诊断编译器进行构建,以确保新开发的代码不会触发任何潜在的编译器缺陷。诊断编译器是帮助Diab客户开发安全关键应用程序的节省时间和关键概念之一。这个概念帮助客户在通过了项目的关键后期里程碑(由于重新验证应用程序的高成本,更改或更新编译器没有吸引力)之后,保持他们的生产编译器不变。

Wind River编译器团队在开发和使用开源编译器GCC方面有着悠久的历史VxWorks平台。此外,该团队还集成和修复了GCC中的问题风河Linux产品。随着市场转向参与和利用更多的开源产品,如基于LLVM的编译器,除了GCC之外,Wind River也开始部署LLVM作为VxWorks的主要编译器,因为它有强大的行业支持、现代化的代码库、易于开发等。Wind River编译团队也在Diab产品中利用了基于LLVM的成果,并开始为ARM提供基于LLVM的交叉编译器。

Diab的LLVM基于7。x产品线为现有的Diab 5.9提供了简单的迁移路径。通过提供迁移指南,并随GNU binutils一起提供Diab链接器和其他二进制实用程序。新7。因此,对于现有的GCC客户和Diab 5.9来说很容易。客户可以轻松地迁移他们的应用程序。针对安全关键市场,仅仅采用和改进基于LLVM的编译器是不够的。LLVM、Clang和编译器运行时库中存在的缺陷需要不断地分析、分类和发布,并提供这些缺陷是否对安全性有影响的信息。为此,Diab编译团队分析了目前为止的10000多个缺陷,并根据它们对安全的影响进行了分类,最后将它们发布在Wind River Support Network上供终端用户使用。新7。X继续提供诊断编译器,以帮助功能安全应用程序的开发。 As a value add, Diab ships with QEMU for simulation so that application development can be efficient without getting slowed down by underpowered target CPU environment.

最近,Diab 7.x还为instrument添加了一项新功能,用于检查和处理与ARM浮点操作相关的异常。此功能提供多种选项以满足不同的客户需求,并允许客户通过安装自定义处理程序来覆盖和处理这些异常。

5.9新。x支持较新的TriCore架构变体,如TC 4xx和Renesas G4MH2。Diab编译器进一步利用了较新的指令,并优化了代码的性能和大小。

通过利用内部技术和开源开发,Diab编译器版本5.9.x和7.x为嵌入式客户带来了两全其美的优势,并提供了增值的TUV认证合格编译器,具有创新功能,如诊断编译器、监控和发布影响安全的开源缺陷。客户开始信任DIB编译器产品的技术优势,以及提供卓越的客户支持和维护。

以前的实时任务需要实时数据
下一个会见风河DTO:Michael Entner