創提部落格
希望我們能與您分享和探討成長中的點點滴滴
在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端的無縫銜接,從CANoe15.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 供應商與整車廠之間持續虛擬交樣