0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何处理RTOS系统中的时序问题

星星科技指导员 来源:嵌入式计算设计 作者:Dr. Johan Kraft 2022-06-29 14:29 次阅读

毫无疑问,当您开始在开发中使用实时操作系统 (RTOS) 时,会有一条学习曲线。您将在更高的抽象级别上工作,使用或多或少的并行任务而不仅仅是子例程,并且您将需要考虑您的任务应如何共享数据和处理器时间。您需要为这些任务分配运行时优先级,最好的解决方案是什么并不是很明显。最后但同样重要的是,您需要学习如何使用 RTOS 本身,例如用于控制任务和在它们之间进行通信的配置和 API 函数。

一旦你掌握了所有这些并且你正在编写你的代码,就到了下一个学习曲线的时候了——你现在也必须学习如何调试你的代码。

调试 RTOS 系统(通常使用抢占式多任务处理)与调试您自己编写所有代码的单线程“超级循环”系统有几个不同的原因,但我想说两个主要原因是

由于多个任务交互并竞争共享资源,软件行为可能会受到软件时序和 RTOS 调度行为的影响,而在源代码中是不可见的。

您不再直接控制程序流程——任务切换可能随时随地发生。

这些问题真的没有办法解决。您将不得不处理它们,因为您必须信任操作系统来安排您的任务和管理计时器。一些任务切换可能是可预测的,因此是已知的,但通常您不知道它们会在程序流的哪个位置发生。随着系统中任务/线程数量的增加,组合的数量也在增加——可能存在大量可能的执行场景,具有不同的时间和执行顺序,其中大多数都可以正常工作。但是,您的一位客户报告了“噩梦错误”,只有在条件合适时才会出现,您无法重现。

下面的边栏列出了一些典型症状,如果您有与 RTOS 相关的时序错误,您可能会看到这些症状。请注意,其中许多问题通常具有一定程度的随机性;问题有时会出现,但并非总是如此。

依赖于时间的错误很难重现或发现,尤其是因为大多数调试工具对多任务问题的支持很少。在我看来,大多数工具仍然专注于静态停止系统,而不是动态软件行为。相比之下,许多系统具有实时要求,并且无法停止调试。

RTOS 相关时序错误的一些典型症状

任务可以单独工作,但不能作为一个完整的系统

性能缓慢

系统锁定,或有时停止响应

系统看起来很脆弱——微小的变化会导致奇怪的错误

输出时序的随机变化

有时数据损坏或输出错误

随机崩溃/硬故障

除了寻找症状之外,您当然应该使用您拥有的任何工具以及它们提供的工具来检查您的 RTOS 和应用程序是否存在错误和不当行为。例如,您的 IDE 可能支持在调试期间轻松检查 RTOS 对象(有时通过插件),甚至可以分析任务的堆栈使用情况。RTOS 可以让您在较高级别测量 CPU 使用率,让您了解每个任务平均需要多少 CPU 时间。一些调试器可以在系统执行时实时呈现变量(“实时监视”),尽管这可能不适合快速变化的变量。

如果您想查看应用程序和 RTOS 内部实际发生的事情的可靠时间线,您需要能够在事件发生时记录事情的 RTOS 感知跟踪,以及可以帮助您理解跟踪信息的工具。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10835

    浏览量

    211314
  • RTOS
    +关注

    关注

    22

    文章

    809

    浏览量

    119498
