與之相對應的挑戰也接踵而至:伴隨著功能的豐富與擴充,嵌入式軟體規模逐漸擴大,但因其偏向私域、定製化的特點,導致嵌入式軟體的開發缺乏統一規範,很大機率存在一定缺陷。一旦涉及航空航天、汽車等安全關鍵領域,這些可能存在的缺陷就會對人身、財產安全方面帶來極大威脅。
為什麼嵌入式軟體相較普通應用軟體更易存在缺陷?
最根本的原因是,嵌入式軟體需要依賴真實硬體才能執行,那麼在軟體開發初期,硬體資源未生產除錯完成之前,軟體開發處於盲盒狀態,極大地增加了軟體開發的不確定性。可以說,在嵌入式軟體開發的初期階段,不具備除錯的條件。
要解決這一問題並不難,時至今日,模擬已在眾多領域得到了廣泛應用,對嵌入式軟體而言也是如此,甚至更為有利,因為實物除錯對嵌入式軟體而言的風險實在太高:
1. 燒錄風險:在硬體資源比較充裕的情況下,嵌入式軟體的功能開發與驗證需要不斷重複完成燒錄除錯,而燒錄本身具有一定的風險性和不確定性。燒錄失敗可能導致整合在板卡上的儲存裝置失效。由於獨立更換儲存裝置的成本較高,最終結果往往是板卡整體報廢,甚至會導致裝置的損壞,帶來不必要的財產損失。
2. 環境風險:嵌入式軟體的實物除錯依賴硬體環境,因此外界環境的影響,如靜電、水等不確定因素很可能會引起硬體損壞,導致除錯工作無法順利進行,進而影響工期與交付、上市時間。
3. 場景限制:嵌入式軟體的除錯存在特定場景無法驗證的問題,如太空射線導致的裝置失靈。根據國內外對航天故障的統計結果,40%左右的故障源自太空輻射:1993年8月21日,美國五顆衛星同時失效,原因是使用的同一批定時器晶片均因宇宙射線輻照而失效;1994年,我國發射的“風雲二號”氣象衛星的失控也是由於一塊超大規模積體電路(Very Large Scale Integration, VLSI)晶片受到空間輻射影響而失效。
由此可見,對於嵌入式軟體而言,模擬不光能夠實現測試“左移”,還能有效規避上述風險,將問題扼殺在初期階段,保證嵌入式軟體不受場景限制地完成開發與除錯。這種優勢對於當前電動化、智慧化、網聯化的全球汽車發展方向而言無疑更為契合。
當前汽車行業對模擬的應用主要集中在對汽車ECU,也就是“行車大腦”的虛擬模擬。下文將介紹應用於汽車ECU的基於天目全數字實時模擬軟體SkyEye的TRACE32除錯,SkyEye負責提供汽車虛擬ECU的搭建平臺,結合TRACE32即可實現嵌入式模擬除錯。
*SkyEye:天目全數字實時模擬軟體SkyEye是一款國內自主研發、自主可控的嵌入式模擬軟體,支援多種處理器架構,如 ARM、DSP、PowerPC、SPARC、X86、MIPS、Tricore等。同時支援多種國產作業系統的除錯執行,如天脈、銳華、翼輝、RT-Thread等,支援Linux系統、Android系統除錯執行。
*TRACE32:嵌入式系統除錯工具,主要用於對微處理器、微控制器和數字訊號處理器(DSP)等嵌入式系統進行除錯和分析,提供了程式碼除錯、系統狀態監控、效能分析、系統控制、多核除錯等多種功能。
▲基於SkyEye的TRACE32除錯架構圖
功能:
SkyEye與TRACE32結合可實現多種高安全高可靠的嵌入式軟體研發目的,通常包含以下幾種:
-
嵌入式軟體開發:SkyEye用於模擬硬體,TRACE32用於程式碼除錯和驗證。透過單步執行、斷點設定、變數監視等功能,開發人員可以快速定位程式碼中的問題,確保軟體的正確性和穩定性。
-
模擬硬體除錯和驗證:透過檢視暫存器狀態、觀察訊號波形等,開發人員可以分析硬體的工作狀態和問題,並及時進行修復和最佳化。
-
效能分析和最佳化:支援跟蹤程式的執行路徑、記錄函式呼叫時間等,幫助開發人員分析程式的效能瓶頸並進行最佳化,提高系統的響應速度和效率。
-
多核系統除錯:SkyEye支援多核嵌入式系統,TRACE32偵錯程式可以同時除錯多個核心的程式碼和狀態,幫助開發人員理解多核系統的協同工作和通訊機制,確保系統的穩定性和可靠性。
-
系統整合測試:幫助開發人員在整合測試階段進行系統級除錯和驗證。透過模擬外部環境、模擬外部裝置等功能,開發人員可以模擬各種場景下的系統行為,並驗證系統的功能和效能。
優勢:
SkyEye與TRACE32的結合具有下列優勢:
-
系統結構簡單:TRACE32與SkyEye都是功能獨立的軟體,包含豐富的介面設計,透過簡單的配置即可實現兩款軟體的協同工作,一個頁面即可完成軟體對接配置。
-
功能易於操作:TRACE32作為上位機軟體,SkyEye作為下位機模擬軟體,透過配置連通後,在TRACE32中可對SkyEye模擬環境進行除錯,除錯過程視覺化,操作簡單。
-
結果響應及時:SkyEye虛擬ECU可實現真實ECU的1:1模擬,透過TRACE32可快速檢視結果,使模擬除錯工作不會感知到虛擬裝置的存在,達到與真實ECU一樣的處理結果。
-
整合測試便捷:SkyEye支援多種處理器模擬,可透過TRACE32同時除錯不同的模擬裝置,構建起整合測試環境,實現聯合測試效果。
總結
SkyEye虛擬ECU與TRACE32的完美結合能夠為汽車等安全關鍵領域的使用者有效降低軟體研發成本,併為增效、保質量保駕護航。可以大膽預測,該方案具備為使用者至少節省35%除錯時間、減少50%測試成本、縮短66%產品上市時間的能力。