众所周知,FreeRTOS 是一个实时操作系统。
例如,如果我们从维基中获取解释:
框架。
FreeRTOS 有一个我们可以称之为"控制反转"的东西 - FreeRTOS 控制程序员实现的所有任务。 FreeRTOS 也是可扩展的。 这个定义的问题在于,当我们采用"不可修改的框架代码"时 - FreeRTOS 主要部署为用户项目的源代码 - 您可以修改它。
FreeRTOS 是一个框架吗? 框架有更好的定义吗?
不,FreeRTOS 和大多数其他 RTOS 内核一样,只是一个工具包,而不是一个框架。这是因为您需要编写每个任务的正文,通常为无限循环。然后,您可以决定使用哪些 RTOS 阻止机制(信号量、时间延迟、事件标志等(来"限制"任务正文的执行。
在框架中,您通常不会这样做。该框架将提供任务的主体,并提供阻止机制。例如,框架可以将每个任务构建为具有消息队列的事件循环(也称为"消息泵"(。然后框架将调用您的代码来处理每个事件。这就是控制反转(框架的定义特征(的产生方式。
请注意,RTOS可以用作框架的组件,但RTOS本身不是框架。