【问题标题】:RTOS vs Traditional Firmware CodingRTOS 与传统固件编码
【发布时间】:2013-11-03 23:45:10
【问题描述】:

我对嵌入式世界还很陌生。我在为基于 ARM M0+ 的飞思卡尔微处理器编写固件方面有一点经验。我目前正在使用 CML-5282 开发板 (M5282LITE) 开发一个新项目,它带有 RTXC Quadros RTOS。我想知道 RTOS 和只在 codewarrior IDE 中编码有什么区别。它们是否共存并且 RTOS 只是简化了调度?或者您可以将 IDE 全部替换为 RTOS 吗?我不知道 RTOS 是什么,请给我任何见解,我将不胜感激。

【问题讨论】:

    标签: rtos real-time-systems


    【解决方案1】:

    主要区别在于执行多任务处理的能力:并行运行更多任务。这是由调度程序完成的,它是操作系统的核心。由于它是一个实时操作系统(RTOS),任务可以根据一些实时调度算法进行调度。最受欢迎的是固定优先级(即,任务具有静态优先级,调度程序始终以最高优先级运行任务)。

    RTOS 的优点:

    • 您可以将应用程序拆分为多个同时运行的任务
    • 一些驱动程序已经可用并且可以通过标准 API 访问

    RTOS 的缺点:

    • 上下文切换导致的一些开销
    • 更复杂的调试(由于任务之间共享资源的竞争条件)

    【讨论】:

      【解决方案2】:

      不同的 RTOS 的大小和功能各不相同,但从根本上说,RTOS 提供任务或线程、同步机制、计时器和进程间通信的调度(通常是基于优先级的抢先式调度)。

      典型的 RTOS 以静态链接库的形式提供,您可以将其链接到您的应用程序,就像任何其他库一样。 IDE 完全不同,尽管在某些情况下,您可以通过运行时调试工具和(不太常见的)线程级调试将 RTOS 与 IDE 进行一些集成。

      您可以查看 Jack Ganssle 的 Fundamentals of Real-time Operating Systems 课程。它在示例中使用了 uC/OS-II,但相当通用且适用原则。

      【讨论】:

        【解决方案3】:

        RTOS 是一个代码库,您将与您的应用程序代码链接。 RTOS 提供了帮助您制作多任务应用程序的例程。这包括调度程序和任务间通信功能,例如信号量、队列和邮箱。

        RTOS 不会取代您的 IDE。您仍然需要用于编辑、编译、链接和调试应用程序的工具,而这正是 IDE 提供的。有时 IDE 是“RTOS 感知的”,这意味着调试器在调试多任务应用程序时提供了额外的帮助。例如,它可以以易于阅读的方式显示任务和信号量等 RTOS 数据类型。或者它可能支持特定于任务的断点。

        【讨论】:

          猜你喜欢
          • 2010-12-27
          • 1970-01-01
          • 1970-01-01
          • 2018-06-28
          • 2017-08-23
          • 2011-06-18
          • 2020-04-17
          • 2019-12-09
          • 2010-11-27
          相关资源
          最近更新 更多