0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用深入洞察分析来测试软件

工程师兵营 来源:互联网 作者:佚名 2018-06-27 09:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式系统现在变得更加智能,互连程度更高,当然也比以前要复杂。要让嵌入式系统保持稳健并尽可能接近无错误,开发团队需要有效的方法来进行测试,验证系统能否按预期的方式工作。测试工作中最关键,通常也是难度最高的方面,就是在微控制器上运行软件。

由于在资源受限的器件上使用最新测试技术存在困难,微控制器软件测试通常落后于在基于应用处理器的器件上执行的测试。但是,由于我们在与传统测试工具设计技术配合使用的调试技术方面取得了新进展,嵌入式系统开发人员现在能够更加有效地测试系统软件。

本文将向开发人员介绍如何使用这些新技术,以及新技术实施所需的设备和工具。

嵌入式测试的要求变化

现代嵌入式系统测试工具要求开发人员采用以下四种主要组件,才能完全测试他们的系统(图 1):

测试嵌入式系统所需的各种接口和工具的框图

图 1: 测试嵌入式系统所需的各种接口和工具,包括调试器、通信转换器、逻辑分析仪和模数转换器。(图片来源:Beningo Embedded Group)

使用这四个组件,开发人员能够在系统级别和微控制器级别上测试嵌入式软件,还可向下深入到由微处理器执行的指令。在当今的开发环境中,这一点非常关键,旨在确保构建的系统不仅能够满足需求,还能够可靠地运行。

初看起来,图 1 可能类似于非常传统的嵌入式系统测试工具,但它的进步和新功能真正源于一种分析微控制器中运行情况的全新方式,称为“深入洞察分析”(Deep Insight Analysis)。

利用深入洞察分析来测试软件

深入洞察分析让开发人员能够在运行时分析系统。深入洞察分析有三个关键组成部分:

  • RTOS 感知的调试

  • 运行时分析

  • 剖析和代码覆盖分析

开发人员通常在设计应用之后,使用基本调试技术(例如断点调试)尝试了解系统的工作情况,随后立即开始测试。在存在断点的情况下进行测试只流于表面,无法让开发人员真正了解微控制器中的运行情况。使用深入洞察分析,开发人员能够在基本测试和调试之外更深入地挖掘 RTOS、运行时行为、执行分析和覆盖(图 2)。

深入洞察分析不仅限于基本测试和调试的图片

图 2: 深入洞察分析能够在基本测试和调试之外更深入地挖掘 RTOS、运行时行为、执行分析和覆盖。(图片来源: Beningo Embedded Group)

要为测试工具添加深入洞察分析功能,开发人员必须使用专业调试工具,例如 Segger Microcontroller Systems、J-Trace 或 J-Link Ultra+(图 3)。J-Link Ultra+ 使用标准的 JTAG 或 SWD 接口,从板载调试模块提取跟踪数据。这些信息可用于执行多种不同分析,例如 RTOS 感知的调试。

图 3: Segger 的 J-Link Ultra+ 使用标准的 JTAG 或 SWD 接口,从板载调试模块提取跟踪数据。(图片来源: Segger Microcontroller Systems)

使用 RTOS 感知的调试,开发人员能够在执行测试案例时监控任务的执行情况。例如开发人员能够深入了解以下情况:

  • 最大堆栈使用

  • 任务运行计数

  • 任务状态

图 4 显示了结合使用 Segger 的 embOS RTOS 和 Embedded Studio 的测试会话示例。此视图可以让开发人员深入了解 RTOS 的运行情况,但无法提供应用运行情况的完整信息。

Segger 的 embOS RTOS 和 Embedded Studio IDE 的图片

图 4: 使用 Segger 的 embOS RTOS 和 Embedded Studio IDE 的 RTOS 感知调试的示例(图片来源:Beningo Embedded Group)

开发人员可以使用 Segger 的免费 SystemView 实用工具或 Percepio 的 Tracealyzer 工具,进一步增强测试工具。这些工具为开发人员提供运行时分析,以便他们在运行测试套件时,直观地查看和分析应用的执行情况。为了采集这些跟踪数据,开发人员需要配置他们的应用,以便在 IDE 内部进行跟踪,或者使用配置工具进行跟踪。如果没有使用工具,他们可以手动集成低级别库。

