关闭
关闭
首页 > 嵌入式软件 > Uc/os II

 μC/OS-II嵌入式实时操作系统自1998年推出以来,因其方便移植、代码量小、实时性强、可靠性高、内核可剪裁等优点,成为我国计算机嵌入式应用领域最受喜爱的实时操作系统(Real-Time Opreating System)之一。由于其源码开源,至今,已经成功在诸多厂家的MCU上移植并应用在各行各业的电子产品之中,因而备受瞩目。此文帮助有意向学习μC/OS-II的初学者全面的、系统的了解实时系统的核心思想,也为正在学习μC/OS-II的童鞋们理清思路,更上层楼。

什么是μC/OS-II?

μC/OS-II是一种基于优先级可剥夺型的多任务实时内核,包含了任务调度与管理、时间管理、任务间通信与同步等基本功能。

如何实现多任务?

在μC/OS-II系统中,大多数情况下,1个任务就是一个死循环,特殊情况是,有的任务执行1次后直接销毁自己。既然是死循环如何实现多任务呢?这就涉及到一个完整的任务调度机制,简单来说,就是给每个任务设置合适的优先级,CPU只有一个,优先级高的任务可以抢占优先级低的任务,而独占CPU。在μC/OS-II中,系统可以管理64个任务,有8个任务预留给系统,用户最多可以创建56个任务,而实质上用户不应该创建过多的任务,因为这样的话,优先级最低的任务可能无法得到执行。

何时执行任务调度

简单来说,高优先级的就绪任务发生时,会抢占低优先级任务的CPU,这时系统就会自动执行任务调度。在任务销毁时,挂起时,延时时,中断退出时都会启动任务调度。

这里举个例子,假如下面这段程序具有2个用户任务LED1_TASK,和KEY_TASK。KEY_TASK的任务优先级较高,这段程序无法实现预期的功能,会出现什么问题呢?

1.jpg

 

LED闪灯任务无法得到执行,因为程序一直的执行按键扫描,其优先级较高(这里假定没有中断发生)一直在独占CPU,而没有释放,也就是无法执行任务调度,在LED任务中,调用OSTimeDly()函数的同时,LED任务即被挂起,交出CPU的控制权,同时执行任务调度,系统会选择一个处于就绪状态的优先级最高的任务来执行。

举上面这个例子是为了说明任务调度是在一定情况下发生的,因为是抢占式的,为了让低优先级的任务得到执行,高优先级任务必须在适当的情况下交出CPU,如果在KEY_TASK任务中,在获取按键信息后面调用OSTimeDly()函数,即可使LED闪灯任务得到执行。

关于中断

中断在实时操作系统中具有举足轻重的作用,所以中断程序的设计无疑是编程的要点及难点,在多任务实时操作系统中,不同的中断任务被安排不同的优先级,在允许中断嵌套的情况下,最高优先级的中断总能得到及时响应。中断级的任务可以看成是比最高优先级的任务级任务的优先级还要高。在用户中断服务程序内部,要尽可能的缩短代码量,不要做耗时的操作,正确的做法是调用任务级任务进行相关的数据处理。

同样,问题来了,在中断服务程序中触发某个任务级任务就绪,是否立即进行任务调度,答案是否定的,因为任务级任务的优先级不够,需等待中断服务程序退出,那系统如何知道中断服务程序是否结束了呢,这就需要的中断程序内部调用系统服务函数OSIntExit();以此来触发任务调度。

硬实时与软实时

这里说一下硬实时与软实时的区别,能够在指定的期限完成实时任务(即便在最坏的处理负载下也能如此)的操作系统称为硬实时系统。但并不是任何情况下都需要硬实时支持。如果操作系统在平均情况下能支持任务的执行期限,则称它为软实时系统。

RTOS的优势是硬实时控制,硬实时不是指“快”,而是指可精确预测可控制,能保证在规定时间内完成任务。因为执行时间可预测,所以当你想快时,只要选一个速度合适的CPU即可,这个需要的速度在μC/OS-II系统中是可以精确算出来的。软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重。

举个例子,汽车发生危险时,汽车气囊弹出必须在一定时间内完成,晚一秒都会造成致命伤害(硬实时)。而在图像传输过程中,偶尔丢失1帧图像数据是可以容忍的(软实时)。

任务同步与数据通信

