博客
希望我们能与您分享和探讨成长中的点点滴滴
在Linux系统中运行Classic AUTOSAR软件系统
分享到
“转载自维克多汽车技术(上海)有限公司,作者Vector China”
无论是ADAS/AD软件系统验证的数据回灌训练或并行仿真验证,还是在软件快速迭代中的持续集成与持续测试,都需测试工具满足并行计算和可扩展计算的要求。高性能域控制器通常采用AP(Adaptive AUTOSAR)和CP(Classic AUTOSAR)共存的软件架构,其中AP软件系统可通过TAP的方式与测试环境集成,而CP软件系统的集成则面临挑战;并行仿真环境(Server或云)大多基于Linux系统,这是测试工具集成的难点;同时整个环境需要支持与任务调度工具(如Jenkins)的配合使用也是势在必行。
图1 开发验证Classic AUTOSAR软件系统工具需“拥抱”Linux
敏捷开发中的CB/CI/CT/CD
提高软件系统的可靠性,降低开发成本、时间和风险是需要持续改善的工作。从体系和开发流程的角度来看,需要结合汽车行业传统V模型和互联网模式的敏捷来形成“敏捷的V流程”。因涉及开发全流程的工作和团队协同工作,故需要全流程的考虑,而不仅仅只停留在站会和看板:
>Artifact:需求、软件架构和设计、软件源代码、测试用例(Unit、Integration和System Test)、测试脚本(CAPL、C#、TTE和测试模型)、测试环境(CANoe cfg、CANoe4SW SE rtcfg等)、测试日志和报告、自动化脚本等;
>System:持续集成系统(如Jenkins)、需求管理系统(如DOORS、PTC、Polarion等)、代码配置管理工具(如Git、SVN等)、编译系统(如Cmake、Maven等)、测试编译工具(如VectorCAST CLI、vTESTstudio CLI等)、测试管理工具(如PTC等);
>编译和测试步骤:代码提取(CMS系统)、编译为可执行软件(编译系统)、测试代码和仿真环境提取、测试脚本编译、安装测试软件和测试环境部署、运行测试、推送测试报告到Jenkins/TDM和CMS;
>其它:代码覆盖度和变更测试、不同环境(虚拟机、Docker Container、真实控制器或OTA系统)的SUT部署、高效测试所需流程(如按需选择的测试执行)集成。
图2 持续集成、持续测试和持续部署
持续测试为开发和测试提供持续反馈,持续集成新增软件功能或变更的软件并在服务器端快速编译集成,代码仓库中的软件版本每次变更后自动触发生成可测可交付的软件产品,持续自动部署在虚拟机、Docker Container、真实控制器或推送到OTA系统中。
部署在Linux平台的CANoe4SW SE环境
CANoe4SW SE(CANoe4SW Server Edition)是基于Linux平台的成熟方案(也支持Windows Server部署环境)。从CANoe 15.0和vVIRTUALtarget 5.0发布伊始,无缝对接Linux平台成为可能。基于Windows的CANoe项目工程文件可以直接导出并部署在Linux环境中,在CANoe4SW SE导入直接运行,避免二次配置的麻烦。
图3 CANoe与CANoe4SW SE配置无缝对接满足HiL和SiL
在Linux系统中运行Classic AUTOSAR软件系统有助于灵活适配各种应用场景,如并行仿真、使用开源软件、集成SOA系统等。对于需要执行大量测试用例的项目来说,纯命令行的CANoe4SW SE更为轻便,即使面临需要在短时间内执行数以万计的测试用例的任务,只需添加相应的CANoe4SW SE实例数量,即可轻松应对。相对传统新增HiL台架的方法来说,SiL可以更加灵活地辅助项目开发验证,成本更优。SiL可以有效地配合敏捷开发中对于功能验证快速迭代的需求;在集成总线仿真行为下,可直接回灌实车采集的原始报文而无需额外的数据处理工作来训练算法。
图4 多实例CANoe4SW SE使用场景示例
Classic AUTOSAR软件系统Linux适配
相关工具
创建流程
CANoe实现了从Windows端到Linux端的无缝衔接,从CANoe 15.0开始可直接对C、C++和Python软件系统进行测试。但对于AUTOSAR软件系统,需要结合vVIRTUALtarget Pro为Classic AUTOSAR软件系统进行虚拟化,并同时为软件系统创建用于被激励或监控的变量接口。结合CANoe和vTESTstudio便可实现“白盒” Component和Integration测试、“黑盒”的SWC和ECU测试、脱离目标板的Debugging、自动化测试和软件接口变量的可视化、更加便捷的虚拟控制器vECU的交互。
图5 虚拟化的Use Case举例
Classic AUTOSAR软件系统在Linux下的部署采用“在Windows端配置和生成,在Linux端编译和执行”的方式。Windows端的CANoe工程在完成相关必要配置之后,可以通过“Export”按钮导出能够被Linux端CANoe4SW SE使用的配置文件,CANoe4SW SE可以通过配置文件逐个创建项目工程实例化。
图6 Linux下项目工程实例的创建流程
配置与执行
对于基于Classic AUTOSAR的软件系统,可以配合vVIRTUALtarget 5.0生成用于Linux平台下执行的软件系统文件。在vVIRTUALtarget配置界面中加载SWC源码和接口描述文件arxml后,只需在配置完成的vVIRTUALtarget编译界面选择Linux-x64作为平台并选择对应的编译器版本。
图7 vVIRTUALtarget Pro中Linux平台编译选项
在软件系统配置完成之后,可以创建Linux下CANoe4SW SE使用的配置文件,在创建的同时可选是否使用log记录功能。
图8 导出CANoe4SW SE配置文件
将创建的配置文件传输到Linux系统下,为配置文件创建端口并发起终端命令。
图9 Linux下加载配置文件运行软件系统
小结与展望
CANoe在满足控制器总线测试和HiL测试的功能基础上,面向日趋复杂的软件系统全面扩展SiL功能,从而达到测试和开发的无缝对接。vVIRTUALtarget和CANoe4SW Server Edition不仅是支持Linux应用,而是结合IT技术为跨团队合作甚至跨国团队合作开发验证提供系统方案。得益于生成的软件系统再也不是源代码,而是编译后的文件,这使得供应商与整车厂之间虚拟交样成为可能。这样的交付方式既保证了供应商的源代码不会外泄,又使得整车厂和供应商在项目开发过程中可以持续集成软件系统,并且保证参与敏捷开发的软件系统可以在项目的各个阶段被验证,让漏洞在更早期被发现。尤其为有效实现ADAS/AD“数据闭环”的验证提供可行的技术辅助手段,结合DYNA4的动力学模型和场景仿真功能实现算法闭环验证。
图10 供应商与整车厂之间持续虚拟交样