c++ - FreeRTOS(和其他 RTOS'es)也是一个框架吗

标签 c++ c frameworks rtos freertos

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

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

Framework .

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

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

最佳答案

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

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

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

关于c++ - FreeRTOS(和其他 RTOS'es)也是一个框架吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45166056/

相关文章:

c++ - OMNeT++中不同类型数据包之间的冲突

c++ - 为什么匿名对象有时需要默认构造函数?

c - 所有 Mac 程序都是用 Objective C 构建的吗?

ios - 当为 x86_64 构建包含的文件时,自定义框架会出现错误,该文件不是正在链接的架构

c# - .NET 3.5应用程序上的.NET Runtime 2.0错误

WPF:我不理解类TextCompositionEventArgs

c++ - 在 vector::push_back 内存明智的情况下会发生什么?

c++ - arm-linux-gnueabihf-g++ 是否具有可靠的 C++0x 支持

c - KDMF 驱动程序部署到 Windows 7 虚拟机

c - 整数和文件名作为 C 中的两个命令行参数