作者:酷兔本兔小編:吃不飽
對于嵌入式代碼,為了測試軟件能否在目標芯片上實現預期的功能,通常需要進行PiL測試(Processor-in-the-Loop-Testing)。目前市面上較為常見的嵌入式軟件調試工具有PLS UDE和LAUTERBACH Trace32等。UDE和Trace32可以很好的完成軟件調試的工作,當然,我們也可以通過將TPT(基于模型的自動化測試工具,可覆蓋MiL到ViL全階段的測試)和這些調試工具進行集成,更高效、快捷的實施PiL階段的自動化測試。
通過TPT我們可以很方便的實現MiL/SiL的測試工程在PiL階段的完全復用。下面,我將以lights_control(車燈控制)模型生成的代碼為例,為大家演示如何基于TPT進行單元級代碼的PiL測試。
圖1 TPT與調試器集成
01測試準備
本次被測代碼是基于模型開發的單元級軟件,將模型轉成代碼后編譯成elf文件刷寫到目標板進行測試。涉及到的測試環境及版本信息如下:
①測試工程:MiL階段搭建的單元測試工程(TPT工程可完全復用)②測試工具:TPT + PLS UDE③調試器:PLS UAD2Next④目標板:Infineon TC233LP其中目標板和UAD之間使用JTAG口通訊,UAD和PC端通過USB進行連接。圖2 硬件連接
首先我們需要搭建一個可以正常運行的UDE工程,以便于后面通過TPT調用進行PiL測試。
圖3 搭建的UDE工程
02配置測試環境
在PiL測試過程中,TPT需要將測試用例數據發送到UDE,并讀取UDE從目標板讀到的輸出信號數據進行評估。因此,我們需要搭建測試環境將TPT和UDE鏈接起來。為方便測試環境的搭建,TPT提供了能滿足各階段測試的測試平臺,這里我們需要配置一個PLS UDE Platform。圖4 TPT PLS UDE Platform
①設置用例運行步長(和MiL保持一致)及用例最大運行時間②加載搭建好的UDE工程③加載被測的elf文件④選擇源代碼所在文件夾⑤設置斷點⑥設置信號讀/寫動作03設置斷點
為方便對代碼中的變量進行讀/寫操作,需要在程序中設置一些斷點。這里我們可以在TPT端直接進行斷點的設置,TPT會將斷點信息發送至UDE。TPT可以支持諸如普通斷點(指定斷點位置)、條件斷點等類型,并支持多控制器、多核斷點的設置。
一般來說,我們只需要設置兩個簡單的斷點即可滿足單元級別軟件的測試。通過指定代碼行,我們定義了如下所示的兩個斷點:
①程序入口(step_in):進入Step函數時的斷點,用于Write;②程序出口(step_out):跳出Step函數時的斷點,用于Read。圖5 設置斷點
為了讓程序能夠持續運行以便于我們能持續給入連續變化的信號,我們需要在TPT中設置一個斷點的循環,防止程序在斷點的位置停止。
圖6 斷點循環過程
圖7 TPT中設置斷點循環動作
04設置信號讀/寫動作
設置好斷點之后,我們需要在TPT中設置輸入/輸出信號的動作。這里我們在斷點step_in的位置把輸入信號設置為write,在斷點step_out的位置把輸出信號設置為read。設置好后,TPT即可把測試用例信息在斷點step_in灌入目標板,當step函數運行完成后在斷點step_out把輸出信號回采進行評估。圖8 TPT中設置信號動作
05MiL/SiL測試工程的快速復用
由于我們在MiL/SiL階段已經完成了對測試工程的搭建,得益于TPT提供的信號mapping的功能,我們只需要對信號做簡單的mapping即可實現測試工程的完全復用。
圖9 TPT中信號mapping
做完這些配置工作之后,我們即可運行測試工程,完成PiL測試,并生成相應的PiL測試報告。
圖10 測試執行
通過對該單元級代碼的測試,不難發現,TPT在實現不同測試階段的測試工程復用方面有著巨大的優勢——單元級軟件測試可實現同一測試工程覆蓋MiL/SiL/PiL所有階段,這無疑大大降低了我們的測試成本和周期。并且TPT在復雜測試用例信號編寫、復雜場景評估、創建回歸測試、實現自動化測試等方面都有著很大的優勢。敬請期待下篇:帶有Plant Model的PiL測試該如何做?
-
測試
+關注
關注
8文章
5653瀏覽量
128469
發布評論請先 登錄
老文章新視角:從靜態測試到CI/CT生態的進化

新能源車軟件單元測試深度解析:自動駕駛系統視角
新能源車背后的隱形守護者:軟件單元測試的生死較量?
單元測試在嵌入式軟件中的關鍵作用及winAMS工具的卓越貢獻
求助,關于NXP S32K3xx硬件板的SIL測試問題求解
模型測試全流程實戰沙盤,賦能CI/CD及SiL測試 ——TPT Workshop邀請函

嵌入式軟件測試的實戰洞察:從代碼漏洞到安全屏障
EE-141:ADSP-2106x和ADSP-2116x系列DSP上的基準測試C代碼

芯片極限能力、封裝成品及系統級測試
開發者必讀!CircleCI?組件測試與單元測試全解析
嚴格的單元測試造就完美的軟件
汽車HiL測試:利用TS-GNSS模擬器掌握硬件性能的仿真藝術

嵌入軟件單元/集成測試工具專業分析
符合ISO 26262的零部件級的軟件測試解決方案

單元測試、集成測試自動化工具

評論