新思科技如何验证更安全的智能汽车软件

汽车软件正在迅速发展,其复杂性、安全性要求以及对高效开发流程的需求与日俱增。在这一背景下,虚拟ECU(vECU)成为加速开发和验证的关键工具,而将Rust语言集成进AUTOSAR Classic环境则为行业带来了宝贵的新可能。虽然在全新项目中使用Rust看似简单,但将其整合到现有基于C语言的AUTOSAR Classic软件栈中,将更具现实意义和实用价值。这是因为现有的、经过系列验证的汽车软件堆栈通常以C代码实现,而将这些堆栈移植到Rust需要承担高昂的完全重写成本。此外,由于对供应链的依赖性,这项工作十分复杂,而且并非所有场景都需进行此类迁移,因此其商业可行性仍有待考量。Rust与C语言的互操作性为这一难题提供了巧妙的解决方案,可以在保留AUTOSAR Classic堆栈的主要部分(如RTE、BSW和MCAL)的同时,用Rust实现新的AUTOSAR软件组件(SWC),或者将现有的AUTOSAR SWC逐步从C语言迁移到Rust代码。

这种混合方法使开发者能够在AUTOSAR Classic项目中发挥Rust的价值,同时保持现有的开发工作流程。在vECU开发中,与新思科技Silver等市场领先的工具相结合时,这种灵活性显得尤为重要。通过支持在AUTOSAR Classic项目中使用Rust SWC,Silver为在混合编程语言环境中进行更安全、更快速的汽车软件开发开辟了可能。

Rust在汽车领域的应用:挑战与现状

多年来,AUTOSAR Classic环境下的软件开发完全依赖于C语言。虽然C语言的性能优越,但Rust在性能相当的情况下,通过内置支持来避免某些类型的内存相关漏洞(如越界读/写),从而降低了任务关键型应用程序的风险。从本质上讲,C语言中与内存相关的漏洞往往难以察觉,在某些情况下甚至可能永远无法被发现。对于需要遵守ISO 26262和ISO 21448等标准的安全关键型系统来说,这无疑是一个严峻的挑战。值得一提的是,内存相关漏洞通常占安全漏洞的很大一部分,这也进一步凸显了问题的严重性[1, 2, 3, 4]。

Rust在汽车行业的优势已得到广泛认可,因此AUTOSAR联盟于2022年在其安全工作组中启动了对Rust在AUTOSAR Adaptive中应用的研究[5]。2023年11月,AUTOSAR联盟在R23-11版本中发布了如何用Rust编写AUTOSAR Adaptive应用程序的初步提案[6],这突显了Rust在基于POSIX的软件栈中的相关性 。Rust优势显而易见。例如,得益于内置的所有权系统和借用规则,Rust可以避免多线程AUTOSAR Adaptive应用程序中的并发错误。鉴于Rust已在AUTOSAR Adaptive中展现出的显著优势,将其用于实现AUTOSAR Classic SWC也是顺理成章的事。

虚拟ECU和Rust:强大的组合

虚拟ECU的重要性

虚拟ECU(vECU)彻底改变了汽车行业的软件开发和测试。通过在虚拟环境中模拟物理ECU的行为,可以在无需依赖物理硬件的前提下,更快地开发和验证软件。这样,即使没有硬件,也可以提前启动软件开发和测试。此外,以SDV为核心的流程(如CI/CD)可以在整个开发周期中充分利用虚拟ECU,从而更快地获得代码更改后的预期结果。如同Silver这样的市场领先的软件,构建了虚拟ECU,使其基于AUTOSAR Classic平台的软件开发与验证得以加速。

Rust在Level 1层级vECU中的作用

2024年,新思科技发布了一份全面的白皮书[7],介绍了AUTOSAR Classic和基于POSIX的软件栈的vECU级别分类。新思科技Silver可以生成Level 1-Level 3 vECU,而本文主要聚焦于AUTOSAR Classic Level 1 vECU。新思科技Silver Level 1 vECU提供了一个虚拟化的AUTOSAR Classic RTE,可以在典型主机或云端的软件在环(SiL)仿真中运行AUTOSAR Classic SWC,因此目标机不需要AUTOSAR Classic软件栈或物理硬件的支持。RTE由Silver根据AUTOSAR XML文件生成,这一过程与真实ECU的AUTOSAR Classic工作流程完全一致。用Rust实现AUTOSAR Classic SWC时,RTE生成过程确保了Rust SWC能够访问RTE的C语言接口。因此,根据所提供的规范,通过新思科技Silver调度和执行可运行实体,可以实现RTE与仿真中其他SWC的通信。下图为将Rust SWC集成到Level 1级vECU的高层架构,展示了如何通过新思科技Silver生成的RTE与基于C语言的SWC进行通信。

10b84550-5b1d-11f0-baa5-92fbcf53809c.png

新思科技继续引领技术发展,推动在SiL仿真中验证Rust SWC

Rust在汽车行业越来越受欢迎。最近,多家主流汽车量产软件供应商已经宣布,支持将基于Rust的SWC集成到现有基于C语言的AUTOSAR Classic软件栈中,具体示例请见参考资料[8]。

新思科技作为汽车测试和仿真领域的市场领导者,正与首批标杆客户合作,通过SiL仿真验证基于Rust的软件。本文概述了新思科技Silver如何通过生成虚拟RTE的Level 1 vECU,对基于Rust的AUTOSAR Classic SWC进行了验证。展望未来,相关用例还将持续涌现,共同为Rust在汽车行业的广泛应用铺平道路。

  • 随机文章
  • 热门文章
  • 热评文章

您可以还会对下面的文章感兴趣: