实时操作系统基础知识

时间:2015-05-15 09:20:26

标签: rtos freertos

我正在尝试从头开始学习RTOS,为此,我使用freeRTOS.org作为参考。我发现这个网站是学习RTOS的最佳资源。但是,我有一些疑问,我试图找出但不能得到确切的答案。

1)如何找出该设备具有实时功能,例如有些控制器(TI Hercules)和其他没有(MSP430)?

2)这是否取决于CORE的体系结构(TI Hercules TMS570中的ARM Cortex-R CPU)?

我知道这些问题令人讨厌,但我不知道如何得到这些问题的答案。

提前致谢

编辑:

我还有一个问题,即RTOS中的“OS”是什么意思?这是否意味着与其他操作系统相同的操作系统,或者它只包含API的源代码文件?

5 个答案:

答案 0 :(得分:3)

实时能力是一个程度问题。运行频率为1 GHz的32位DSP比运行频率为16 MHz的8位微控制器具有更高的实时性。更强大的微控制器可以与更快的存储器和端口配对,并且可以管理需要大量数据和计算的应用(例如实时视频图像处理)。功能较弱的微控制器仅限于需要相对少量数据和计算的较低要求的应用(可能是实时电机控制)。

MSP430具有实时功能,可用于各种实时应用。有许多RTOS已经移植到MSP430,包括FreeRTOS。

为实时应用选择微控制器时,您需要考虑应用的数据带宽和计算要求。需要在多长时间内处理多少数据?还要考虑数据的范围和精度(整数或浮点)。然后找出哪个微控制器可以支持这些要求。

答案 1 :(得分:3)

确定设备是否具有"实时"能力有些随意,取决于您项目的时间要求。如果您的时序要求非常高,那么您将需要使用更快的微控制器/处理器。

使用RTOS(例如FreeRTOSeCOSuCOS-X)有助于确保给定任务在可预测的时间执行。 FreeRTOS website提供了对操作系统是什么以及操作系统声称实时功能意味着什么的良好讨论。 http://www.freertos.org/about-RTOS.html

您还可以从uC/OS-XFreeRTOS的端口页面看到它们可以在各种目标微控制器/微处理器上运行。

答案 2 :(得分:3)

虽然Cortex-R针对硬实时进行了优化;这并不意味着其他处理器不适合实时应用程序,甚至不适合特定应用程序。您需要考虑的是RTOS和处理器的特定组合是否会满足您的应用程序的实时约束;即使这样,最关键的因素是你的软件设计,而不是平台。

答案 3 :(得分:0)

一些理论知识也非常有用,例如:确定给定的任务集是否在给定的调度方法下是可调度的(有时可能不是),静态优先级和动态优先级调度之间的差异,优先级倒置问题等。

答案 4 :(得分:0)

您想从 RTOS 获得的主要目标是确定性,大多数其他功能已经在大多数其他非 RTOS 操作系统中可用。

RTOS 中的 -OS 部分意味着操作系统,简单地说,与所有其他操作系统一样,RTOS 提供了管理处理器资源所需的基础架构,因此您在设计应用程序时可以在更高级别上工作。为了访问这些功能,操作系统提供了一个 API。使用该 API,您可以使用信号量、消息队列、互斥锁等。

一个 RTOS 有一个要求是 RTOS,它必须是先发制人的。这意味着它必须支持任务优先级,因此当更高优先级的任务准备好运行时,可能的任务状态之一,调度程序必须将当前上下文切换到该任务。

这个操作有两个含义,一是需要一个精确的专用定时器,tick timer,二是上下文切换时,有相当大的内存操作开销。当前 CPU 状态,或多核 SoC 中的 CPU 状态,必须复制到抢占任务的上下文信息中,并且必须在 CPU 中恢复新的准备运行任务的上下文。

ARM 处理器已经提供对 System Timer 的支持,它专门用作 OS 滴答计时器。不久前,滴答计时器需要使用常规的非专用计时器来实现。

为具有实时功能的 RTOS 设计的内核中的一项优化是能够以最少的代码保存/恢复 CPU 上下文状态,因此与常规处理器相比,它的执行时间要少得多。

几乎可以在任何处理器中实现 RTOS,并且有一些针对资源受限内核的实现。您主要需要一个具有中断容量和 RAM 的定时器。如果 CPU 非常快,您可以以高速率运行操作系统滴答,在一些带有 DSP 的实时应用程序中为亚毫秒,或者在低端以较低的速率运行,例如每秒 10~100 个滴答,用于低端的低时序要求CPU。

相关问题