总部位于上海的斑马网络技术有限公司是由中国阿里巴巴集团和上汽集团共同成立的合资企业,致力于开发和支持名为Cyber OS和Drive OS的智能网联汽车操作系统。Cyber OS专为智能座舱设计,而Drive OS则用于智能驾驶。这些操作系统促进了以人为本的功能,如增强现实(AR)导航、人机交互及互联网连接,同时也支持车辆相关的功能,如发动机启动、车辆诊断、照明及座椅调节等。鉴于许多基于人工智能(AI)的应用程序具有安全关键性,斑马公司确保其用于开发斑马平台应用的工具链符合ISO 26262功能安全标准变得尤为重要。为了验证所使用的GCC交叉编译器,斑马公司选择了Solid Sands的SuperTest编译器测试与验证套件。
斑马公司先进的AI解决方案旨在运行于地平线机器人公司的AArch64 64位ARM架构JOURNEYTM 5硬件平台上,该平台本身按照包括ISO 26262汽车安全完整性等级(ASIL)B在内的认证标准设计。斑马公司利用开源GCC 9.3交叉编译器将C/C++源代码编译为AArch64目标文件,并将其链接到AArch64可执行文件和库中。每月运行一次SuperTest能立即识别出与最新GCC编译器和库版本相关的回归问题,确保斑马使用该编译器的方式持续符合ISO 26262功能安全要求。
若SuperTest测试未通过,表明交叉编译器可能存在潜在问题,斑马公司将发布编码约束,以便软件开发团队避免使用可能危及其软件应用安全性的C语言结构。这一过程也使团队对特定应用场景下的编译器有了更深入的理解。
“运行SuperTest让我们意识到,许多GCC-W警告开关会影响到语法是否能编译到最后。它还促使我们在编程中标准化使用C/C++语法,使用标准的POSIX语法,避免使用定义不那么严格的GNU扩展。”
高级驾驶辅助系统、增强现实导航及自动驾驶对软件延迟提出了极高要求,因此斑马广泛采用了编译器优化。令人欣慰的是,SuperTest的一大优势在于其能针对广泛的优化器实现源代码的最大覆盖率。
斑马采用SuperTest执行了针对GCC 8.6的ISO 26262兼容性编译器安全资格认证,这是其重大功能安全认证项目的一部分,旨在确保其软件达到最高安全标准,从而提供下一代驾驶体验。这一体验融合了互联网连接、人工智能和边缘计算技术,优化并人性化驾驶过程,能自动学习并适应驾驶员的情绪和偏好,无缝提供基于情境和位置的服务。