FreeRTOS系统解析-1、FreeRTOS系统简介

1、系统简介

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

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

随着处理器的功能越来越强大,价格越来越便宜,所以每个用户都可以独自拥有一个甚至多个处理器。这时候系统的调度算法则设计为让用户可以同时运行多个应用程序,而且计算机也不会显得迟钝。例如:某个用户可能同时运行了一个Word程序,一个Excel,一个邮件客户端,一个WEB浏览器,并且要求每个应用程序对输入有足够快的响应时间。

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

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

硬实时功能必须在给定的时间限制内完成,如果没有做到就意味着整个系统的的绝对失败。汽车安全气囊的触发机制就是硬实时系统功能的例子。安全气囊在撞击发生后给定的时间限制内必须弹出。如果响应时间超出了这个时间的限制,会使得车内人员受到伤害,而这正是安全气囊所要防止的。

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

2、使用系统弊端

  • 大多数RTOS代码都具有一定规模,任何代码都可能带来BUG,何况是代码具有一定规模的RTOS,因此引入RTOS的同时也可能会引入该RTOS的BUG,这些RTOS本身的BUG一旦被触发,影响可能是是灾难性的。
  • 熟练的使用RTOS是一项技能,需要专业的知识储备和长期的经验积累。不将RTOS分析透彻,很容易为项目埋下错误。典型的,像中断优先级、任务堆栈分配、可重入等,都是更容易出错的地方。
  • RTOS的优先级嵌套使得任务执行顺序、执行时序更难分析,甚至变成不可能。任务嵌套对所需的最大堆栈RAM大小估计也变得困难。这对于很多对安全有严格要求的场合是不可想象的。
  • RTOS应该用于任务复杂的场合,以至于对任务调度的需求可以抵消RTOS所带来的稳定性影响,但大部分的应用并非复杂到需要RTOS。

3、使用系统优势

对于现代的微处理器,特别是资源相对丰富ARM7、Cortex-M3硬件来说,RTOS占用的硬件资源已经越来越可以忽略。所以在当今环境下,我们无需担心RTOS会拖累性能。相反,RTOS提供的事件驱动型设计方式,使得RTOS只是在处理实际任务时才会运行,这能够更合理的利用CPU。在实际项目中,如果程序等待一个超时事件,传统的无RTOS情况下,要么在原地一直等待而不能执行其它任务,要么使用复杂(相对RTOS提供的任务机制而言)的状态机机制。如果使用RTOS,则可以很方便的将当前任务阻塞在该事件下,然后自动去执行别的任务,这显然更方便,并且可以高效的利用CPU。处理这类事件,是使用RTOS的最大动力。

4、常见的嵌入式操作系统

近两年嵌入式市场调查报告显示常用的RTOS有:FreeRTOS、uC/Os-II、Injouse/custom、Linux、Ubuntu、Android、uC/Os-III、RTX等。

STM32能运行什么操作系统?

首先操作系统有两种:一种用MMU(Memory Managenent Unit,即存储管理单元)的,另一种是不用MMU的。

用MMU的是Windows、MacOS、Linux、Android。

不用MMU的是FreeRTOS、VxWorks、ucLinux、uc/OS。

其次CPU也有两种:带MMU和不带MMU的

带MMU的有 Cortex-A、ARM9 、ARM11系列。不带MMU的有 Cortex-M系列

而我们知道STM32是 Cortex-M3系列的…所以目前还不可能运行Linux操作系统,但是STM32可以运行uc/OS、ucLinux、FreeRTOS 、VxWorks等操作系统。其中uc/OS操作系统是开源代码,且小巧而严谨,具有很高的实时性,可以作为学习linux等高级操作系统的基础,实际项目中也经常使用uc/OS开发。

5、为什么选用FreeRTOS

  •  SafeRTOS便是基于FreeRTOS而来,前者是经过安全认证的RTOS,因此对于FreeRTOS的安全性也有了信心。
  • 大量开发者使用,并保持高速增长趋势。2011、2012、2013、2014、2015连续5年的EEtimes杂志嵌入式系统市场报告显示,FreeRTOS在RTOS内核使用榜和RTOS内核计划使用榜上都名列前茅。更多的人使用可以促进发现BUG,增强稳定性。
  • 简单。内核只有3个.c文件,全部围绕着任务调度,没有任何其它干扰,便于理解学习。而且,根本不需要其它繁多的功能,只要任务调度就够了。
  • 文档齐全。在FreeRTOS官方网站上,可以找到所有你需要的资料。
  • 免费、开放源码。完全可以免费用于商业产品,开放源码更便于学习操作系统原理、从全局掌握FreeRTOS运行机理、以及对操作系统进行深度裁剪以适应自己的硬件。学习的资料来源主要是FreeRTOS的官方网站(www.freertos.org)和源代码。

 2010和2011年RTOS使用榜

 2012和2013年RTOS使用榜

 2013年和2014年RTOS使用榜

 2014年和2015年RTOS使用榜

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值