0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PiL測試實(shí)戰(zhàn)(上)| 單元級(jí)代碼的PiL測試

北匯信息POLELINK ? 2022-11-22 10:19 ? 次閱讀


作者:酷兔本兔小編:吃不飽
對于嵌入式代碼,為了測試軟件能否在目標(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測試。

2d45b574-6857-11ed-b116-dac502259ad0.gif2d58b570-6857-11ed-b116-dac502259ad0.png2d45b574-6857-11ed-b116-dac502259ad0.gif圖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)行連接。2d45b574-6857-11ed-b116-dac502259ad0.gif2d974e7a-6857-11ed-b116-dac502259ad0.png2d45b574-6857-11ed-b116-dac502259ad0.gif圖2 硬件連接

首先我們需要搭建一個(gè)可以正常運(yùn)行的UDE工程,以便于后面通過TPT調(diào)用進(jìn)行PiL測試。

2d45b574-6857-11ed-b116-dac502259ad0.gif2eb68348-6857-11ed-b116-dac502259ad0.png
2d45b574-6857-11ed-b116-dac502259ad0.gif圖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。2d45b574-6857-11ed-b116-dac502259ad0.gif2f0d34f4-6857-11ed-b116-dac502259ad0.png2d45b574-6857-11ed-b116-dac502259ad0.gif圖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。2d45b574-6857-11ed-b116-dac502259ad0.gif2f639970-6857-11ed-b116-dac502259ad0.png2d45b574-6857-11ed-b116-dac502259ad0.gif圖5 設(shè)置斷點(diǎn)

為了讓程序能夠持續(xù)運(yùn)行以便于我們能持續(xù)給入連續(xù)變化的信號(hào),我們需要在TPT中設(shè)置一個(gè)斷點(diǎn)的循環(huán),防止程序在斷點(diǎn)的位置停止。

2d45b574-6857-11ed-b116-dac502259ad0.gif308edf80-6857-11ed-b116-dac502259ad0.png
2d45b574-6857-11ed-b116-dac502259ad0.gif圖6 斷點(diǎn)循環(huán)過程


2d45b574-6857-11ed-b116-dac502259ad0.gif30b5e922-6857-11ed-b116-dac502259ad0.png
2d45b574-6857-11ed-b116-dac502259ad0.gif圖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)行評估。2d45b574-6857-11ed-b116-dac502259ad0.gif30e1a4d6-6857-11ed-b116-dac502259ad0.png2d45b574-6857-11ed-b116-dac502259ad0.gif圖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ù)用。

2d45b574-6857-11ed-b116-dac502259ad0.gif30fe728c-6857-11ed-b116-dac502259ad0.png
2d45b574-6857-11ed-b116-dac502259ad0.gif圖9 TPT中信號(hào)mapping

做完這些配置工作之后,我們即可運(yùn)行測試工程,完成PiL測試,并生成相應(yīng)的PiL測試報(bào)告。

2d45b574-6857-11ed-b116-dac502259ad0.gif3142d4fe-6857-11ed-b116-dac502259ad0.png2d45b574-6857-11ed-b116-dac502259ad0.gif圖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測試該如何做?

316e2280-6857-11ed-b116-dac502259ad0.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    4927

    瀏覽量

    125955
