μC/OS-Ⅱ实时内核

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:xaolan811
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍了μC/OS-II实时内核及其应用。
  关键词:μC/OS-H;实时操作系统
  
  Jean J.Labrosse:Micrium公司总裁,《嵌入式实时操作系统μC/OS-II》等书的作者。
  
  引言
  
  嵌入式系统每年都在变得更加复杂。在过去的几年中,产品已经从采用8位处理器转向16位,甚至32位处理器。单任务的应用过于简单,不再适应当前的竞争趋势。实时操作系统(RTOS)通常用于处理复杂性的需求。RTOS创建一个框架,用于建立和提供比单任务应用更好的响应系统。一个非常流行的RTOS是MicroC/OS-Ⅱ(也就是熟知的μC/OS-Ⅱ)。
  
  μC/OS-Ⅱ实时内核
  
  μC/OS-Ⅱ提供多任务的能力。多任务处理是调度的过程和几个任务之间切换CPU;单CPU在几个有序的任务之间进行切换。多任务处理提供构造应用成为一组小的,专注的共享处理器的任务的能力。多任务处理的最重要的方面之一是允许应用程序开发者管理实时应用固有的复杂性。μC/OS-Ⅱ可以使应用程序更容易设计和维护。任务是一个简单的程序,可以认为它完全占有CPU。实时应用程序的设计过程包括把问题分割成为多个任务,每个任务负责完成问题的一部分。μC/OS-Ⅱ允许创建多达254个应用任务。对于许多嵌入式系统来说,254个任务可以用于复杂的产品设计。
  内核是多任务处理系统负责任务管理和任务之间通讯的部分。当内核决定运行一个不同任务时,它仅仅存储当前任务的上下文(CPU寄存器)到当前的任务的堆栈;每一个任务在内存中被分配它自身拥有的堆栈区域。一旦这个操作完成,新的任务的上下文从它的堆栈区域存储到此,然后新的任务的代码执行被恢复。这个过程称为上下文切换或任务切换。每一个任务的堆栈的当前顶端,随同其他信息,被存储在一个称为任务控制块(TCB)的数据结构中。当任务被RTOS创建和管理时,每一个任务都被分配一个TCB。
  在实时系统中,一个重要的问题是响应中断的时间要求,以及实际开始执行处理中断的用户代码的时间要求。这被称为中断响应。像市场上的所有RTOS一样,当处理关键代码段时,μC/OS-Ⅱ会禁止中断。然而,μC/OS-Ⅱ作了优化,中断禁止尽可能的短,并提供更好的中断响应。例如,对ARM处理器,μC/OS-Ⅱ禁止中断不大于250个时钟周期(假设内存存取零等待状态)。
  调度器是内核的一部分,它负责决定哪一个任务将要运行和何时运行。μC/OS-Ⅱ的调度器是基于优先级的;每一个任务依据其重要性被分配一个优先级。分配给每一个任务的优先级依赖产品试图达到的目的。在基于优先级的内核中,CPU的控制将总是给予就绪态的最高优先级的任务。然而,何时最高优先级任务获得CPU,依赖调度器使用的类型。注意,调度器执行时间是不变的和确定性的。换句话说,不论在产品中采用多少个任务,μC/OS-Ⅱ的调度器将总是花费相同大小的时间执行。μC/OS-Ⅱ是可抢占内核,而且当一个事件使就绪态的最高优先级的任务运行,当前任务立即挂起,高优先级任务控制CPU。如果一个中断使就绪态的最高优先级的任务运行,被中断的任务挂起,新的最高优先级的任务恢复运行。大多数实时系统使用抢占调度器,因为它们响应更快。μC/OS-Ⅱ为应用提供许多有价值的服务。最基本的服务之一是允许任务挂起执行直到某一时间结束。换句话说,一个任务完成某项工作,然后任务进入指定的时间量的睡眠“sleep”,这个时间是可变的,从一个时钟节拍(clock like)到几个小时。时钟节拍通常由硬件定时器和有规则的中断CPU产生,并且它是由μC/OS-Ⅱ管理的基本时间单元。时钟节拍中断CPU的速率由应用程序开发者决定,通常每秒发生在10到1000次之间。
  多任务处理需要仔细考虑共享资源(内存特定区域,变量,I/O,等等)。换句话说,必须确保有权使用的共享资源是独占的。μC/OS-Ⅱ提供多种服务使你更易使用,但责任也是由你承担。μC/OS-Ⅱ提供的最普通的资源保护机制是信号量。当存取共享资源时,应用程序开发者需要获取为保护资源创建的信号量,存取资源,然后释放信号量。如果一个任务需要存取资源,而信号量已经给予另一个任务,则这个任务会被放置在任务的等待列表,等待信号量的拥有者释放信号量。任务等待信号量释放,并不消耗CPU时间。当信号量被释放,μC/OS-Ⅱ要决定是否新的信号量拥有者比释放者有更高的优先级,如果是,切换到高优先级任务。μC/OS-Ⅱ可以根据需要允许创建许多信号量(在运行时)。
  任务或ISR(中断服务程序)与其它任务通讯也是重要的。像μC/OS-Ⅱ这样的RTOS提供消息邮箱和消息队列这样的服务实现这一通讯。邮箱是一个对象,它可以拥有一个消息(实际上是一个指针),并且任务列表等待邮箱中的消息,这个消息由其它的任务或ISR存放。指针的使用在于避免在运行时拷贝数据。指针发送实际上可以指向几乎任何事:数据结构,变量,数组或甚至函数。等待消息到达的任务放置在等待列表中,直到消息被发送(由其它任务或ISR)。当任务等待消息时,它们不消耗CPU时间。换句话说,那些任务在等待时,RTOS执行其它的任务。当一个消息被发送时,实际上等待消息的最高优先级的任务接收消息。如果等待消息的任务成为最重要的任务要执行,则μC/OS-Ⅱ执行那个任务,允许它立即处理接收的消息。
  μC/OS-Ⅱ总共提供80个函数,它们可以在应用程序中调用。
  μC/OS-Ⅱ的尺寸(代码内存数量)在6K字节到大约24K字节的代码量之间变化。同样地,μC/OS-Ⅱ需要500字节到大约4K字节之间的RAM。这意味着μC/OS-Ⅱ是可伸缩的(在编译时),适合用于一些最小的嵌入式控制器。事实上,μC/OS-Ⅱ已经移植到超过45种不同CPU构架(8位,16位,32位CPU和DSP)。多年来,许多的这些移植已经被用户贡献出来,并且可以从Micrium的网站免费下载使用。
  
  μC/OS-Ⅱ的应用
  
  除了许多使用μC/OS-Ⅱ的技术原因之外,也有许多源于商业的观点。使用μC/OS-Ⅱ的最大优势是它是可证明的可用于安全关键性应用的RTOS。事实上已经有第三方为μC/OS-Ⅱ开发的认证套件可以提供全部必须的文档,以便交付μC/OS-Ⅱ作为预先证明的用于安全关键性系统的软件组件,包括美国航空无线电技术委员会(RTCA)航空电子设备D0-178B(A级)标准和EUROCAEED-12B标准,美国食品和医药管理局(FDA)医疗510(K)(Ⅲ类)标准,以及IEC 61068 (SIL3/SIL4)用于运输和原子能系统标准。即使你的产品不具备安全关键性,你应该了解到这个证明,它证明了μC/OS-Ⅱ是一个非常健壮和高可靠的RTOS。μC/OS-Ⅱ也99%适应汽车工业软件可靠性协会(MISRA)C编码标准。这些标准由MISRA创建,目的是在关键性汽车电子系统中改善C语言程序的可靠性和可预测性。MISRA协会成员包括戴勒克电子,福特汽车公司,美洲虎汽车有限公司,Lotus Engineering,Lucas Electronics.Rolls-Royce,Rover Group Ltd,以及其它专注改善汽车电子安全性和可靠性的公司和大学。这个标准的全部详细资料可以直接从MISRA的网站获得,http://www.misra.org.uk。详细的μC/OS-Ⅱ遵循所有MISRA127条C编码规则的描述表格可以从Micrium网站获得(www.micrium.com)
  μC/OS-Ⅱ是流行的软件,其原因是你可以从它获得经验而不用付授权费,直到你决定将它应用到实际的商业产品。同样它在世界上许许多多的学院和大学中被使用。也有成千的μC/OS-Ⅱ授权使用在许多不同类型的产品中。因为μC/OS-Ⅱ低廉的费用和整洁的源代码,它是非常吸引人的RTOS。
  
  μC/TCP-IP
  
  最近Mficrium已经开发了μC/TCP-]P,一个洁净的嵌入式TCP/IP协议栈。μC/OS-Ⅱ开发成为与μC/OS-Ⅱ同样质量级别的软件,事实上对教学使用是免费的。但是像μC/OS-Ⅱ一样,如果用于商业应用,需要得到授权。你可以从Micrium的网站(www.micrium.com)下载μC/TCP-IP,对于商业应用,Micrium允许免费评估μC/TCP-IP软件45天。μC/TCP-IP是IPV4版本协议栈,提供BSD V4插槽接口(socket interface)。Micrium开发大量补充模块到μC/TCP-IP:DHCPc(动态主机配置协议,客户端),FTP(文件传输协议,客户端和服务器两者),HTTPs(超级文本传输协议,服务器)就是通常说的Web服务器,邮件客户端,POP3(邮局协议3)和SMTP(简单邮件传输协议),以及更多的其它模块。这些模块根据每一个最终产品授权。
  Micrium还提供完整的软件组件(就是通常说的中间件)。你可以得到嵌入式FAT兼容的文件系统(μC/FS),嵌入式图形用户系统(μC/GUI),嵌入式通用串行总线协议栈(μC/USB)以及其它更多的组件。
  
  结语
  
  Micrium的价值观是为嵌入式大众提供最好质量的软件。虽然Micrium的软件以源码形式提供,但它并不能被认为是开源代码。提供源代码是为方便和容易配置。请通过授权我们的软件帮助我们提供给嵌入式大众最好的软件。我们感激您的诚实和合作。
  
  参考文献:
  1.www.misra.org.uk
  2.www.micrium.com