收藏 人收藏

    评论

    相关推荐

    SMT锡膏加工何处理缺陷?

    在SMT贴片加工,会出现一些加工缺陷和不良,锡膏缺陷就是其中之一,但可以通过一些方法来避免,那么我们应该怎么做呢?以下是深圳佳金源锡膏厂家的简要描述:一、SMT锡膏何处理锡膏缺陷:SMT
    的头像 发表于 09-03 16:03 239次阅读
    SMT锡膏加工<b class='flag-5'>中</b>如<b class='flag-5'>何处理</b>缺陷?

    freertos和rtos区别是什么

    RTOS 的主要特点是实时性、多任务处理、资源管理、中断处理等。 FreeRTOS 是一个开源的实时操作系统,由英
    的头像 发表于 09-02 14:18 1012次阅读

    RTOS的特性和类型

    实时操作系统RTOS)是一种可运行实时计算应用程序的软件平台,用于处理具有明确时间约束的事件和数据。与通用操作系统(GPOS)不同,RTOS
    的头像 发表于 08-20 11:29 522次阅读

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时性、多任务
    的头像 发表于 08-20 11:20 2515次阅读

    带你认识实时操作系统(rtos)

    实时操作系统RTOS)是为嵌入式系统和实时应用提供一个稳定、可预测和高效运行环境的操作系统。实时操作系统确保了
    的头像 发表于 04-16 16:30 1195次阅读
    带你认识实时操作<b class='flag-5'>系统</b>(<b class='flag-5'>rtos</b>)

    何处理SMT贴片加工的锡膏缺陷?

    在SMT贴片加工厂家的SMT贴片表面贴装流程,最重要的一个环节就是表面贴片封装技术的过程,而在这个过程,有时会在贴片加工的生产中遇到一些加工缺陷,比如锡膏缺陷,那么如何处理这些SMT贴片加工
    的头像 发表于 03-22 17:30 435次阅读
    如<b class='flag-5'>何处理</b>SMT贴片加工<b class='flag-5'>中</b>的锡膏缺陷?

    导热油管道漏油应该如何处理

    电子发烧友网站提供《导热油管道漏油应该如何处理.docx》资料免费下载
    发表于 03-06 15:41 0次下载

    基于RTOS的应用进程的典型线程

    RTOS的关键因素是最小的中断延迟和最小的线程切换延迟。RTOS的价值在于它的响应速度或可预测性,而不是它在给定时间段内可以执行的工作量。
    发表于 03-05 09:32 539次阅读
    基于<b class='flag-5'>RTOS</b>的应用进程<b class='flag-5'>中</b>的典型线程

    减速机渗油问题如何处理

    电子发烧友网站提供《减速机渗油问题如何处理.docx》资料免费下载
    发表于 03-05 09:18 2次下载

    请问RTOS USBSetuPcb回调函数是在中断还是单独线程处理的?

    解决这个问题,我需要知道的是:USBsetuPcb 是如何处理的。 - > 在处理 USB Setup 请求时,我的 RTOS AppThread 是否中断(并停止了? 还是在 RTO
    发表于 02-23 06:10

    AUIR3241STR SPICE模型如何处理才能在LTspice运行?

    官网上提供是加密SPICE模型,在LTspice运行不了。如何处理才能在LTspice运行
    发表于 02-20 06:47

    IMC300A中断系统,不同的中断源优先级如果设置为相同,请问中断时发生时如何处理

    IMC300A的中断系统,不同的中断源优先级如果设置为相同,请问中断时发生时如何处理? 在 “口的TBCTR和PASRBCTR 存档器,DPTR和LIMIT字段有何作业,能不能有具
    发表于 01-29 06:31

    AD8302输入信号如何处理

    在使用AD8302的时候,芯片手册上描述输入信号为-60dBm~0dBm在50Ω的系统,转换过来就是223.61uV~632.46mV的电压范围。 请问下,1. 如何控制输入信号在AD8302的要求范围内呢? 2.当信号高于这个范围呢,如2V,该如
    发表于 12-08 06:06

    何处理MOS管小电流发热?

    何处理MOS管小电流发热?
    的头像 发表于 12-07 15:13 591次阅读
    如<b class='flag-5'>何处理</b>MOS管小电流发热?

    什么是串扰?该如何处理它?

    什么是串扰?该如何处理它?
    的头像 发表于 12-05 16:39 818次阅读
    什么是串扰?该如<b class='flag-5'>何处理</b>它?