FREERTOS实时内核实用指南中文版免费下载

2019-01-17 16:37:19 0评

资料大小:2.90 MB

所需积分:0

下载次数:0

  小型多任务嵌入式系统简介

  不同的多任务系统有不同的侧重点。以工作站和桌面电脑为例:

  早期的处理器非常昂贵,所以那时的多任务用于实现在单处理器上支持多用户。这类系统中的调度算法侧重于让每个用户”公平共享”处理器时间。

  随着处理器功能越来越强大,价格却更偏宜,所以每个用户都可以独占一个或多个处理器。这类系统的调度算法则设计为让用户可以同时运行多个应用程序,而计算机也不会显得反应迟钝。例如某个用户可能同时运行了一个字处理程序,一个电子表格,一个邮件客户端和一个 WEB 浏览器,并且期望每个应用程序任何时候都能对输入有足够快的响应时间。

  桌面电脑的输入处理可以归类为”软实时”。为了保证用户的最佳体验,计算机对每个输入的响应应当限定在一个恰当的时间范围——但是如果响应时间超出了限定范围,并不会让人觉得这台电脑无法使用。比如说,键盘操作必须在键按下后的某个时间内作出明显的提示。但如果按键提示超出了这个时间,会使得这个系统看起来响应太慢,而不致于说这台电脑不能使用。

  仅仅从单处理器运行多线程这一点来说,实时嵌入式系统中的多任务与桌面电脑的多任务从概念上来讲是相似的。但实时嵌入式系统的侧重点却不同于桌面电脑——特别是当嵌入式系统期望提供”硬实时”行为的时候。

  硬实时功能必须在给定的时间限制之内完成——如果无法做到即意味着整个系统的绝对失败。汽车的安全气囊触发机制就是一个硬实时功能的例子。安全气囊在撞击发生后给定时间限制内必须弹出。如果响应时间超出了这个时间限制,会使得驾驶员受到伤害,而这原本是可以避免的。

  大多数嵌入式系统不仅能满足硬实时要求,也能满足软实时要求。

  在 FreeRTOS 中,每个执行线程都被称为”任务”。在嵌入式社区中,对此并没有一个公允的术语,但我更喜欢用”任务”而不是”线程”,因为从以前的经验来看,线程具有更多的特定含义。

  任务是由 C语言函数实现的。唯一特别的只是任务的函数原型,其必须返回 void,而且带有一个 void 指针参数。

相关文章

0个回复

我要评论

热门标签