其他文献
美国电气电子工程学会(IEEE)在2月20日召开了第一次RuBee(IEEE1902.1)会议。RuBee网络可在10到50英尺范围内采用长波长工作,工作频率低于450kHz,适用于恶劣环境下的实时库存应用,甚至可以在金属和水的附近以及存在电磁噪音的环境中工作。这种恶劣环境是RFID进入广泛、高性价比实施的主要障碍。RuBee的另一项优势是能够直接将数据传到互联网,但是RuBee的低速特性使它不适
期刊
在大型工业控制系统中,各级设备的启动、停止,都对整个系统的运行状况有着一定的影响,对这些装置开关量信号的采集、动作时序的记录也显得尤为重要。
期刊
我国连接器年均增长20%,产品、材料、技术、测试或热点  2007年3月22日,本刊与德国慕尼黑国际博览集团共同主办了“2007年国际连接器技术论坛”。有200多位来自全国各地的专业人士参加了这场今年国内唯一的大型连接器技术研讨会。会上获悉,我国连接器市场已经超过日本,年增长20%,次于西欧,美国;预计2010年有望成为继美国之后的世界第二大市场。    市场了望    中国电子元件行业协会电接插
期刊
LTC6103和LTC6104是具有宽工作范围的通用、精准型高压侧电流检测放大器。LTC6103是一款双通道电流检测放大器,而LTC6104则是一款单通道、双向电流检测放大器——它能够供应或吸收与某个双向检测电压成正比的输出电流。
期刊
近日出版的编号为GB/T20299.1-2006的中华人民共和国《建筑及居住区数字化技术应用》国家标准白皮书显示,闪联技术标准已经被列为建筑及居住区数字化技术国家标准。该国家标准已由国务院部际强制性国家标准审定委员会审定,由国务院标准化行政主管部门批准、发布。据了解,该白皮书由国家建设部及信息产业部共同提出,由国家质量监督检验检疫总局、国家标准化管理委员会发布。它定义了家用电子系统应用层功能的实现
期刊
摘要:本文介绍了Montavista Linux的发展及其最新版本的特点, 同时介绍7嵌入式Linux的发展趋势。  关键词:嵌入式Linux; Montavista;实时性;Eclipse    引言    Linux作为开源的操作系统正在IT产业的方方面面发挥着作用,Linux是服务器的重要的操作系统。Linux是嵌入式系统关键部件,它已经嵌入在电信交换设备,路由器,接入设备,网络存储设备和移
期刊
摘要:给出一种利用AD9959多通道DDS同步特性,简化测控通信系统中多路DDS同步设计的方案,与原有方案相比具有控制方式灵活、外围元件少,性能优良等优点。  关键词:DDS;同步;AD9959;测控通信    引言    近年来,为了提高信息传输速率,增强通信抗干扰能力,飞行器测控通信系统已从统一载波体制向扩频统一测控通信体制发展。但是,这种宽带扩频测控技术的应用使得同步设计成为系统实现的难点,
期刊
摘要:本文主要介绍了基于CPCI总线设计的实时信号处理业务所需的一种专用设备平台。  关键词:CPCIBUS;平台;实时信号处理;DSP+FPGA    系统设计    DSP+FPGA混用设计  为了提高算法效率,实时处理图像信息,本处理系统是基于DSP+FPGA混用结构设计的。业务板以FPGA为处理核心,实现数字视频信号的实时图像处理,DSP实现了部分的图像处理算法和FPGA的控制逻辑,并响应
期刊
摘要:本文提出了一种基于C8051F310 MCU的磁流变阻尼器控制器设计方法。并给出了控制器的总体结构、接口电路与软件设计,设计出样机在实际使用过程中效果较好。  关键词:PWM控制;磁流变阻尼器    前言    磁流变阻尼器(MRFD)的阻尼力调节主要依靠调节其内部励磁线圈电流的方式实现,一般通过控制器将外界控制端发出的控制信号转变为一定的输出电压(由线圈电阻大小决定)、电流(由线圈线径决定
期刊
2007年1月底,应飞思卡尔德国公司的邀请,第一届“飞思卡尔”杯全国大学生智能汽年竞赛的冠军队与国内部分媒体记者前往德国慕尼黑(Munich)和英戈尔施塔特(Ingolstadt.)访问。
期刊