运行时分析可为开发人员提供有关应用运行情况的丰富信息(图 5)。例如,开发人员能够:

  • 跟踪事件的时间和顺序

  • 获取最大、最小和平均的执行时间

  • 直观地查看任务执行,以及任务何时切换

  • 监控 CPU 负载

  • 分析任务统计数据

  • 识别潜在问题,例如优先级反转、任务抖动和死锁

使用跟踪工具 SystemView 进行的运行时分析的图片

图 5: 使用跟踪工具 SystemView 进行的运行时分析。(图片来源:Beningo Embedded Group)

虽然为测试工具添加了 RTOS 感知的调试和运行时分析功能,但这可能还不足够。在很多实例中,错误可能隐藏在测试过程中从不执行的代码中。对于开发人员而言,了解哪些代码行已经执行过可能非常困难。在这一方面,J-Trace 等工具为我们带来了很多便利。

如何跟踪已执行代码

J-Trace 使用微控制器中的嵌入式跟踪宏单元 (ETM) 端口来执行指令跟踪。通过指令跟踪,J-Trace 能够“看到”在处理器上执行的每一个 CPU 指令,以及代码的准确路径。

在测试工具中使用这种分析,开发人员能够确定测试案例是否达到了 80%、90% 或 100% 的代码覆盖率。如果测试覆盖率只有 95%,但又必须达到 100% 的覆盖率才能交付产品,他们可以使用类似于 Ozone 的免费实用工具,查看哪些代码行已经执行,更重要的是查看哪些代码行尚未执行(图 6)。然后可以添加新的测试案例,确保这些遗漏的代码行在测试中得到执行。

使用 Ozone 执行代码分析的图片

图 6: 使用 Ozone 执行代码分析。(图片来源:Beningo Embedded Group)

借助深入洞察分析提供的强大工具,开发人员现在能够自由专注于构建有效测试工具所必需的其他组件。测试工具的另一个至关重要的组件是在测试过程中用于与微控制器通信并控制其行为的工具。

命令和控制嵌入式系统

对于如何与外界进行交互,每个嵌入式都有不同的需求。有些器件可能通过简单的 UART 进行通信,而其他器件则可能使用 CAN 或 TCP/IP。为了成功地构建能够与系统进行通信并让其执行命令的测试工具,开发人员必须在测试工具中增加通信硬件和软件。

虽然嵌入式系统使用了大量不同的通信接口,但其中一种接口比其他任何接口都更加常用,那就是 UART。嵌入式软件开发人员习惯使用 UART,将这种接口包括在测试工具中很重要,原因有几个,其中包括:

  • 为了调试信息,例如打印消息(虽然这些信息应该通过调试器发送)

  • 设备发出命令

  • 监控多个器件之间的内部通信

  • 易于使用

每个开发人员都应在实验室常备的一种通用 UART 工具是由 SparkFun Electronics 提供的 BOB-12731 FT232R, USB-to-UART 评估板(图 7)。

图 7: 来自 SparkFun Electronics 的 BOB-12731 FT232R, USB-to-UART 评估板在任何实验室中都非常实用,因为它可以轻松连接到任何嵌入式系统。(图片来源: SparkFun Electronics)

这些价格低廉的评估板可以轻松连接到任何嵌入式系统,并在 PC 上作为简单的通信端口。它不需要任何特殊驱动程序或软件就能与嵌入式系统进行通信。开发人员只需打开 COM 端口即可开始发送和接收测试消息。

验证每个逻辑状态

要对嵌入式系统进行完全测试,就需要开发人员验证微控制器的内部工作情况,以及它产生的外部逻辑。这种逻辑可能是简单的输入和输出状态,以及低级别通信,例如 I2C 或 SPI。

但是,如果开发人员使用模数转换器 (ADC) 和数模转换器 (DAC) 板,则监控输入/输出状态和低级别通信可能成本高昂。开发人员可以利用一些技巧来降低成本,以便监控这些信号和改进测试功能。

第一个技巧是使用来自系统上的微控制器的开发板,来监控微控制器引脚。例如,如果开发人员使用 STMicroelectronics STM32F767 或 STM32L4 微控制器,则他们应该首先购买 STM32F767 Nucleo 板 或 STM32L476RGT6 Nucleo 板(图 8)。

图 8: STM32L476RGT6 Nucleo 板可用于监控 STM32L4 微控制器上的引脚。(图片来源:STMicroelectronics)

然后,他们应该使用板上的针座,直接将每个 I/O 引脚跳转到系统上的相应引脚。由于他们已经为微控制器开发了低级别驱动程序,因此可以轻松地调节这些驱动程序,以便监控微控制器的输入和输出状态。

