使用RTOS感知调试简化调试

许多嵌入式应用程序已达到复杂程度 需要他们使用实时操作系统(RTOS)来管理任务 时间,内存和应用程序内的许多其他活动。使用RTOS 可以成为有助于简化开发的受欢迎的组件,但与此同时, 实时操作系统会增加复杂性,并可能出错。一种方法 开发人员可以用来提高对基于RTOS的了解 应用程序正在执行的是使用RTOS感知的调试。

支持RTOS的调试实质上是组件或插件 包含在开发人员的集成开发环境(IDE)中 了解正在使用的RTOS,并为开发人员提供有用的信息 有关RTOS和应用程序行为的信息。支持RTOS 调试通常可以包括基本信息,例如:

  • 任务或线程信息
  • 实时操作系统对象状态
  • 内存利用率
  • 计时器和系统统计

没有RTOS意识的调试,开发人员可能不得不 深入研究以找到他们想要的信息。

开发人员经常可以使用的信息 根据与IDE一起使用的RTOS的不同而不同。一个很常见的 有用的功能是查看线程信息的能力。当开发人员使用时 支持RTOS调试,他们可以查看线程状态信息以进行评估 重要细节,例如:

  • 线程优先级
  • 线程名称
  • 线程状态
  • 堆栈大小和最大使用量
  • Thead执行计数

在典型的应用程序中,开发人员通常必须 手动监视其线程堆栈,以确保它们没有 溢出。当他们能够使用自己的IDE集成到RTOS中时,他们 可以直观地监视此信息并查看最大堆栈使用量 并确定它们是否接近溢出,甚至 他们大大超过了堆栈。下面是一个例子 从使用SEGGER EmbOS的简单应用程序中提取。

虽然显示的信息看似基本,但可以提供 对他们的应用程序行为具有非凡洞察力的开发人员。 例如,我们可以清楚地看到512个字节中仅使用了140个字节 由每个线程为其堆栈。如果这是最坏的情况, 线程,开发人员可以决定将堆栈大小调整为256,然后使用 内存在应用程序中的其他位置。我们还可以看到,高度优先 任务运行49次,而低优先级任务运行13次。开发人员可以 快速查看此数字,如果我们期望2:1或3:1的比例,我们 可以识别出该应用程序不太正确。

如前所述,获取有关任务的信息是 真的只是起点。某些RTOS和IDE允许开发人员查看 更多信息。例如,E2 工作室与 Express Logic ThreadX 实时操作系统可以显示线程信息,但也允许 开发人员检查RTOS对象和状态的消息队列,进行计数 信号量,互斥量和事件标志。这使开发人员可以更深入 了解RTOS在其应用程序中的行为方式 传统上,嵌入式开发人员都可以使用。一个简单的例子 可以在下面看到,也可以与上面的示例进行比较。

结论

随着RTOS部署在越来越多的系统中,开发人员需要加快速度并开始使用可用于调试这些系统的新工具。支持RTOS的调试只是开发人员可以用来快速从其系统中收集传统上需要付出大量努力的见解的一种技术。 确保将其包含在工具箱中,以便减少调试时间。

如果您想了解有关在开发产品时如何使用RTOS的更多信息,可以签出 雅各的RTOS培训课程 要么 c完整的雅各布 帮助您开发RTOS软件架构。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.