当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:相比μC/OS—II,μC/OS—III做了很多改进,比如任务调度策略、时间节拍管理等,不仅消除了μC/OS—II中的一些局限,而且增加了一些全新的功能。本文首先介绍了μC/OS—II的特

摘要:相比μC/OS—II,μC/OS—III做了很多改进,比如任务调度策略、时间节拍管理等,不仅消除了μC/OS—II中的一些局限,而且增加了一些全新的功能。本文首先介绍了μC/OS—II的特点与局限,然后介绍了μC/OS—III所做的各种改进。
关键词:μC/OS—II;μC/OS—III;实时内核

引言
    μC/OS系列内核都是源代码开放的、可移植、可固化、可裁剪的抢占式实时多任务内核。μC/OS诞生于1992年,是针对68HC11 CPU开发的。μC/OS—II V2.0诞生于1998年,μC/OS—II V2.52诞生于2002年。针对这3个版本的实时内核,Jean J.Labrosse先生出版了3书,分别为《μC/OS The Real—Time Kernel》、《Micro C/OS—II The Real—Time kernel》和《Micro C/OS—II TheReal—Time kernel(Second Edition)》。其中,第2本和第3本书都有对应的中文译著,第3本书比第2本书增加了约250页新内容。μC/OS—III诞生于2009年,于2011年8月公开源码。《μC/OS—III The Real Time Kernel》--书分为两大部分:第1部分是对μC/OS—III硬件无关软件的描述;第2部分讲述μC/OS—III在不同型号的ARMCortex—M3/4单片机评估板上应用的范例。第1部分相同,第2部分对应不同硬件,目前已经组合出版了6本书,分别对应如下:
    ◆Freescale公司的以Kinetis53单片机为核心,面向医疗仪器类应用的TWR—K53N512评估板;
    ◆NXP公司的以LPCI768(Cortex—M3核)为核心的评估板;
    ◆Renesas公司的以RX62N为核心的评估板;
    ◆Renesas公司的以带以太网口的SH7216为核心的评估板;
    ◆ST公司的以STM32F107为核心的评估板;
    ◆TI公司的以LM3S9892为核心,面向小型机器人带以太网口的VM—EVALBOT评估板。
    μC/OS—III是针对32位CPU开发的,相比μC/OS—II做了很多改动。下面将详细介绍μC/OS—II中的一些可以改进的地方以及μC/OS—III中的一些新特性。

1 μC/OS—Il的特点与局限
    μC/OS—II主要针对8/16位CPU开发,是一个抢占式的实时多任务内核。任务调度策略是基于任务的优先级,总是运行处于就绪态的优先级最高的任务。在μC/OS—II中,每个任务都有一个唯一的优先级。μC/OS—IIV2.8之前的版本最多支持64个优先级,从V2.8开始最
多可支持255个优先级。
    μC/OS—II的核心是任务调度算法。任务调度算法的目标就是快速找出其中优先级最高的处于就绪态的任务。为了做到这一点,μC/OS —II巧妙地采用了查表法。在查表过程中,μC/OS—II需要快速找出1个8位数的第一个非零位的位置,这是通过1个由256个元素构成的查找表OSUnMapTb1[]实现的,该查找表记录了每一个8位数的第一个非零位的位置。通过这种巧妙的查表算法,不论有多少个任务处于就绪态,都能在很短的、确定的时间内找出其中优先级最高的那个就绪任务。
    如今,很多新的CPU都有一条计算前导零指令(CLZ)或功能类似的指令,比如32位PowerPC处理器的CLZ指令、Freescale S12X双核微控制器中的协处理器XGATE的Bit Field Find First One指令等。对于有这类硬件指令的CPU,无需再使用μC/OS—II中的查表算法,可以利用这类指令优化任务调度算法。
    实时系统有2类:软实时系统和硬实时系统。软实时系统中,各任务运行得越快越好,并不限定某一任务必须在多长时间内完成。硬实时系统要求系统中的任何函数都有确定的执行周期数,任务运行必须准时,执行时间不因任务多少而改变。大多数实时系统是二者的结合。μC /OS—II中仅有一处不满足硬实时条件:OSTimeTiek()函数需要遍历所有任务控制块,执行时间受任务数目的影响,而该函数由时钟节拍中断服务程序调用,因此时钟节拍中断服务程序的执行时间也受任务多少影响。通过把这部分工作放到一个专门的系统级任务中去做,便可以解决这个问题,使其成为一个满足硬实时条件的RTOS。对于Freeseale公司的双核微控制器S12X,还可以通过把时钟节拍中断的处理交给协处理器来完成,从而实现硬实时条件,提高RTOS的实时性。