开发人员还可以添加少量额外代码,例如 USB 驱动程序,这样开发板就能够直接插入到测试主机。USB 可用于接收输入/输出样本状态数据,随后这些数据可以关联至从系统发出和接收命令,以确定工作情况是否完全符合预期。

除了使用开发板之外,测试工具也可以使用逻辑探头,例如同样来自 SparkFun 的 Logic Pro 8(图 9)。

图 9: Logic Pro 8 是来自 SparkFun Electronics 的多功能逻辑探头,让开发人员能够针对要监控的对象,对每个输入进行编程。(图片来源: SparkFun Electronics)

这些逻辑分析仪具有多功能性,在要监控的对象方面,可通过软件对每个输入进行修改。例如,开发人员可设置前两个输入来监控开关输入,同时使用接着的两个输入来监控 I2C 通信,并使用剩余的输入来监控 SPI。数据可以轻松采集,然后与测试工具的剩余组件进行同步,从而让我们全面了解嵌入式系统的工作情况。

构建测试工具的技巧和诀窍

显而易见,测试工具对于很多现代嵌入式系统是必不可少的。获得认证有时可能非常困难,但认证产生的回报和带来的系统稳健性提升的价值会数倍于投资成本。在首次构建测试工具时,甚至在升级测试工具时,开发人员可以利用多种技巧,确保构建最有效的测试工具。其中包括:

  • 使用与主要目标相同的处理器的开发套件,来监控微控制器的数字输入和输出

  • 在支持跟踪功能的调试器上进行投资,并利用免费的软件包,以最深入地了解系统运行情况

  • 运行软件跟踪时,请务必使用最坏情况测试,以确保您能够获取最坏情况场景

  • 如果没有足够的资金来构建完善的测试工具,首先构建较小的测试工具,然后随着时间推移加以完善。哪怕只进行一部分测试,也强于没有进行测试。

  • 花费必要的时间掌握要在测试工具中使用的不同工具和组件

  • 不要害怕构建您自己的接口,要充分利用现有软件来监控系统运行情况

  • 不要做出任何假设!如果您没有监控输出或触发输入,则很可能让错误乘虚而入。

总结

