多任务的实时操作系统例如 FreeRTOS,为了满足实时性的要求,在任务的时间片划分、切换等方面做了非常严格和复杂的控制。当应用场景中多任务的功能、时序、交互较为复杂时,要分析系统整体的运行情况是一件非常棘手的事情。由于多任务操作系统存在切换代码堆栈空间的操作,因此通过各种调试器的断点、单步等调试手段无法进行函数执行跟踪,也无法进行实时性调试。通过调用系统 API 获取任务各项状态并打印输出的方式也无法保证实时性。通常的调试手段是将系统运行各种信息暂存在 RAM 中,并在需要的时刻导出为文件 (dump),并通过一个可视化软件离线进行分析。
FreeRTOS 提供了 FreeRTOS+Trace 的跟踪调试方案,该方案是 FreeRTOS 官方合作商 Percepio 开发的一种运行时诊断和优化工具,可以捕获系统运行时有价值的信息,然后在可视化的图形界面中展示这些信息,界面支持多种类型的视图,且视图间支持同步联动。在分析、排除故障或优化 FreeRTOS 应用程序性能时,这种调试方案是非常有用的。
本专栏对FreeRTOS+Trace的调试方案进行一个全面的介绍,通过阅读本文,您可以了解到以下内容
- 使用FreeRTOS+Trace需要准备什么环境,如何下载及安装相关工具
- FreeRTOS+Trace是如何工作的
- 如何导出跟踪数据并用可视化工具打开进行分析
- 如何衡量RAM占用与记录时长的关系,如何进行有效的设置以减少RAM占用量
- 如何在具体项目中使用FreeRTOS+Trace方案