【问题标题】:Is FreeRTOS (and other RTOS'es) also a frameworkFreeRTOS(和其他 RTOS)也是一个框架吗
【发布时间】:2017-07-18 11:53:41
【问题描述】:

众所周知,FreeRTOS 是一个实时操作系统。

例如,如果我们从 wiki 中获取解释:

Framework.

FreeRTOS 有一些我们可以称之为“控制反转”的东西——FreeRTOS 控制着程序员实现的所有任务。 FreeRTOS 也是可扩展的。 这个定义的问题是当我们采用“不可修改的框架代码”时——FreeRTOS主要作为用户项目的源代码部署——你可以修改它。

FreeRTOS 是一个框架吗? 框架有更好的定义吗?

【问题讨论】:

  • 因为“框架”是一个概念,所以你需要问“框架是干什么用的?”例如,FreeRTOS 可以成为提供实时操作系统应用程序开发环境的框架的一部分。

标签: c++ c frameworks rtos freertos


【解决方案1】:

不,与大多数其他 RTOS 内核一样,FreeRTOS 只是一个工具包,而不是一个框架。这是因为需要编写每个任务的主体,通常是一个无限循环。然后,您决定使用哪些 RTOS 阻塞机制(信号量、时间延迟、事件标志等)来“限制”任务主体的执行。

在框架中,您通常不会这样做。该框架将提供您的任务主体,并且还将提供阻塞机制。例如,一个框架可以将每个任务构建为一个带有消息队列的事件循环(又名“消息泵”)。然后框架将调用您的代码来处理每个事件。这就是控制反转(框架的定义特征)是如何产生的。

请注意,RTOS可以用作框架的组件,但 RTOS 本身并不是框架。

【讨论】:

    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 2014-11-10
    • 2011-07-21
    • 1970-01-01
    相关资源
    最近更新 更多