让嵌入式系统保持稳健的方法和技术!

使用这四个组件,开发人员能够在系统级别和微控制器级别上测试嵌入式软件,还可向下深入到由微处理器执行的指令。

在当今的开发环境中,这一点非常关键,旨在确保构建的系统不仅能够满足需求,还能够可靠地运行。

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

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

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


  • RTOS 感知的调试

  • 运行时分析

  • 剖析和代码覆盖分析


开发人员通常在设计应用之后,使用基本调试技术(例如断点调试)尝试了解系统的工作情况,随后立即开始测试。在存在断点的情况下进行测试只流于表面,无法让开发人员真正了解微控制器中的运行情况。

使用深入洞察分析,开发人员能够在基本测试和调试之外更深入地挖掘 RTOS、运行时行为、执行分析和覆盖。

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

  • 最大堆栈使用

  • 任务运行计数

  • 任务状态


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

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

如何跟踪已执行代码

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

在测试工具中使用这种分析,开发人员能够确定测试案例是否达到了 80%、90% 或 100% 的代码覆盖率。

如果测试覆盖率只有 95%,但又必须达到 100% 的覆盖率才能交付产品,他们可以使用类似于 Ozone 的免费实用工具,查看哪些代码行已经执行,更重要的是查看哪些代码行尚未执行。

然后可以添加新的测试案例,确保这些遗漏的代码行在测试中得到执行。

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

验证每个逻辑状态

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

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

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

这些逻辑分析仪具有多功能性,在要监控的对象方面,可通过软件对每个输入进行修改。

例如,开发人员可设置前两个输入来监控开关输入,同时使用接着的两个输入来监控 I2C 通信,并使用剩余的输入来监控 SPI。数据可以轻松采集,然后与测试工具的剩余组件进行同步,从而让我们全面了解嵌入式系统的工作情况。

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

显而易见,测试工具对于很多现代嵌入式系统是必不可少的。获得认证有时可能非常困难,但认证产生的回 和带来的系统稳健性提升的价值会数倍于投资成本。

在首次构建测试工具时,甚至在升级测试工具时,开发人员可以利用多种技巧,确保构建最有效的测试工具。其中包括:


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

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

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

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

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

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

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

总结

为嵌入式系统开发测试工具,是一种改进嵌入式系统可靠性的低成本方法。精心选择测试工具的组件,可以让开发人员轻松监控软件的外部行为。

测试的最关键而又经常易于忽略的环节是检查跟踪数据,现在这些数据可从微控制器轻松访问。

使用这些跟踪数据,开发人员能够执行深入洞察分析,同时执行他们的测试案例,以确保其软件即使针对个别指令也能按预期工作。

上一篇 2018年7月5日
下一篇 2018年7月5日

相关推荐