关闭
关闭
首页 > 嵌入式基础教程 > 设计教程

1 FreeRTOS操作系统功能

  作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。

  FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。

  2 FreeRTOS操作系统的原理与实现

  2. 1任务调度机制的实现

  任务调度机制是嵌入式实时操作系统的一个重要概念,也是其核心技术。对于可剥夺型内核,优先级高的任务一旦就绪就能剥夺优先级较低任务的CPU使用权,提高了系统的实时响应能力。不同于μC/OS-II,FreeRTOS对系统任务的数量没有限制,既支持优先级调度算法也支持轮换调度算法,因此FreeRTOS采用双向链表而不是采用查任务就绪表的方法来进行任务调度。系统定义的链表和链表节点数据结构如下所示:

  


 

  FreeRTOS定义就绪任务链表数组为xList pxReady—TasksLists[portMAX_PRIORITIES]。其中portMAX_PRIORITIES为系统定义的最大优先级。若想使优先级为n的任务进入就绪态,需要把此任务对应的TCB中的结点xGenericListltem插入到链表pxReadyTasksLiStS[n]中,还要把xGenericListItem中的pvContainer指向pxReadyTasksLists[n]方可实现。

  当进行任务调度时,调度算法首先实现优先级调度。系统按照优先级从高到低的顺序从就绪任务链表数组中寻找usNumberOfItems第一个不为0的优先级,此优先级即为当前最高就绪优先级,据此实现优先级调度。若此优先级下只有一个就绪任务,则此就绪任务进入运行态;若此优先级下有多个就绪任务,则需采用轮换调度算法实现多任务轮流执行。

  若在优先级n下执行轮换调度算法,系统先通过执行(pxReadyTasksLists[n])→pxIndex=( pxReadyTasks-Lists[n ]) → pxlndex→pxNext语句得到当前结点所指向的下一个结点,再通过此结点的pvOwner指针得到对应的任务控制块,最后使此任务控制块对应的任务进入运行态。由此可见,在FreeRTOS中,相同优先级任务之间的切换时间为一个时钟节拍周期。

  以图1为例,设系统的最大任务数为pottMAX_PRIORITIES,在某一时刻进行任务调度时,得到pxReadyTasksLists[ i].usNumberOfItems=O(i=2...portMAX_PRIORITIES)以及pxReadyTasksLists。usNumberOfItems=3。由此内核可知当前最高就绪优先级为l,且此优先级下已有三个任务已进入就绪态.由于最高就绪优先级下有多个就绪任务,系统需执行轮换调度算法实现任务切换;通过指针pxlndex可知任务l为当前任务,而任务l的pxNext结点指向任务2,因此系统把pxIndex指向任务2并执行任务2来实现任务调度。当下一个时钟节拍到来时,若最高就绪优先级仍为1,由图可见,系统会把pxIndex指向任务3并执行任务3。

  

换一批

延伸阅读

[新鲜事] 特朗普发推特感谢三星,三星并不买账

特朗普发推特感谢三星,三星并不买账

此前有报道称三星将因“特朗普效应”而在美国建立一家分公司,对此,特朗普在周二时发布了一条推特,称“我们很欢迎你(三星)加入”。但是,三星对此并不感到高兴,因为三星从来没有对外宣称过有在美国建立公司的计划,并认为特朗普发布这条推特是在对三星施......

关键字:特朗普 三星

[猎聘集] 与年轻电子工程师谈谈最关心的前途问题

与年轻电子工程师谈谈最关心的前途问题

中国缺少什么样的电子工程师?中国缺少满嘴胡须的电子工程师;中国缺少在一个行业专注几十年的资深电子技术专家;中国缺少知识全面,做事精密细致的电子系统工程师。......

关键字:年轻电子工程师 前途

[新鲜事] 通过眼睛和指纹扫描进行购票 未来将使用生物认证技术售票?

通过眼睛和指纹扫描进行购票 未来将使用生物认证技术售票?

近日,英国客运公司Rail Delivery Group提出了为交通系统开启数字时代的新战略,如通过让各个列车之间建立通信的方式避开拥堵、利用手机软件帮助乘客找到人流更少的进出口、或是通过眼睛和指纹扫描进行购票等等。据Rail Delive......

关键字:生物认证技术

[新鲜事] 英航客机刚起飞就迫降?原因竟是忘了下载地图

英航客机刚起飞就迫降?原因竟是忘了下载地图

英国当地时间10日,一家由伦敦起飞前往纽约的英航客机在起飞后不久便迫降爱尔兰。原因竟然是飞机上没有导航地图。......

关键字:英航 飞机 GPS

[新鲜事] 6S首发!小米自主高端CPU首曝:媲美骁龙835

6S首发!小米自主高端CPU首曝:媲美骁龙835

经过几年的积累后,小米自研的松果处理器终于要有所行动了。从目前曝光的情况来看,小米5C将首发松果处理器首款产品,据说这款CPU采用了八核心A53公版架构,其性能约等于高通骁龙808。现在,有网友送出小米自主处理器......

关键字:小米

[新鲜事] 坚决不学苹果 索尼表示3.5mm耳机接口不会走

坚决不学苹果 索尼表示3.5mm耳机接口不会走

索尼表示,不会和其他的手机厂商一样,仍然会保留Xperia系列新机上的3.5mm耳机接口。上个月索尼高管也在日本的一场新闻发布会上确认了这个消息。......

关键字:索尼 3.5mm 耳机接口
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…

    2017-08-15