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