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