ucosIII中文应用指南
uC/OS-I文资料
序言
什么是uCOS-I
uC/OS-I(Microcosthree微型的C语言编写的操作系统第3
版)是一个可升级的,可固化的,基于优先级的实时内核。它对任务
的个数无限制。uCOS-Ⅲ是一个第3代的系统内核,支持现代的实
时内核所期待的大部分功能。例如资源管理,同步,仁务间的通信等
等。然而,uC/OS-I提供的特色功能在其它的实时内核中是找不到
的,比如说完备的运行时间测量性能,直接地发送信号或者消息到任
务,任务可以同时等待多个内核对象等。
为什么命名一个新的版木?
uCOS系列,第一代产生于1992。经过了多年的使用和上千人
的反馈,已经产生了很多的进化版本。
uCOSⅢ是这些反馈和经验的总结。在uCOS中很少使用的
功能已经被删除或者被更新,添加了更高效的功能和服务。其中最有
用的功能应该是时间片轮转法(roundrobin),这个是uc/oS-II中不支
持的,但是现在已经是uC/OS-I的一个功能了。
COS-ⅢII会提供新的功能以更好地适应新出现的处理器。特别
的,uC/OS-Ⅲ被设计用于32位处理器,但是它也能在16位或8位
处理器中很好地工作
uC/OS-I文资料
uC/OS-I的目标
uC/OS-ⅢI最主要的目标是提供一流的实时内核以适应更新很快
的嵌入式产品。使用像uC/OS-I那样具有雄厚的基础和稳定的框架
的商业实时内核,能够帮助设计师们处理日益复杂的嵌入式设计。
这本书中的目标,是为了介绍uCOSⅢ的内部工作。了解这些会
帮助读者实现逻辑上的设计方案,协调统一硬件和软件会让你对幣体
的设计很有把握。
uC/OS-I文资料
1、简介
在重要的地方,实时系统凭借其系统性的计算和及时的处理能力
工作着。一共有2种类型的实吋系统:软实时系统和硬实吋系统。
软实时系统和硬实时系统的区别在于一旦没有在规定的时间内完
成任务所导致后果的严重性。超过时限后所得到的结果即使正确也可
能是毫无作用的。
硬实时系统中,运算超时是不允许发生的。在很多情况下,超时
会导致巨大的灾难,会威胁人们的生命安全。但是在软实吋系统中,
超时不会导致严重后果。
实时系统的应用范围很广,但很多实时系统是嵌入式的。一个嵌
入式系统是计算机中添加操作系统,但是用户不公认这是个计算机。
以下列岀嵌入式系统的·些例了
航空航天
通讯
加工控制
飞行管理系统
路由器
化学工
喷射发动机控制
交换机
工厂自动化
武器系统
手机
食品加工
语音
计算机外围设备机器人
MP3播放器
打印机
uC/OS-I文资料
放大器和调谐器扫描仪
汽车制造业
家用电器
视频
反锁死制动系统
空气调节机
广播设备
气候控制
恒温器
高清电视
引擎控制
大型家用电器
GPS
办公室自动化
等等
传真机
复印机
实时系统的设计,调试和配置比非实时系统难得多
1-1前后台系统
简单的小型系统设计一般是基丁前后台的或者无限循环的系统。
包含一个无限循环的模块实现需要的操作(后台)。屮断处理程序实
现异步事件(前台)。前台也叫做中断级,后台也叫作仼务级
临界操作应该在任务绂中被执行,不可避免地必须在中断处理程
序中执行也要确保是在很短的时间内完成。因为这会导致ISR古用更
长的时间。通常的,ISR中使能相关的信息而在后台程序中执行相应
的操作。这叫做任务级响应。任务级响应的时间依赖于后台循环一次
所需的时间,通常这不是一个固定常量。另外,如果其中的代码稍有
改动,那么循环一次所用的时间也将有所变化。
uC/OS-I文资料
大多数高产量低成本微控制器的应用软件(例如微波炉,电话玩
具等)都是基于前后台系统的。
SuperLoop
Task1
Task2
Task3
SR
Time
(Foreground)
ISR
Infinite
Task3
Task4
Nestedisr
(Foreground)
ISR
ISR
Task4
Figure1-1Foreground/Background(SuperLoops)systems
1-2实时内核
实时内核是一个能管理MPU、MCU、DSP时间和资源的软件。
实时内核的应用包括迅速地响应,可靠地完成工作的各个部分。
任务(也叫做线程)是一段简单的程序,运行时完全地占用CPU
在单CPU中,任何时候只有1个任务被执行
內核的责任是管理任务,也做多任务处理。多任务处理的作用是
协调和切换多个任务依次享用CPU。多任务处理最大化CPU的功能
uC/OS-I文资料
同时会计我们感觉是多个CPU在同时运行。多任务处理也有利于处
理模块化的应用。多任务处理一个最重要的方面在于它允许程序员管
理复杂的实时应用。在多任务处理中程序员可以简单的维护和升级产
品
uCOS-Ⅲ是一个抢占式内核,这意味着uCOS-I总是执行最
重要的就绪任务,如图1-2。
LowPriority
Eventthat
Task
HighPriorityTask
isWaitingfor
Time
ISR
(5
HighPriority
Task
Infinite
Infinite
6)
LowPriority
Task
Figure1-2HC/OS.lllisapreemptivekernel
F1-2(1)一个低优先级的任务正在被执行
F1-2(2)发生一个中断,CPU转向ISR
F1-2(3)ISR响应中断请求设备,但是IR只做非常少的工作。ISR
应该标记或发送消息到一个高优先级的任务,让中断能够快速处理完
毕。例如,如果一个中断来自于以太网控制器,ISR标记任务,在任
务级响应以太网控制器。
F1-2(4)当ISR执行完毕,uCOS-注意到ISR创建的一个更高优
先级的任务就绪。uC/OS-Ⅲ将不会返回到中断前的任务,它会切换
uC/OS-I文资料
到这个更高优先级的任务
F1-2(5)高优先级任务执行必要的处理答复屮断请求设备
F1-2(6)当高优先级任务完成时,返回原任务中断前的代码。
F1-2(7)原任务在它被中断的地方开始执行。
COS-I內核也负责管理任务间的交流,系统的资源(内存和
I/O)。
系统中加入内核需要额外的支出,因为内核提供服务时需要时间
去处理。大多数的额外支出取决于服务的调用频繁度。在一个优秀的
设计中,内核占用CPU的时间介于2%到4%之间。因为uC/OS-II
是一个软件,添加到目标系统屮需要额外的ROM和RAM。
低档的单片机很有可能不支持像uC/OSⅢ那样的实时内核,因为
它只有很少的RAM可供访问。uC/OS-I内核需要1K到4K之间的
RAM,加上每个任务自己所需的堆栈空间。至少有4K大小RAM的
处理器才有可能成功移植uC/OS-II
最后,为了更好地使用CPU,uC/OS-II提供了大约70种常用的
服务。当用过像uC/OSI那样的具有实时内核的系统后,你将不会
再去使用前后台系统了。
1-3实时系统(RTos)
个实时系统通常包括一个实时內核以及其他高级的服务,例如:
文件管理,堆栈协议,图形用户接∏等等。大多数服务都是跟IO有
uC/OS-I文资料
关的。
Micrium提供了RTOS一套完整的组件,包括uCrS、uC/TCP-IP
uC/GUI、UC/USB等。这些组件大部分都可以单独执除了uC/TCP-TP
实时内核在应用中不是必须的。事实上,用户可以单独选择您的应用
所需用的组件。详情和购买请联系Micrium(www.Micrium.com)。
1-4uC/OS-II
uC/OS-Ⅲ是一个可扩展的,可凵化的,抢占式的实时内核,它管
理的任务个数不受限制。它是第三代内核,提供了现代实时内核所期
望的所有功能包括资源管理、同步、内部任务交流等。uC/OS也
提供了很多特性是在其他实吋内核中所没有的。比如能在运行吋测量
运行性能,直接得发送信号或消息给任务,任务能冋时等待多个信号
量和消息队列。
以下列出uCOSⅢ的特点:
源代码:uCOS-Ⅲ完全根据ANSC标准写的。代码的规范是
Micriu团队的一种文化。虽然很多商业內核供应商提供他们产品的
源代码,但是这些产品很有可能是笨重且难以利用的。除非代码严格
地遵循标准并且产品有完整的带例子的说明书以展示代码是怎样工
作的。通过这本书,你将会对uOS-Ⅲ内部的工作情况有一个很深
的了解。
应用程序接口(API):uC/OS-Ⅲ是很直观的。如果你熟悉类似的
编码规范,你能轻松地知道函数名所对应的服务,以及需要怎样的参
下载地址
用户评论