伴隨“軟件化”和“敏捷化”的推進(jìn),從基于域(Domain)架構(gòu)到基于區(qū)域(Zonal)架構(gòu)的發(fā)展,亦或OEM成立軟件中心參與軟件開發(fā)與集成,均面臨復(fù)雜控制器軟件的整合。傳統(tǒng)開發(fā)大多采用Lauterbach或iSYSTEM等與CANoe結(jié)合實現(xiàn)在真實控制器上的調(diào)試工作;如今域控器、區(qū)域控制器和車載“電腦”中軟件將由多方獨立并行開發(fā)集成,故在開發(fā)階段大部分時間內(nèi)將面臨:無硬件或因耦合軟件由第三方開發(fā)而無法實現(xiàn)傳統(tǒng)調(diào)試或測試工作。在面對復(fù)雜控制器軟件系統(tǒng)時,CANoe可在虛擬環(huán)境實現(xiàn)軟件系統(tǒng)的調(diào)試和測試工作,Visual Studio(簡稱VS)或許是虛擬環(huán)境下進(jìn)行Classic AUTOSAR和Adaptive AUTOSAR中C/C++軟件系統(tǒng)調(diào)試與編譯的“利器”。
圖1:分布式軟件調(diào)試與測試工具鏈
在軟件系統(tǒng)開發(fā)過程中,因軟件系統(tǒng)虛擬運行環(huán)境部署困難,內(nèi)部變量調(diào)試成了測試、修正語法錯誤和邏輯錯誤阻礙了開發(fā)測試效率。過往大多汽車工程師將CANoe僅當(dāng)做總線工具或HiL平臺,隨著Vector的CANoe4SW被整合進(jìn)CANoe后,CANoe/CANoe4SW可實現(xiàn)C、C++和Python軟件系統(tǒng)的測試,同時結(jié)合針對AUTOSAR軟件虛擬化工具vVIRTUALtarget配合Visual Studio,從開發(fā)早期可介入車載軟件系統(tǒng)運行的調(diào)試,并使得后期持續(xù)有質(zhì)量的“虛擬”黑盒交樣成為了可能。本文就CANoe耦合VS在單機環(huán)境下實現(xiàn)AUTOSAR應(yīng)用層調(diào)試做簡要說明,相關(guān)工具見下表1。
調(diào)試Classic AUTOSAR SWCs中的C代碼
得益于vVIRTUALtarget對于Classic AUTOSAR的BSW Emulation功能,開發(fā)人員可在單個SWC開發(fā)完成之后對其進(jìn)行調(diào)試,隨著開發(fā)的進(jìn)度進(jìn)行,更多的SWCs可以被整合虛擬化并統(tǒng)一驗證。在創(chuàng)建Classic SWCs虛擬化軟件系統(tǒng)的過程中,與之相匹配的Visual Studio工程也會被同步生成,用作在CANoe中調(diào)試軟件系統(tǒng)的工程項目。
圖2 | vVIRTUALtarget支持Classic AUTOSAR的BSW Emulation
在調(diào)試之前只需要在CANoe中加載Classic SWCs虛擬軟件系統(tǒng)并在Visual Studio中把調(diào)試器加載到特定的進(jìn)程,在CANoe中啟動measurement即可開始調(diào)試軟件系統(tǒng)。
圖3 | 在Visual Studio中把調(diào)試器加載到被測系統(tǒng)進(jìn)程中
CANoe與Visual Studio配合調(diào)試可以快速訪問ECU中的內(nèi)部參數(shù),利用Visual Studio豐富的調(diào)試功能大大縮短了調(diào)試時間。特別是對于復(fù)雜的 ECU 或分布式功能,通過調(diào)試功能訪問 ECU 中的內(nèi)部信息為軟件系統(tǒng)或 ECU 堆棧開辟了新的、全面的開發(fā)及測試選項。特別是 AUTOSAR ECU,由于其結(jié)構(gòu)化布局由基本軟件 (BSW)、運行時環(huán)境 (RTE) 和軟件組件 (SWC) 組成,不需要通過接口,直接可以訪問用于測量和模擬測試的參數(shù)變量。
圖4| 使用Visual Studio調(diào)試Classic AUTOSAR SWCs
在CANoe中工程師除了可以對SWC的接口進(jìn)行激勵和監(jiān)控,也可以通過在Classic SWCs虛擬軟件系統(tǒng)中添加自定義變量,更靈活地虛擬軟件中添加變量用來控制一些本來不具有交互能力的臨時變量以及函數(shù)。自定義變量只需要以固定格式“VARIABLE_UINT32("CustomNamespace", MyVariable, 0)”描述在頭文件“Vtt_CustomVars_Cfg.h”中,vVIRTUALtarget即可自動識別并把相應(yīng)的系統(tǒng)變量創(chuàng)建在接口描述文件中,從而實現(xiàn)在CANoe中對中間變量的持續(xù)觀測。
調(diào)試Adaptive AUTOSAR APPs中的C++代碼
圖5 | 利用Visual Studio配合CANoe/CANoe4SW對軟件系統(tǒng)進(jìn)行調(diào)試
伴隨Vector發(fā)布的CANoe4SW和CANoe的整合,開發(fā)人員可以根據(jù)C、C++和Python工程的環(huán)境配置編譯運行在不同的系統(tǒng)平臺和硬件環(huán)境,無論將Adaptive AUTOSAR APPs部署在Windows或Linux 虛擬環(huán)境中,CANoe/CANoe4SW都可以根據(jù)預(yù)先定義好的接口結(jié)構(gòu)以及類型自動生成與之相匹配的SiL Adapter作為Adaptive APPs的一部分進(jìn)行編譯,編譯后的可執(zhí)行程序即使運行在遠(yuǎn)程的PC主機上,只要一根網(wǎng)線即可與CANoe/CANoe4SW互通,使CANoe/CANoe4SW能對于預(yù)先定義的接口進(jìn)行觀測及激勵等調(diào)試行為。
圖6 | 在Adaptive AUTOSAR APPs中添加斷點并設(shè)置為自動繼續(xù)模式
在調(diào)試Adaptive AUTOSAR APPs的過程中,開發(fā)人員更多會關(guān)注于某些內(nèi)部變量和臨時變量的實時變化的調(diào)試和分析,從CANoe/CANoe4SW 15 SP3提供了免費的支持Visual Studio Code和Visual Studio的插件:Distributed Software Debugging Plug-Ins,通過該插件,開發(fā)人員可以在Visual Studio工程中的Adaptive AUTOSAR APPs中C++源代碼的任意函數(shù)中加入斷點,而這個斷點中所有的變量就可以同步被顯示在CANoe/CANoe4SW的Trace窗口中。
圖7 | CANoe中同步顯示C++源代碼斷點函數(shù)中的變量
Distributed Software Debugging Plug-ins在Visual Studio中提供了豐富的配置項以更好地配合CANoe/CANoe4SW聯(lián)調(diào)使用。通過配置,在不操作CANoe/CANoe4SW的情況下,一旦在Visual Studio中開啟了調(diào)試,CANoe/CANoe4SW中的measurement會自動開啟,立即進(jìn)行數(shù)據(jù)收發(fā)及監(jiān)控,即使是初始化值也不會錯漏。除此之外,Visual Studio中源代碼的局部變量的類型也可以在CANoe/CANoe4SW中設(shè)置成各種類型的顯示方式,以便在監(jiān)控變量的時候更加直觀便捷。插件位于CANoe/CANoe4SW安裝路徑下的Installer Additional ComponentsDistributedDebugging文件夾中,雙擊插件即可自動安裝,更多細(xì)節(jié)說明和配置詳見CANoe/CANoe4SW的Help手冊中Distributed Software Debugging章節(jié)。
-
控制器
+關(guān)注
關(guān)注
114文章
16960瀏覽量
182885 -
編譯
+關(guān)注
關(guān)注
0文章
676瀏覽量
33743 -
CANoe
+關(guān)注
關(guān)注
4文章
71瀏覽量
9064
原文標(biāo)題:基于CANoe和Visual Studio實現(xiàn)Classic 和Adaptive AUTOSAR應(yīng)用層調(diào)試
文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
CANoe產(chǎn)品體系19版本新功能(下)

如何在Visual Studio 2022中運行FX3吞吐量基準(zhǔn)測試工具?
在Visual Studio中運行Hello分類樣本 ,僅在Visual Studio輸出中收到錯誤消息,怎么解決?
黑芝麻智能與Elektrobit推出Classic AUTOSAR解決方案
AUTOSAR通信與網(wǎng)絡(luò)安全 AUTOSAR通信在車輛中的應(yīng)用
AUTOSAR通信實現(xiàn)中的常見問題
AUTOSAR中通信堆棧的配置 AUTOSAR通信模塊測試方法
AUTOSAR通信與CAN協(xié)議的關(guān)系
AUTOSAR通信組件介紹 AUTOSAR通信層功能分析
AUTOSAR通信協(xié)議解析 如何實現(xiàn)AUTOSAR通信
Vector推出一套基于Visual Studio Code的免費插件

AUTOSAR解決方案 — INTEWORK-EAS-AP

Linux應(yīng)用層控制外設(shè)的兩種不同的方式

Vector和HighTec推出基于Rust和AUTOSAR Classic實現(xiàn)安全應(yīng)用的解決方案

評論