2 μC/OS-III的新特性
    μC/OS—III已经不仅仅是一个RTOS内核,而是包含很多与该内核配套的软件开发包。和传统的大型商用RTOS类似,μC/OS—III能以传统的BSP(板级支持包)方式,实现诸如USB主机、文件系统、TCP/IP协议栈等,还包括RTOS本身的调试工具等。Micrium公司和很多软件公司合作,提供很多基于μC/OS—III的通用商业软件,如GUI、FS、USB、TCP/IP等。今后还会与更多的半导体厂商合作,提供更多商家的以ARM Cortex—M3/4为核心的μC/OS—III评估板。
    μC/OS—III在功能上得到了全面的扩展和提升。μC/OS—II最多支持255个任务,而μC/OS—III可以支持任意数目的任务,实际使用的任务数目仅受CPU所能使用的存储空间的限制。μC/OS—III可以支持任意数目的信号量、事件标志组、消息队列、存储块等内核对象,而且,为了避免在程序编译过程中出现资源不够分配的问题,允许用户在程序运行中动态配置内核资源。μC/OS—II允许挂起某个任务,但挂起操作不可以嵌套,而μC/OS—III允许嵌套挂起某个任务,嵌套挂起最深可达250层。μC/OS—III增加了一个时钟节拍任务来做延时处理和超时判断。通过在任务级代码完成时钟节拍服务,能极大地减少中断延迟时间。而且,μC/OS—III使用了哈希散列表机制,进一步降低了延时处理和超时判断的开销,提高了系统的实时性。
    除了功能上的扩展和提升,μC/OS—III还增加了一些新功能。μC/OS—III增加了时间片轮转调度,允许多个任务有相同的优先级。当多个优先级相同的任务同时就绪并且所属优先级高于其他所有就绪任务时,μC/OS—III轮转调度这些任务,让每个任务运行一段用户指定的时间长度(即时间片)。
    μC/OS—III允许中断或任务直接给另一个任务发信号或消息。在实际应用中,很多情况下,编程人员知道该向哪个任务发信号或消息,这时就可以使用μC/OS—III的这种新功能来向目标任务直接发信号或消息,从而避免创建和使用诸如信号量或消息队列等内核对象作为中介,提高信号或消息发送的效率。μC/OS—III增加了时间戳功能,可以给信号或消息打上时间戳,从而允许用户获取某个事件发生的时刻,以及信号或消息传递到目标任务所耗费的时间等。
    另外,μC/OS-III的设计能方便地按照CPU架构优化,特别是其数据类型可按照CPU能适应的最佳位数宽度修改,以适应8/16/32位的CPU。关键算法可采用汇编程,以发挥一些有特殊指令的CPU的优势。很多CP有读改写指令,可方便实现存储器访问的原子操作,有的CPU有计算前导零指令,可用来快速查找任务就绪表。
    μC/OS—III增加了中断处理任务,可以把内核对象的处理工作都放到任务级代码中完成,从而允许通过给调度器上锁的方式实现临界段代码的保护,这样就使内核关中断的时钟周期几乎为零。μC/OS—III内置了对系统性能进行测试的代码,能够检测每个任务的执行时间、堆栈使用情况、每个任务运行的次数、CPU利用率、关闭中断和给调度器上锁的时间等。μC/OS—III还支持内核觉察式调试,可以以友好的方式对μC/OS—III的变量、数据结构进行检查和显示,并且带有μC/Probe调试工具,可在程序运行过程中察看和修改变量。

结语
   
相比μC/OS—II,μC/OS—III做了很多改进,比如改进了任务调度方法、改进了时钟节拍管理机制、增加了中断处理任务、允许向任务直接发信号或消息、增加了时间戳功能、支持内核觉察式调试等。从这些改进来看,μC/OS—III比μC/OS—II上升到一个更高的档次。其中,一主要的改进,比如μC/OS—III的任务调度方法的改进、时钟节拍管理机制的改进、中断管理方法的改进等会在后续专题文章中详细介绍。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