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