PiL测试实战(上)| 模型生成代码的单元级PiL测试

2个月前 (11-17 23:54)阅读2回复0
丸子
丸子
  • 管理员
  • 注册排名9
  • 经验值99800
  • 级别管理员
  • 主题19960
  • 回复0
楼主

媒介

关于嵌入式代码,为了测试软件能否在目的芯片上实现预期的功用,凡是需要停止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与调试器集成

测试筹办

本次被测代码是基于模子开发的单位级软件,将模子转成代码后编译成elf文件刷写到目的板停止测试。涉及到的测试情况及版本信息如下:

① 测试工程:MiL阶段搭建的单位测试工程(TPT工程可完全复用)

② 测试东西:TPT + PLS UDE

③ 调试器:PLS UAD2Next

④ 目的板:Infineon TC233LP

此中目的板和UAD之间利用JTAG口通信,UAD和PC端通过USB停止毗连。

图2 硬件毗连

展开全文

起首我们需要搭建一个能够一般运行的UDE工程,以便于后面通过TPT挪用停止PiL测试。

图3 搭建的UDE工程

设置装备摆设测试情况

在PiL测试过程中,TPT需要将测试用例数据发送到UDE,并读取UDE从目的板读到的输出信号数据停止评估。因而,我们需要搭建测试情况将TPT和UDE链接起来。为便利测试情况的搭建,TPT供给了能称心各阶段测试的测试平台,那里我们需要设置装备摆设一个PLS UDE Platform。

图4 TPT PLS UDE Platform

① 设置用例运行步长(和MiL连结一致)及用例更大运行时间

② 加载搭建好的UDE工程

③ 加载被测的elf文件

④ 选择源代码所在文件夹

⑤ 设置断点

⑥ 设置信号读/写动做

设置断点

为便利对代码中的变量停止读/写操做,需要在法式中设置一些断点。那里我们能够在TPT端间接停止断点的设置,TPT会将断点信息发送至UDE。TPT能够撑持诸如通俗断点(指定断点位置)、前提断点等类型,并撑持多掌握器、多核断点的设置。

一般来说,我们只需要设置两个简单的断点即可称心单位级别软件的测试。通过指定代码行,我们定义了如下所示的两个断点:

① 法式入口(step_in):进入Step函数时的断点,用于Write;

② 法式出口(step_out):跳出Step函数时的断点,用于Read。

图5 设置断点

为了让法式可以继续运行以便于我们能继续给入持续改变的信号,我们需要在TPT中设置一个断点的轮回,避免法式在断点的位置停行。

图6 断点轮回过程

图7 TPT中设置断点轮回动做

设置信号读/写动做

设置好断点之后,我们需要在TPT中设置输入/输出信号的动做。那里我们在断点step_in的位置把输入信号设置为write,在断点step_out的位置把输出信号设置为read。设置好后,TPT即可把测试用例信息在断点step_in灌入目的板,当step函数运行完成后在断点step_out把输出信号回采停止评估。

图8 TPT中设置信号动做

MiL/SiL测试工程的快速复用

因为我们在MiL/SiL阶段已经完成了对测试工程的搭建,得益于TPT供给的信号mapping的功用,我们只需要对信号做简单的mapping即可实现测试工程的完全复用。

图9 TPT中信号mapping

做完那些设置装备摆设工做之后,我们即可运行测试工程,完成PiL测试,并生成响应的PiL测试陈述。

图10 测试施行

通过对该单位级代码的测试,不难发现,TPT在实现差别测试阶段的测试工程复用方面有着庞大的优势——单位级软件测试可实现统一测试工程笼盖MiL/SiL/PiL所有阶段,那无疑大大降低了我们的测试成本和周期。而且TPT在复杂测试用例信号编写、复杂场景评估、创建回归测试、实现主动化测试等方面都有着很大的优势。

敬请等待下篇:带有Plant Model的PiL测试该若何做?

0
回帖

PiL测试实战(上)| 模型生成代码的单元级PiL测试 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息