下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

合作伙伴

通过 Percepio 的 Tracealyzer 和 DevAlert 实现 FreeRTOS 的可观测性

Percepio 是著名的 Tracealyzer 背后的公司,Tracealyzer 是一款桌面应用程序, 可帮助嵌入式工程师通过轨迹直观地诊断软件中的问题。什么是轨迹?轨迹是一种低层级的日志记录机制, 可用于解释系统在执行过程中的状态。使用 FreeRTOS 分析基于微控制器的应用程序的轨迹, 可在排除意外行为时为嵌入式工程师节省大量时间和精力。将此工具与 FreeRTOS 应用程序结合使用, 只需简单集成 TraceRecorder 库即可捕获轨迹信息。可以在程序执行过程中记录和保存轨迹快照, 也可以实时流式传输。

加载轨迹后,Tracealyzer 可通过可配置视图(如程序时间线、事件日志、CPU 负载图、内存使用情况、任务依赖性和许多其他有用的可视化视图) 提供执行细节。这些功能有助于实现所谓的可观测性。您可以在 FreeRTOS 应用程序中深入跟踪任务和内核 API 调用。以下是在加载了示例 FreeRTOS 轨迹信息的笔记本电脑上运行的 Tracealyzer 的快照。请注意轨迹视图面板中的 FreeRTOS API调用,例如 xQueueSend()xQueueReceive()。除了代码调试,您还可以查看与轨迹序列相关的 CPU 负载图。

Tracealyzer 主窗口
加载了示例 FreeRTOS 轨迹的 Tracealyzer。 点击放大。

Tracealyzer 可用于嵌入式应用程序的开发和测试,也可用于处理现场遇到的问题。您可以访问 Percepio 网站上的 Tracealyzer for FreeRTOS 了解如何使用该工具。此外, 您还可以参考这份有用的入门指南, 在 FreeRTOS 应用程序中设置 TraceRecorder 库。

除 Tracealyzer 外,Percepio 还提供一种基于云的产品,称为 DevAlert。DevAlert 是对 Tracealyzer 的补充,具有许多面向生产用例的功能。DevAlert 从可观测性的另一侧出发,是一种可配置的服务, 可通过云连接从远程设备机群中捕获特定诊断信息。重要的一点是,您可以定义有意义的特定数据元素 和要发出的警报类型。此外,设备固件和诊断数据都不需要直接发送到 DevAlert 服务, 而是存储在您自己的云账户中(例如 AWS S3)。

分离存储的使用解决了隐私和安全问题,因为这些数据仍保留在设备制造商的账户中,不会上传到 Percepio 服务。由于采用了桌面客户端 DevAlert Dispatcher 的混合设计, 当 DevAlert 面板链接触发时,DevAlert Dispatcher 会从分离存储中下载所需的数据, 因此仍可通过单击访问诊断数据。以下是 DevAlert 服务的架构图,展示了这种分离存储模式。

DevAlert 架构
图 2:DevAlert 架构。 点击放大。

这种架构允许多种类型的调试数据,并配备相关桌面工具。你可以获取 Tracealyzer 轨迹, 查看导致检测到异常的一系列事件。此外,最近还增加了对 GDB 崩溃转储的支持,如下截图所示。

GDB 崩溃转储截图
图 3:GDB 崩溃转储截图。 点击放大。

您可以使用常规源代码调试器更详细地分析崩溃和其他异常,就像调试本地设备时一样。您还可以添加自己的诊断有效载荷、 查看器工具和脚本,以备不时之需。

探索 DevAlert 功能的最简单方法是启动 Percepio 免费提供的沙盒环境。沙盒包括一个在 QEMU 仿真器中运行的 FreeRTOS 示例应用程序, 作为连接 DevAlert 的虚拟设备。

首先,注册,然后登录 DevAlert,在控制台按 “Activate Service(激活服务)”。只需几步,您就可以在浏览器中访问一个虚拟桌面, 显示模拟电梯项目。示例中的电梯控制器是一个运行 FreeRTOS 应用程序的虚拟设备, 已配置为可产生不同类型的警报。电梯动画展示了控制器在任何给定时间内发生的情况。

模拟电梯项目
图 4:模拟电梯项目。 点击放大。

您可以查看源代码,了解如何根据运行中的 FreeRTOS 应用程序所遇到的事件类型来配置警报。我们还提供了一组场景来引发已知问题, 以演示警报。执行场景后,返回 DevAlert 控制台并点击仪表板。在这里,您可以看到 问题概览,其中的警报已按唯一性分组。当警报发送到服务时,仪表板会更新。

DevAlert 控制台
图 5:DevAlert 控制台。 点击放大。

正如您从仪表板上的 “Open(打开)”按钮所看到的,如果您想从设备上深入研究轨迹本身,甚至可以从 DevAlert 启动 Tracelyzer。通过这种方式, 这两个工具相互补充,为 FreeRTOS 应用程序提供了完整的可观测性视图。适用于 FreeRTOS 的 Tracealyzer 和 DevAlert 还有更多值得探索的地方, 请按照上面的链接开始使用您自己的嵌入式应用程序。跟踪愉快!

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.