为嵌入式系统开发测试工具,是一种改进嵌入式系统可靠性的低成本方法。精心选择测试工具的组件,可以让开发人员轻松监控软件的外部行为。测试的最关键而又经常易于忽略的环节是检查跟踪数据,现在这些数据可从微控制器轻松访问。使用这些跟踪数据,开发人员能够执行深入洞察分析,同时执行他们的测试案例,以确保其软件即使针对个别指令也能按预期工作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20159

    浏览量

    329003
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122618
  • 调试器
    +关注

    关注

    1

    文章

    325

    浏览量

    24931
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用软件的方法解决EMC问题

    有时候解决EMC问题利用软件的方法反而是更高效快速的。二整改案例今天分析一个用软件的方法解决EMC问题的实际案例,通过该案例可以了解到软件
    的头像 发表于 10-28 11:35 172次阅读
    <b class='flag-5'>利用</b><b class='flag-5'>软件</b>的方法解决EMC问题

    深入解析ATE自动测试系统的关键技术:电源产品的“能效判官”

    在电子制造领域,自动测试设备(ATE)系统扮演着至关重要的角色,尤其是在电源产品的测试中,它的作用不可或缺。ATE系统通过精确的测试分析,确保电源产品的能效和性能达到行业标准。本文将
    的头像 发表于 10-25 16:27 1195次阅读
    <b class='flag-5'>深入</b>解析ATE自动<b class='flag-5'>测试</b>系统的关键技术:电源产品的“能效判官”

    使用 APx 音频分析仪进行开环音频测试

    在本文中,我们将讨论开环音频测试的一些挑战,并介绍APx500软件中可用于简化这些测试的资源。闭环测试与开环测试首先,一些定义:我们使用“闭
    的头像 发表于 10-13 09:07 315次阅读
    使用 APx 音频<b class='flag-5'>分析</b>仪进行开环音频<b class='flag-5'>测试</b>

    BW-4022A半导体分立器件综合测试平台---精准洞察,卓越测量

    和智能化管理的迫切需求,因此我们的半导体测试设备配备了先进的自动化控制系统和智能数据分析软件。操作人员只需轻松设置测试参数,设备便能自动完成复杂的
    发表于 10-10 10:35

    嵌入式软件测试与专业测试工具的必要性深度解析

    MSO‌:提供电源完整性测试、时序分析、数字信号验证等硬件调试功能,以及中断处理分析、代码执行流程跟踪等软件调试能力。 测试工具选型建议选择
    发表于 09-28 17:42

    48V电源砖模块市场分析报告:市场洞察和元器件机遇

    电子发烧友网站提供《48V电源砖模块市场分析报告:市场洞察和元器件机遇.pptx》资料免费下载
    发表于 09-09 11:13 338次下载

    深入解析与使用感受:Isograph、Medini与REANA可靠性分析软件对比

    上海磐时PANSHI“磐时,做汽车企业的安全智库”深入解析与使用感受:Isograph、Medini与REANA可靠性分析软件对比汽车行业的复杂性和对安全性的高要求,使得传统的分析工具
    的头像 发表于 09-05 16:20 10次阅读
    <b class='flag-5'>深入</b>解析与使用感受:Isograph、Medini与REANA可靠性<b class='flag-5'>分析</b><b class='flag-5'>软件</b>对比

    泰克示波器MDO32以太网信号测试

    完美整合。在测试时,既可精准捕捉和分析时域信号的变化,又能深入洞察信号的频域特征,为复杂信号的调试与分析提供了极大的便利。它拥有较高的带宽,
    的头像 发表于 08-27 17:37 413次阅读
    泰克示波器MDO32以太网信号<b class='flag-5'>测试</b>

    利用矢量网络分析测试大动态范围微波器件的几种方法

    利用矢量网络分析仪对微波器件进行测试时,矢量网络分析仪的测试动态范围将影响被测微波器件(DUT)的测量范围、测量精度和测量速度。只有矢量网络
    的头像 发表于 08-27 17:33 1151次阅读
    <b class='flag-5'>利用</b>矢量网络<b class='flag-5'>分析</b>仪<b class='flag-5'>测试</b>大动态范围微波器件的几种方法

    MTA Studio:从测量测试执行到数据价值洞察,全程赋能

    本文导读致远仪器MTAStudio是一款面向电力电子测试测量应用的综合性软件平台。它集仪器管理、执行测试与历史数据深度分析等功能于一体,显著提升测试
    的头像 发表于 08-21 11:34 676次阅读
    MTA Studio:从测量<b class='flag-5'>测试</b>执行到数据价值<b class='flag-5'>洞察</b>,全程赋能

    京东 API 赋能,京东店铺广告投放数据深度洞察

    ​ 在当今电商竞争激烈的环境下,京东店铺如何高效管理广告投放并实现精准营销?京东 API(应用程序接口)作为核心技术工具,为店铺提供了强大的数据接入和分析能力。本文将深入探讨京东 API 如何赋能
    的头像 发表于 08-15 14:48 610次阅读
    京东 API 赋能,京东店铺广告投放数据深度<b class='flag-5'>洞察</b>

    是德Infiniium UXR 示波器:以高带宽、低噪声与智能分析重塑测试精准度

    Infiniium UXR 系列示波器以出色的宽带毫米波测量 EVM 性能、时域与频域多功能测量模式,以及可升级特性实现资源高效利用,成为科研与工程领域可靠且灵活的得力测试工具,为复杂设计提供深入
    的头像 发表于 05-21 11:13 507次阅读
    是德Infiniium UXR 示波器:以高带宽、低噪声与智能<b class='flag-5'>分析</b>重塑<b class='flag-5'>测试</b>精准度

    如何利用EPR分析USB PD?

    /ref_xdps2222_240w1/)。 我想知道是否有适用于 CY4500 或任何其他分析仪的新固件可以用于进行一些测试。 或者,您建议我们如何利用 EPR 分析 USB PD?
    发表于 05-21 06:40

    PanDao:制造成本影响分析软件工具

    设计出 最佳的制造流程。这样一,在光学系统的设计阶段就能将制造成本降至最低。 图1. 拟生产500片平面-非球面BK7透镜,用PanDao软件工具分析 图2. PanDao分析
    发表于 05-12 08:55

    Simcenter Testlab Neo多学科性能工程的新一代软件平台

    SimcenterTestlabNeo多学科性能工程的新一代软件平台通过在任何流程中集成分析和仿真模型,提高基于测试的多学科性能工程的工作效率和洞察力。为何选择SimcenterTes
    的头像 发表于 01-21 17:02 903次阅读
    Simcenter Testlab Neo多学科性能工程的新一代<b class='flag-5'>软件</b>平台