freeRTOS手册 -- 序言

FreeRTOS是一个专业的实时操作系统,适用于微处理器和嵌入式系统,提供任务抢占、优先级分配等功能,确保硬件和软件的实时需求得到满足。其开源许可证允许免费用于商业项目,且有商业版升级选项。文章还讨论了实时内核的重要性,如模块化、性能优化和电源管理,并介绍了FreeRTOS的基础功能,如任务调度、中断处理和许可证信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果我对本翻译内容享有所有权。允许任何人复制使用本文章,不会收取任何费用。如有平台向你收取费用与本人无任何关系

序言

关于FreeRTOS

FreeRTOS是由Real Time Enginners公司拥有,开发和维护。Real Time Enginners公司已经和世界各地的领军企业合作超过10年,为你提供优质的,商业级和高质量完全免费的软件支持。
FreeRTOS非常适用于微处理器和小微处理器上运行实时程序。这种程序通常是硬件和实时软件需求的混合。
软件的实时需求是一个时间期限状态,但违背时间期限不会导致系统不可用。比如按键响应太慢可能让系统看起来失去响应,但实际上不会让它无法使用。
硬件的实时需求是另一种的时间期限,违背这些时间期限会绝对的导致系统错误。比如,汽车的安全气囊破坏传感器输入,导致响应缓慢会造成更多伤害相比好的时候。
FreeRTOS是一个在嵌入式程序之上的实时系统(实时调度器),它可以满足这些硬件实时需求。程序就像一个个独立被执行的线程一样初始化。单处理器系统上,一次只能有一个线程任务执行。内核会通过测试每个任务关联优先级决定执行哪个线程。最简单的方式程序设计者可以指定一个更高的优先级,以满足硬件实时需求,低优先级线程任务实现软件实时需求。这样确保硬件实时需求总是在软件实时需求之前执行,但程序优先级的设置往往没有这么简单。
如果你不是完全理解上面章节的概念也不要担心。接下来的章节会提供详细的解释,还会带有例子帮助你明白,怎么使用实时系统,怎么使用FreeRTOS。

价值观

FreeRTOS史无前例的成功源自它的价值观;FreeRTOS有专业开发,严格质量控制,健全的,富有支持的,不包括任何所有权不明确的属性,可以真正免费用于商业程序,在不公开你源代码的前提下。你也可以再不通知Real Time Enginners公司的前提下在应用商店发布你的产品。更不必说支付费用,有很多人就是这做的。如果有一天你想要额外的保证,或你的团队需要一个额外的书面保证或豁免,那么可以进行一个低价格的商业版升级。放心的使用它,你可以随时升级成商业版本。

术语说明

FreeRTOS中每个执行的线程叫任务。嵌入式社区没有一个统一的术语,但更习惯用任务,因为线程在一些应用领域有更多的含义。

为什么使用实时内核

如果程序相对简单,有很多不用系统写出优秀嵌入式程序的可靠技术,而且这些技术可能是最适用的方案。在更复杂的情形,可能就是用一个内核更适合,但零界点的判断却是主观性的。
如前面所述,任务优先级化可以确保程序满足处理期限要求,同时一个内核也会带来一些其他的好处。下面就给出了一个简明的表述:

  • 抽象化时间信息
    内核会响应执行时间,并且为程序提供了时间相关的函数。这样就可以让程序的结构更简单,代码量也更少。
  • 可维护性和可扩展性
    抽象化时间细节导致模块之间更少的依赖关系,允许程序以可控的和可预测的方式进化。因为内核可以响应时间,所以程序就可以更少的处理容易受硬件影响的代码。
  • 模块化
    任务实独立模块,每一个都有一个定义好的目的
  • 团队开发
    任务也应该有定义好的接口,程序员可以轻松的组建团队开发
  • 方便测试
    如果任务都是定义好的独立模块,拥有明确的接口,它们就可以单独测试
  • 代码复用
    模块化程度越好,更少的相互依赖,就更容易重复使用代码
  • 提高性能
    用内核让程序完全的事件驱动,这样没有事件发生时就不会有处理器时间浪费。只有在有事情发生的时候才会执行代码。
    为了处理RTOStick中断和从一个任务切换到另外一个任务,需要保存有效的计数值。如果不用RTOS,通常程序中都需要包含一个时钟中断。
  • 空闲时间
    开启调度器会自动创建一个空闲任务。当没有其他任务执行时它就会运行。空闲任务可以用于统计处理器备用性能,也可以用作后台检查,或者让处理器进入低耗电模式。
  • 电源管理
    通过RTOS获取效率,就可以使处理器更多的时间运行在低耗点模式。
    可以通过每次进入空闲任务时将处理器置入低耗电模式,从而有效降低电能消耗。FreeRTOS还有一个特别的tick-less模式。使用tick-less模式让处理器消耗电能更低,而且保持在低耗电的时间更长。
  • 灵活的中断操作
    可以通过推迟操作到程序创建的任务或FreeRTOS的守护任务中,使中断服务程序非常短小。
  • 混合处理需求
    用一个简单的设计模式可以获取程序中的周期性的,连续性的和事件驱动的任务的混合。甚至软件和硬件需求也可以用合适的任务和优先级中断处理。

FreeRTOS功能

FreeRTOS有一下的基础功能

  • 任务抢占和合作
  • 灵活的任务优先级分配
  • 灵活,快速,高效的任务通知机智
  • 队列
  • 二进制信号量
  • 普通信号量
  • 互斥锁
  • 互斥继承锁
  • 软件定时任务
  • 事件组
  • Tick勾子函数
  • 空闲勾子函数
  • 栈溢出检查
  • 追踪记录
  • 任务运行时状态收集
  • 商业许可证选项和支持
  • 一些架构的完全体中断嵌套
  • tick-less模式,程序的极低耗电模式
  • 合适的用软件管理中断堆栈

许可证,FreeRTOS,OpenRTOS,SafeRTOS家族

FreeRTOS开源协议用于确保:

  1. FreeRTOS可以用于商用目的
  2. FreeRTOS源码每个人都可以免费使用
  3. FreeRTOS用户保有自己创造产品所有权
    更多许可证信息查看http://www.FreeRTOS.org/license
    OpenRTOS是由Real Time Enginners公司提供的,在FreeRTOS许可证之下的第三方版本。
    SafeRTOS和FreeRTOS共享同样的使用模块,但根据各种声名符合国际安全标准的实践,程序和流程进行开发。

包含的源码文件和项目

这本书中所有例子的源代码,预配置项目文件和所有的编译指令都以zip的压缩文件提供。你可以从http://www.FreeRTOS.org/Documentation/code网址下载zip文件,如果你没有下载成功。可能最新版本的zip文件还没有包含进FreeRTOS中。
本书中的所有屏幕截图都是来自于运行中的Windows电脑,使用的是Windows的系统。这里的FreeRTOS项目都是用免费的Visual Studio预配置和编译的,可以从http://www.microsoft.com/express下载。注意,Windows版本的FreeRTOS提供一个方便的测试开发平台方案,但它不提供真正的实时行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值