收藏 人收藏

    評論

    相關(guān)推薦

    Linux內(nèi)核測試技術(shù)

    。內(nèi)核測試技術(shù)是實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵手段。本文將詳細(xì)介紹 Linux 內(nèi)核測試的各種技術(shù),包括單元測試、集成測試、功能測試和性能
    的頭像 發(fā)表于 08-13 13:42 ?247次閱讀
    Linux內(nèi)核<b class='flag-5'>測試</b>技術(shù)

    OTA自動(dòng)化測試解決方案——實(shí)車級(jí)OTA測試系統(tǒng)PAVELINK.OTABOX

    作者|網(wǎng)蟲小編|不吃豬頭肉引言往期內(nèi)容里為大家介紹了OTA技術(shù)、OTA后續(xù)的發(fā)展趨勢預(yù)測及OTA自動(dòng)化測試解決方案。本文是OTA系列的第三篇文章,今天主要向大家介紹實(shí)車級(jí)OTA自動(dòng)化測試的實(shí)現(xiàn)手段
    的頭像 發(fā)表于 07-11 08:26 ?413次閱讀
    OTA自動(dòng)化<b class='flag-5'>測試</b>解決方案——實(shí)車<b class='flag-5'>級(jí)</b>OTA<b class='flag-5'>測試</b>系統(tǒng)PAVELINK.OTABOX

    單元測試、集成測試自動(dòng)化工具

    CoverageMaster winAMS :?適用于嵌入式目標(biāo)機(jī)代碼單元測試/集成測試工具 全面支持嵌入式微機(jī)!驗(yàn)證嵌入式C/C++軟件 實(shí)施以模塊為單位的自動(dòng)化單元測試工具 不需
    的頭像 發(fā)表于 06-26 13:41 ?237次閱讀
    <b class='flag-5'>單元測試</b>、集成<b class='flag-5'>測試</b>自動(dòng)化工具

    接口測試的工具有哪些種類

    單元測試框架 單元測試框架主要用于測試單個(gè)模塊或函數(shù)的功能。雖然它們主要用于開發(fā)階段,但也可以用于接口測試。 1.1 JUnit (Java) JUnit 是 Java 語言的
    的頭像 發(fā)表于 05-30 15:07 ?425次閱讀

    嵌入軟件單元測試工具的作用

    測試單元進(jìn)行測試,來驗(yàn)證其是否按照設(shè)計(jì)要求正常工作。 嵌入軟件單元測試工具能夠提高開發(fā)人員的工作效率和軟件質(zhì)量。首先,它可以幫助開發(fā)人員快速地發(fā)現(xiàn)
    的頭像 發(fā)表于 04-23 15:31 ?330次閱讀
    嵌入軟件<b class='flag-5'>單元測試</b>工具的作用

    STM32F429做的PIL仿真速度非常慢的原因?

    各位大神好, 本人用MATLAB/SIMULINK搭建了小型直流電力系統(tǒng)。系統(tǒng)包含三個(gè)直流轉(zhuǎn)換器。相關(guān)三個(gè)控制器被載入STM32F429中,從而與SIMULINK構(gòu)成PIL仿真。仿真運(yùn)行一切正常
    發(fā)表于 04-11 07:28

    鴻蒙OS開發(fā)實(shí)戰(zhàn):【自動(dòng)化測試框架】使用指南

    為支撐HarmonyOS操作系統(tǒng)的自動(dòng)化測試活動(dòng)開展,我們提供了支持JS/TS語言的單元及UI測試框架,支持開發(fā)者針對應(yīng)用接口進(jìn)行單元測試,并且可基于UI操作進(jìn)行UI自動(dòng)化腳本的編寫。
    的頭像 發(fā)表于 04-08 14:49 ?1086次閱讀
    鴻蒙OS開發(fā)<b class='flag-5'>實(shí)戰(zhàn)</b>:【自動(dòng)化<b class='flag-5'>測試</b>框架】使用指南

    單元/集成測試服務(wù)

    單元/集成測試旨在證明被測軟件實(shí)現(xiàn)其單元/架構(gòu)設(shè)計(jì)規(guī)范、證明被測軟件不包含非預(yù)期功能。經(jīng)緯恒潤測試團(tuán)隊(duì)擁有豐富的研發(fā)經(jīng)驗(yàn)、嚴(yán)格的流程管控,依據(jù)ISO26262/ASPICE等開展符合要
    的頭像 發(fā)表于 02-29 13:27 ?293次閱讀
    <b class='flag-5'>單元</b>/集成<b class='flag-5'>測試</b>服務(wù)

    如何實(shí)現(xiàn)PIL和OpenCV之間圖像數(shù)據(jù)的轉(zhuǎn)換呢?

    PIL圖像數(shù)據(jù)格式轉(zhuǎn)換成OpenCV圖像數(shù)據(jù)格式
    的頭像 發(fā)表于 02-25 13:43 ?995次閱讀

    Tessy—嵌入式軟件單元測試/集成測試工具

    Tessy源自戴姆勒—奔馳公司的軟件技術(shù)實(shí)驗(yàn)室,由德國Hitex公司負(fù)責(zé)銷售及技術(shù)的支持服務(wù),是一款專門針對嵌入式軟件進(jìn)行單元/集成測試的工具。它可以對C/C++代碼進(jìn)行單元、集成
    的頭像 發(fā)表于 01-15 14:39 ?646次閱讀
    Tessy—嵌入式軟件<b class='flag-5'>單元測試</b>/集成<b class='flag-5'>測試</b>工具

    思瑞浦車規(guī)級(jí)測試中心正式運(yùn)營

    思瑞浦的車規(guī)級(jí)測試中心開業(yè)儀式在蘇州工業(yè)園區(qū)隆重舉行,標(biāo)志著思瑞浦車規(guī)級(jí)測試中心正式投入運(yùn)營。
    的頭像 發(fā)表于 12-27 15:19 ?597次閱讀

    軟件單元測試真的有必要嗎?(下)

    本篇將深入討論單元測試過程中,如何在保質(zhì)保量完成測試任務(wù)的同時(shí),縮減時(shí)間成本、提高測試效率,并分享目前行業(yè)內(nèi)的實(shí)踐經(jīng)驗(yàn)以及相關(guān)自動(dòng)化測試工具。
    的頭像 發(fā)表于 11-17 15:18 ?512次閱讀
    軟件<b class='flag-5'>單元測試</b>真的有必要嗎?(下)

    軟件單元測試真的有必要嗎?(

    本文著重探討單元測試的重要性及其正面臨的困境,并介紹功能安全標(biāo)準(zhǔn)中羅列的單元測試方法。
    的頭像 發(fā)表于 11-03 14:58 ?643次閱讀
    軟件<b class='flag-5'>單元測試</b>真的有必要嗎?(<b class='flag-5'>上</b>)

    車用電控單元散熱器的設(shè)計(jì)測試

    電子發(fā)燒友網(wǎng)站提供《車用電控單元散熱器的設(shè)計(jì)測試.pdf》資料免費(fèi)下載
    發(fā)表于 11-02 09:11 ?1次下載
    車用電控<b class='flag-5'>單元</b>散熱器的設(shè)計(jì)<b class='flag-5'>測試</b>

    使用VectorCAST MATLAB Toolbox獲取代碼覆蓋度的基本步驟

    不同階段的常用方法,用于有效驗(yàn)證生成的嵌入式代碼。SIL測試目的是驗(yàn)證嵌入式代碼的正確性,甄別潛在的問題,并評估程序的初步性能,一般在PC即可執(zhí)行;
    的頭像 發(fā)表于 10-26 11:06 ?887次閱讀
    使用VectorCAST MATLAB Toolbox獲取<b class='flag-5'>代碼</b>覆蓋度的基本步驟