博客
希望我們能(néng)與您分享和探讨成(chéng)長(cháng)中的點點滴滴
在Linux系統中運行Classic AUTOSAR軟件系統
分享到
“轉載自維克多汽車技術(上海)有限公司,作者Vector China”
無論是ADAS/AD軟件系統驗證的數據回灌訓練或并行仿真驗證,還(hái)是在軟件快速叠代中的持續集成(chéng)與持續測試,都(dōu)需測試工具滿足并行計算和可擴展計算的要求。高性能(néng)域控制器通常采用AP(Adaptive AUTOSAR)和CP(Classic AUTOSAR)共存的軟件架構,其中AP軟件系統可通過(guò)TAP的方式與測試環境集成(chéng),而CP軟件系統的集成(chéng)則面(miàn)臨挑戰;并行仿真環境(Server或雲)大多基于Linux系統,這(zhè)是測試工具集成(chéng)的難點;同時(shí)整個環境需要支持與任務調度工具(如Jenkins)的配合使用也是勢在必行。
圖1 開(kāi)發(fā)驗證Classic AUTOSAR軟件系統工具需“擁抱”Linux
敏捷開(kāi)發(fā)中的CB/CI/CT/CD
提高軟件系統的可靠性,降低開(kāi)發(fā)成(chéng)本、時(shí)間和風險是需要持續改善的工作。從體系和開(kāi)發(fā)流程的角度來看,需要結合汽車行業傳統V模型和互聯網模式的敏捷來形成(chéng)“敏捷的V流程”。因涉及開(kāi)發(fā)全流程的工作和團隊協同工作,故需要全流程的考慮,而不僅僅隻停留在站會(huì)和看闆:
>Artifact:需求、軟件架構和設計、軟件源代碼、測試用例(Unit、Integration和System Test)、測試腳本(CAPL、C#、TTE和測試模型)、測試環境(CANoe cfg、CANoe4SW SE rtcfg等)、測試日志和報告、自動化腳本等;
>System:持續集成(chéng)系統(如Jenkins)、需求管理系統(如DOORS、PTC、Polarion等)、代碼配置管理工具(如Git、SVN等)、編譯系統(如Cmake、Maven等)、測試編譯工具(如VectorCAST CLI、vTESTstudio CLI等)、測試管理工具(如PTC等);
>編譯和測試步驟:代碼提取(CMS系統)、編譯爲可執行軟件(編譯系統)、測試代碼和仿真環境提取、測試腳本編譯、安裝測試軟件和測試環境部署、運行測試、推送測試報告到Jenkins/TDM和CMS;
>其它:代碼覆蓋度和變更測試、不同環境(虛拟機、Docker Container、真實控制器或OTA系統)的SUT部署、高效測試所需流程(如按需選擇的測試執行)集成(chéng)。
圖2 持續集成(chéng)、持續測試和持續部署
持續測試爲開(kāi)發(fā)和測試提供持續反饋,持續集成(chéng)新增軟件功能(néng)或變更的軟件并在服務器端快速編譯集成(chéng),代碼倉庫中的軟件版本每次變更後(hòu)自動觸發(fā)生成(chéng)可測可交付的軟件産品,持續自動部署在虛拟機、Docker Container、真實控制器或推送到OTA系統中。
部署在Linux平台的CANoe4SW SE環境
CANoe4SW SE(CANoe4SW Server Edition)是基于Linux平台的成(chéng)熟方案(也支持Windows Server部署環境)。從CANoe 15.0和vVIRTUALtarget 5.0發(fā)布伊始,無縫對(duì)接Linux平台成(chéng)爲可能(néng)。基于Windows的CANoe項目工程文件可以直接導出并部署在Linux環境中,在CANoe4SW SE導入直接運行,避免二次配置的麻煩。
圖3 CANoe與CANoe4SW SE配置無縫對(duì)接滿足HiL和SiL
在Linux系統中運行Classic AUTOSAR軟件系統有助于靈活适配各種(zhǒng)應用場景,如并行仿真、使用開(kāi)源軟件、集成(chéng)SOA系統等。對(duì)于需要執行大量測試用例的項目來說(shuō),純命令行的CANoe4SW SE更爲輕便,即使面(miàn)臨需要在短時(shí)間内執行數以萬計的測試用例的任務,隻需添加相應的CANoe4SW SE實例數量,即可輕松應對(duì)。相對(duì)傳統新增HiL台架的方法來說(shuō),SiL可以更加靈活地輔助項目開(kāi)發(fā)驗證,成(chéng)本更優。SiL可以有效地配合敏捷開(kāi)發(fā)中對(duì)于功能(néng)驗證快速叠代的需求;在集成(chéng)總線仿真行爲下,可直接回灌實車采集的原始報文而無需額外的數據處理工作來訓練算法。
圖4 多實例CANoe4SW SE使用場景示例
Classic AUTOSAR軟件系統Linux适配
相關工具
創建流程
CANoe實現了從Windows端到Linux端的無縫銜接,從CANoe 15.0開(kāi)始可直接對(duì)C、C++和Python軟件系統進(jìn)行測試。但對(duì)于AUTOSAR軟件系統,需要結合vVIRTUALtarget Pro爲Classic AUTOSAR軟件系統進(jìn)行虛拟化,并同時(shí)爲軟件系統創建用于被(bèi)激勵或監控的變量接口。結合CANoe和vTESTstudio便可實現“白盒” Component和Integration測試、“黑盒”的SWC和ECU測試、脫離目标闆的Debugging、自動化測試和軟件接口變量的可視化、更加便捷的虛拟控制器vECU的交互。
圖5 虛拟化的Use Case舉例
Classic AUTOSAR軟件系統在Linux下的部署采用“在Windows端配置和生成(chéng),在Linux端編譯和執行”的方式。Windows端的CANoe工程在完成(chéng)相關必要配置之後(hòu),可以通過(guò)“Export”按鈕導出能(néng)夠被(bèi)Linux端CANoe4SW SE使用的配置文件,CANoe4SW SE可以通過(guò)配置文件逐個創建項目工程實例化。
圖6 Linux下項目工程實例的創建流程
配置與執行
對(duì)于基于Classic AUTOSAR的軟件系統,可以配合vVIRTUALtarget 5.0生成(chéng)用于Linux平台下執行的軟件系統文件。在vVIRTUALtarget配置界面(miàn)中加載SWC源碼和接口描述文件arxml後(hòu),隻需在配置完成(chéng)的vVIRTUALtarget編譯界面(miàn)選擇Linux-x64作爲平台并選擇對(duì)應的編譯器版本。
圖7 vVIRTUALtarget Pro中Linux平台編譯選項
在軟件系統配置完成(chéng)之後(hòu),可以創建Linux下CANoe4SW SE使用的配置文件,在創建的同時(shí)可選是否使用log記錄功能(néng)。
圖8 導出CANoe4SW SE配置文件
將(jiāng)創建的配置文件傳輸到Linux系統下,爲配置文件創建端口并發(fā)起(qǐ)終端命令。
圖9 Linux下加載配置文件運行軟件系統
小結與展望
CANoe在滿足控制器總線測試和HiL測試的功能(néng)基礎上,面(miàn)向(xiàng)日趨複雜的軟件系統全面(miàn)擴展SiL功能(néng),從而達到測試和開(kāi)發(fā)的無縫對(duì)接。vVIRTUALtarget和CANoe4SW Server Edition不僅是支持Linux應用,而是結合IT技術爲跨團隊合作甚至跨國(guó)團隊合作開(kāi)發(fā)驗證提供系統方案。得益于生成(chéng)的軟件系統再也不是源代碼,而是編譯後(hòu)的文件,這(zhè)使得供應商與整車廠之間虛拟交樣(yàng)成(chéng)爲可能(néng)。這(zhè)樣(yàng)的交付方式既保證了供應商的源代碼不會(huì)外洩,又使得整車廠和供應商在項目開(kāi)發(fā)過(guò)程中可以持續集成(chéng)軟件系統,并且保證參與敏捷開(kāi)發(fā)的軟件系統可以在項目的各個階段被(bèi)驗證,讓漏洞在更早期被(bèi)發(fā)現。尤其爲有效實現ADAS/AD“數據閉環”的驗證提供可行的技術輔助手段,結合DYNA4的動力學(xué)模型和場景仿真功能(néng)實現算法閉環驗證。
圖10 供應商與整車廠之間持續虛拟交樣(yàng)