隨著嵌入式系統復雜性的不斷提高,軟件缺陷的數量也在顯著地增加。即使工程師是天才,零缺陷仍是一種幻想。盡管如此,對這種理想目標的追求應該是任何嚴肅的項目管理的終極目標。 除了良好的系統架構和徹底的技術實施之外:(a)盡可能完整的測試;(b)應對現場錯誤的預防措施是及時以最好的產品質量開發出產品的重要前提。
完善的測試和有效的調試的關鍵因素是可觀察性--而且不對系統產生侵擾。CEDARtools利用復雜的電子設備和智能軟件,創建受監控處理器的數字孿生表現形式,以執行實時覆蓋率測量和運行時性能檢查。
CEDARtools 是業界首個針對嵌入式系統不插裝、持續實時觀察的工具,對已經發布的代碼進行監測且并不插裝,在高級別功能測試時不插裝,測量復雜的時間性能而不干擾系統的運行。
圖1 CEDARtools實時跟蹤數據采集分析模塊
CEDARtools充分利用了現代處理器中集成的跟蹤和調試單元(例如Arm?Coresight?、英特爾? Processor Trace、英飛凌MCDS),例如英飛凌AURIX?、恩智浦QorIQ?、英特爾Atom?和Arm?Cortex?這些處理器。它們的跟蹤單元將CPU及其外圍設備的運行細節展現給外部。但是,在運行時每秒會產生幾GBit的跟蹤數據,這些數據通過傳統的并行跟蹤端口或更現代,更可靠的串行接口(Nexus Aurora,Arm?HSSTP,Infineon AGBT,PCIe)輸出。
圖2 CEDARtools系統示意圖
支持所有級別的測試,執行目標碼級別的結構化覆蓋率分析(分支和語句覆蓋率,性能測量),同時可以反向標注到源代碼。
在任意時間片段,采用TeSSLa高級語言可以指定多種時間約束條件。軟件運行所產生的追蹤數據的存儲和離線處理耗時是以前很棘手的問題,CEDARtools利用先進的硬件技術和智能軟件可以輕松處理大多數標準處理器所產生的幾個G的追蹤數據流,例如如下處理器:
● Arm? Cortex?-A (通過HSSTP, PCIe 和 parallel4)
● Infineon Aurix? TC2xx, TC3xx (通過 AGBT)
● NXP QorIQ? P- and T-series (通過 Aurora 和 PCIe)
● Intel? Atom? E39x0 (通過 PCIe 和 USB4)
主要特性
● 實時、在線、持續地對嵌入式處理器進行觀測
● 在較高時間占用的復雜條件上觸發
● 支持多核
● 多個觀察焦點
● 自動化操作
● 支持語句覆蓋率
● 支持分支覆蓋率
● 性能測量(執行過的指令統計)
● 在目標碼級別上進行測量
● 在發布(release)代碼上實時測量分析
● 不插裝代碼
● 沒有緩沖區大小的限制
產品價值
● 測試工具庫中需求強烈的工具
● 強大的工具,可以發現捕獲難以發現的缺陷
產品應用
● 直接測試發布的產品代碼,不需要插裝代碼,在目標碼級別上開展結構化測試
● 在發布代碼上開展性能測量
● 復雜的時序驗證,通過TeSSLa高級語言進行配置
● 對影響的鏈路進行測量
在被測系統運行時對跟蹤數據進行實時分析相比跟蹤數據的脫機分析是根本性飛躍,因為它有效消除了中間緩沖需求帶來的瓶頸。但是,有兩個主要技術挑戰需要克服:
1.必須對高度壓縮的跟蹤數據流進行解壓縮,并且必須重建CPU的控制流。這種苛刻的計算通常必須處理1 GHz以上的時鐘頻率運行的多個快速CPU的執行跟蹤數據。該解碼可能會受到不同操作系統(例如Linux、RTMS或FreeRTOS)引入的其他抽象和間接調用的進一步挑戰。
2.必須將重構的控制流映射為對應的事件,以便開展各種后續分析任務。例如,(a)記錄用于分支覆蓋的信息,或者(b)可以根據時間邏輯規范來計算和驗證性能屬性。
圖3 CEDARtools運行概覽
圖3的ADAS(高級駕駛輔助系統)例子演示了自動化、非侵擾、持續監視時間的約束條件,持續檢查在讀取剎車傳感器read_brake_sensor() 和激活剎車 activate_brakes()之間的時間間隔少于5毫秒,發布的產品二進制文件(不需軟件插裝)加載到處理器中。在集成測試或者硬件在環系統測試(或者現場觀察)過程中,處理器產生的追蹤數據流通過并行端口或者串行高速接口(Nexus Aurora, Arm? HSSTP, Infineon AGBT, PCIe)輸出。這個過程將基于FPGA的數字孿生表示與對應的被測系統的進程相同步。當執行預定義的指令read_brake_sensor()和activate_brakes()時,將產生事件,然后可以針對指定的時間屬性即時檢查事件。使用的事件處理單元可以通過TeSSLa語言進行編程,并且可以并行監視大量時間屬性。TeSSLa對宏的支持可以適配各種行業標準,例如AUTOSAR TIMEX或AMALTHEA。
CEDARtools解決方案利用事件處理單元本地執行低級TeSSLa運算符。因此,它們僅針對給定的監視任務進行了重新編程。不需要專用的FPGA邏輯綜合。因此,可以在幾秒鐘內將高級屬性描述的更改應用于跟蹤數據流。另外,CEDARtools硬件也可以配置為測量結構覆蓋率(語句覆蓋率,分支覆蓋率,MC / DC)。
圖4 覆蓋率分析流程
圖5 覆蓋率統計結果
圖6 CEDARtool采用的技術與傳統技術的對比