全国服务热线:400-6263-721

位置:福州达内IT教育培训学校 > 学校动态 > RTOS调试——处理计时问题

RTOS调试——处理计时问题

来源:福州达内IT教育培训学校时间:2022/11/28 15:29:20

      毫无疑问,当你开始在嵌入式开发中使用实时操作系统(RTOS)时,会有一个学习曲线。你将在更高的抽象层次上工作,使用或多或少的并行任务,而不仅仅是子例程,并且你需要考虑你的任务应该如何彼此共享数据和处理器时间。你需要为这些任务分配运行时级,而zui佳解决方案并不明显。
  zui后但同样重要的是,你需要学习如何使用RTOS本身,比如配置和用于控制任务和任务间通信的API函数。
  一旦你掌握了所有这些,并且你正在编写你的代码,是时候进入下一个学习曲线了——你现在也必须学习如何调试你的代码。
  调试RTOS系统(通常使用选择式多任务处理)与调试单线程“超级循环”系统(所有代码都是你自己编写的)不同,这有几个原因,zui重要的两个原因是:
  l随着多个任务相互作用并争夺共享资源,软件行为可能会受到软件定时和RTOS调度行为的影响,而这在源代码中是不可见的。
  l你不再直接控制程序流——任务开关可能在任何地方、任何时间触发。
  这些问题真的没有办法解决,你必须处理这些问题,因为你必须信任操作系统来安排任务和管理计时器。某些任务切换可能是可预测的,因此是已知的,但通常你不知道它们将在程序流中的何处发生。在嵌入式开发中,随着系统中任务/线程的数量增加,组合的数量也会增加——可能会有大量可能的执行场景,具有不同的时间和执行顺序,其中大多数都会正常工作。
  下面列出了一些典型的症状,如果你有RTOS相关的计时错误,你可能会看到这些症状。请注意,这些问题中的许多通常具有一定程度的随机性;这个问题有时会出现,但并不总是出现。
  与RTOS相关的计时错误的一些典型症状
  l任务单独工作很好,但作为一个完整的系统就不行了
  l缓慢的性能
  l系统锁定,或者有时停止响应
  l系统看起来很脆弱——微小的改变会导致奇怪的错误
  l输出时序的随机变化
  l有时损坏的数据,或错误的输出
  l随机崩溃/硬故障
  依赖于时间的错误可能很难再现或发现,尤其是因为大多数调试工具对多任务问题几乎没有支持。在嵌入式开发中,大多数工具仍然专注于静态暂停系统,而不是动态软件行为。相比之下,许多系统都有实时要求,无法停止调试。
  除了寻找症状之外,你当然应该使用你拥有的任何工具及其提供的工具来检查RTOS和应用程序是否存在错误和不当行为。例如,IDE可能支持在调试期间(有时通过插件)轻松检查RTOS对象,甚至可以分析任务的堆栈使用情况。RTOS可以让你在较高的水平上测量CPU使用率,从而确定每个任务平均需要多少CPU时间。一些调试器可以在系统执行时实时显示变量(“实时观察”),尽管这可能不适合变化的变量。
  在嵌入式开发中,如果你想了解应用程序和RTOS内部实际发生的事情的可靠时间线,你需要一个能够感知RTOS的跟踪,在事情发生时记录下来,还需要一个工具来帮助你理解跟踪信息。
  站长帮手网(www.linkhelper.cn)
  文章格式化编辑
  繁简体相互转换
  文字挑错功能(1000个错别字词库)
  可定制段前是否空格
  只需鼠标点击
  全傻瓜式操作
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1725/news/578368/违者必究! 以上就是福州达内IT教育培训学校 小编为您整理 RTOS调试——处理计时问题的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721