作者:Yoshihito Ogawa,Sr Staff Software Engineer
本文將介紹在需要協(xié)同操作的多設(shè)備環(huán)境中軟件開發(fā)課題的解決方案。
架構(gòu)的演變與車載軟件
近年來,汽車行業(yè)正在經(jīng)歷重大變革。在這個變革中,趨勢和需求也發(fā)生了巨大變化,互聯(lián)、自動駕駛、駕駛輔助、電動化等功能需求逐年增加。隨著功能的增加,搭載的ECU也在不斷增加,為了適應(yīng)日益復(fù)雜的系統(tǒng),汽車的電氣/電子架構(gòu)(E/E架構(gòu))也在不斷發(fā)展。
為了控制這些系統(tǒng),需要構(gòu)成ECU的多個設(shè)備之間進行協(xié)調(diào)操作。
車載軟件開發(fā)中的課題
面向需要多個設(shè)備協(xié)同操作的多設(shè)備環(huán)境進行軟件開發(fā)面臨以下課題:
1. 難以判斷哪個設(shè)備的軟件出了問題
在多個設(shè)備上各類軟件協(xié)同運行的系統(tǒng)中,一個出現(xiàn)問題的軟件可能會導(dǎo)致其他設(shè)備上的軟件出現(xiàn)錯誤。在這種情況下,僅僅調(diào)試出錯的軟件是不夠的,還需要理解同時在其他設(shè)備上運行的軟件的行為,這樣才能找出問題的原因。
2. 難以確定系統(tǒng)何時負荷較高
在多設(shè)備系統(tǒng)中,可能存在在特定時刻負荷集中,從而導(dǎo)致無法實現(xiàn)最大限度運用系統(tǒng)硬件性能的情形。雖然使用現(xiàn)有的性能測定工具可以對單個設(shè)備進行分析,但是針對特定時刻來全面掌握系統(tǒng)負荷并不容易。
瑞薩電子的舉措和解決方案
瑞薩電子正在致力于開發(fā)面向前述多設(shè)備的軟件開發(fā)課題的解決方案。此次,我們將介紹其中的解決方案之一,即Synchronous Logging(以下稱為Sync Logging)
Sync Logging是用于多個設(shè)備構(gòu)成的系統(tǒng)的調(diào)試和分析的解決方案,它提供了一種方式來了解每個設(shè)備在相同時間點執(zhí)行了什么樣的處理。為了掌握各個設(shè)備的行為,我們會使用諸如strace、perf tool等Linux工具,以及嵌入在軟件中的日志消息。通過日志消息的時間信息,可以在發(fā)生錯誤的時間點上,查看其他設(shè)備上運行的軟件的行為,從而更容易確定錯誤的原因。
此外,為了掌握各設(shè)備的資源使用情況,我們使用能夠輸出帶有時間信息的日志的Linux命令和工具,如perf tool、top、vmstat等。通過同步具有時間信息的日志消息的時間,可以分析資源使用情況的信息,從而掌握特定時間系統(tǒng)的負荷狀況。
Sync Logging由運行在Host PC上的Trace Manager和運行在設(shè)備上的Trace Monitor這兩個工具組成。設(shè)備上運行的軟件或工具輸出的數(shù)據(jù)會經(jīng)由Trace Monitor傳送到Host PC上的Trace Manager。Trace Manager會將來自多個設(shè)備的數(shù)據(jù)按時間順序排列并輸出。通過分析這些輸出數(shù)據(jù),可以掌握同一時間各個設(shè)備上的軟件正在執(zhí)行什么樣的處理,以及系統(tǒng)的負荷情況如何。
開發(fā)狀況和今后的展開
Sync Logging已針對R-Car S4和R-Car V4H的評估環(huán)境進行開發(fā)。今后計劃擴展支持新一代R-Car產(chǎn)品和面向車載的MCU產(chǎn)品。此外,我們將持續(xù)努力擴展支持的工具,并對收集的數(shù)據(jù)進行更加直觀的顯示,以實現(xiàn)功能的增強和用戶體驗的提升。