毫无疑问,任务之间都不是相互割裂的,需要进行数据或者信息的交互,为此,μC/OS-II系统提供了用于任务间通信的手段。任务之间可以通过信号量,事件标志组,消息邮箱,消息队列进行同步。而数据通信最简单的方式是采用全局变量来共享资源,这里面涉及到保障数据可靠性的问题,比如,当一个任务正在读数据的时候,还没有读完,这时一个中断触发高级别的任务运行,高级别的任务要更新数据,这就会导致低级别任务读出来的数据是错误的。未解决此问题,可以采用关中断、关调度、使用互斥信号量、使用计数信号量来解决,关中断与关调度比较生硬,也违反了系统的实时性设计原则,因此推荐使用互斥信号量来解决,所谓互斥信号量,相当于一个钥匙,钥匙只有一个,当一个任务要访问该资源时,必须先取得该钥匙。

时钟节拍

μC/OS-II需要用户提供一个周期性的中断来实现延时和超时等操作,这个周期性的时钟叫“时钟节拍”,其频率范围通常在10~1000Hz之间。时钟节拍的频率大小取决于对定时精度的要求,频率越高,系统的负担越重。

问题:时钟节拍是否是μC/OS-II中必不可少的?没有时钟节拍系统是否能够工作?

答案是:没有时钟节拍,系统照样可以工作,只是无法进行延时或者超时判断,无法调用延时函数来进行任务调度,但是仍然有其它方法可以进行任务切换。

换一批

延伸阅读

[新鲜事] 应用广泛!大疆发布首款可以“向上看”的无人机

应用广泛!大疆发布首款可以“向上看”的无人机

大疆创新宣布发布经纬M200系列行业应用飞行平台,并将在正在举办的2017年MWC世界移动大会(Mobile World Congress 2017)上正式亮相。......

关键字:大疆 无人机 MWC

[新鲜事] 摩拜单车扫一扫 299元飞走鸟

摩拜单车扫一扫 299元飞走鸟

扫码就走的共享单车给我们的出行带来了很多方便,不成想也被可恶的骗子们给盯上了,关键就是那个二维码。......

关键字:摩拜单车 骗局

[趣科技] 这个AI新算法告诉你,纽约1.3万辆出租车做的生意只需要3000辆Uber就够了

这个AI新算法告诉你,纽约1.3万辆出租车做的生意只需要3000辆Uber就够了

根据麻省理工大学计算机与人工智能实验室(CSAIL)的研究, 在纽约这座人口超过850万人的大都市只需要3000辆提供拼车服务的4人座汽车,就可以满足全市98%的打车需求,而从目前来看,出租车公司需要派出1.4万辆出租车才能实现这个目标。 ......

关键字:人工智能 算法

[新鲜事] 香港的互联网和半导体产业为何没能发展起来?

香港的互联网和半导体产业为何没能发展起来?

自2014年国家集成电路产业投资基金成立以来,清华紫光集团、中芯国际、长电科技、三安光电等集成电路企业先后获得资金扶持,在产业政策的扶持下,集成电路产业依旧火爆,2015年中国集成电路市场销售额达3597亿元,同比增长19%。......

关键字:互联网 半导体 香港

[新鲜事] 三星宣布23日办Note7发布会:公开爆炸最终真相

三星宣布23日办Note7发布会:公开爆炸最终真相

三星宣布在23日召开新闻发布会,就Note 7召回事件公布最终调查结果。......

关键字:三星 Note7 爆炸

[新鲜事] 黑客发现20年漏洞:微软不修复让升级至最新Win10

黑客发现20年漏洞:微软不修复让升级至最新Win10

DEF CON黑客大会上,黑客们曝光了Windows系统上一个藏了20年的漏洞,其被安全研究人员将它称作“SMBLoris”,这可以轻松发起Dos攻击,感染Windows 2000及以上系统的任一版本SMB协议。......

关键字:微软 黑客 漏洞

[新鲜事] 豪华版升级!HDMI 2.1来了,支持4K 120帧、带宽48Gbps

豪华版升级!HDMI 2.1来了,支持4K 120帧、带宽48Gbps

上月中旬,HDMI Forum Inc组织发布了最新的HDMI 2.0b接口标准,今天,HDMI 2.1的规格细节也正式公开。HDMI是目前统治影音市场最流行的音视频接口,覆盖电视、显示器、PC电脑、手机等几乎全领域。HDMI 2.1作为后......

关键字:HDMI 接口 视频
条评论

我 要 评 论

网友评论

大家都爱看

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

    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