ucosii任务管理及调度.ppt_第1页
ucosii任务管理及调度.ppt_第2页
ucosii任务管理及调度.ppt_第3页
ucosii任务管理及调度.ppt_第4页
ucosii任务管理及调度.ppt_第5页
已阅读5页,还剩165页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实时OS-ii,1,3,2,4,C/OS-II概要,任务管理,中断和时间管理,任务间的通信和同步,5,存储管理, 通用操作系统和嵌入式() 实时操作系统:嵌入式操作系统具有通用操作系统的基本特征,包括系统实时性、硬件依赖性、软件固态化和应用操作系统通常包括与硬件相关的基本驱动程序软件、系统内核、设备驱动程序接口、通信协议、图形接口、标准化浏览器br嵌入式(实时) 操作系统的关键指标:实时性(中断响应时间、任务切换时间等)、大小(可修整性)、可扩展性(内核、中间件)、嵌入式操作系统发展、常见的嵌入式操作系统、实时嵌入式操作系统种类繁多、大商用型实际操作系统功能稳定可靠,有完善的技术支持和售后服务

2、,但通常价格昂贵,如Vxworks、QNX、WinCE、Palm OS等。 免费型实时操作系统在价格上具有优势,目前主要有Linux,C/OS是源代码开放的商业RTOS。 C/OS是一种商业操作系统,学习嵌入式操作系统,学习uc/OS等实时操作系统RTOS,掌握实时系统的概念和设置修正方法嵌入式系统以应用程序为中心RTOS的学习态度是“书写”,C/OS-II的层次图,基于C/OS-II的嵌入式系统软件层次图如右图所示,RTOS在嵌入式系统中的位置,嵌入式硬件平台,BSP,KERNEL 1、C/OSMicro Controller O S、微控制器操作系统2、C/OS概述美国人jeanlabro

3、sse于1998年完成了应用方面,涵盖相机、医疗设备、音响设备、引擎控制、高速公路电话系统、ATM等多个领域OS-iiv2. 61,2.722000年,经美国航空管理局(FAA )认证,可以使用飞机中的网站www.ucos-II.com ()公开源代码的可移植性(Portable )的微处理器硬件C/OS-II可以轻松地移植到其他微处理器,因为汇编语言的部分是最小的。 C/OS-II在大多数8位、16位、32位和64位微处理器、微控制器和数字信号处理器(DSP )上运行。 ROMable) C/OS-II针对嵌入式应用程序进行了修订,如果读者具有硬化手段(c编译、连接、下载、硬化),则C/OS

4、-II将嵌入到读者的产品中,成为产品的一部分。 可修整(Scalable )只能使用C/OS-II应用程序所需的系统服务。 也就是说,一个产品只能使用少量的C/OS-II调用,另一个产品几乎可以使用所有的C/OS-II功能,从而减少产品中C/OS-II所需的内存容量(RAM和ROM )。 这种修整性是通过条件编译来实现的。C/OS的性能特性(1)、基本多任务C/OS-II可以管理64个任务,但目前这个版本还保留在8个系统中。 应用程序最多可以确定256个任务确定性所有C/OS-II的函数调用和服务的执行时间。 任务堆栈每个任务都有自己的堆栈,C/OS-II允许每个任务使用不同的堆栈空间,从而减

5、少应用程序对RAM的需求。 系统服务C/OS-II提供许多系统服务,包括邮箱、消息队列、信号量、块大小固定的内存请求和释放以及时间相关函数。中断管理中断可以暂时保留正在执行的任务,如果优先顺序高的任务被该中断唤醒,则优先顺序高的任务在中断嵌套全部结束之后立即执行,中断嵌套的层次数达到255的稳定性和可靠性,C/OS的描绘了C/OS-II内部工作原理的该书的CD中,源代码工业界最清楚的源代码除了英文版之外,还包括中文和韩文版、Chinese、Korean的ISBN 7-81077-290-2北京航空宇宙大学出版社、ISBN 89-951544 操作系统OS-II的各种商业应用,全球数百种产品为:

6、 avionicsmedicalcellphonesroutersandswitcheshigh-endaudioequipmentwashingmachinesanddryersups (unint plies ) industrialcontrollersgpsnavigationsystemsmicrowaveradiosinstrumentationpoint-of -销售终端更多,c/具有os信号量互斥机制的信号量减少优先级反转问题事件标志消息箱消息队列存储器管理时钟管理任务管理,C/GUI and C/FS,C/GUI嵌入式用户接口通过ANSI C写入任意8,16, 32位CPU颜

7、色、灰色、亮度、等级或黑白显示代码大小较小的C/FS嵌入式文件系统Written in ANSI C在ANSI C写入中支持任意8,16,32位CPU SMC,MMC,SD,CF 类型无符号卡中心; 带签名卡片it8s; 16 u类型未注册引擎; 单点划线16 s类型。 类型无符号长型插槽32 u; 类型符号长型插槽32 s。 浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点浮点。 双精度fp64;C/OS-II的文件结构、1、3、2、4、C/OS-II概要、任务和任务管理、中断和时间管理、任务之间的通信和同步、5、存储管理、任务实现/任

8、务代码指针void *pdata,/任务残奥指针OS _。 OSTaskCreateExt (),问题: C/OS-II的任务是进程还是线程?任务主函数,一个任务通常是无限循环(门值类型void ) voidmytask (void * pdata ) while (1) do something; 等待; do something; 什么? 您也可以自行删除任务(不是实际删除任务,而是内核不知道该任务) voidmytask(void*pdata)./*用户代码*/OSTaskDel(OS_PRIO_SELF )和C/OS-最多64个任务每个任务都具有不同的优先级,并且具有从0到OS_LOW

9、EST_PRIO-2的值,数值越小,优先级越高。系统优先级为0、1、2、3、OS_LOWEST_PRIO-3和os_lowest_pri0-。 任务的优先顺序也是其识别号码ID。在OS_CFG.H中定义63、闲置任务和整合任务、内核始终是闲置任务OSTaskIdle (); 始终设置为OS_LOWEST_PRIOR的最低优先级。 如果没有执行所有其他任务,则空闲任务开始执行应用程序无法删除任务空闲任务的工作是将32位计数器OSIdleCtr加1,这样该计数器将用于统一校正任务ostasks 每秒运行一次,修正当前的CPU使用率。 其优先级为OS_LOWEST_PRIOR-1,是可选的。 任务控

10、制块TCB、任务控制块OS_TCB是记述存储了任务堆栈指针、任务的状态、优先级、任务链表指针等各种管理信息的任务的核心数据结构。 任务建立后,将为任务控制块OS_TCB分配值。任务控制块TCB和typedef struct os_tcb堆栈指针。 英特尔16 u ost cbid; /*任务的ID*/链表指针OS_EVENT *OSTCBEventPtr; 事件指针*/void *OSTCBMsg; /*消息指针*/INT8U OSTCBStat; /*任务状态*/INT8U OSTCBPrio; /*任务优先级*/其他OS_TCB; 栈指针,OSTCBStkPtr :指向当前任务栈顶部的指针

11、。 每个任务可以有自己的堆栈,堆栈容量是可选的OSTCBStkBottom :指向任务堆栈底部的指针OSTCBStkSize :堆栈容量。 用可存储的指针数表示,而不是字节数(Byte )。链表指针和所有任务控制块属于两个不同的链表,一个是单向空闲链表(标头指针是OSTCBFreeList ),另一个是双向使用链表(标头指针是OSTCBList ) 每个任务的任务控制块在创建任务时链接到使用链表,在删除任务时从链表中删除。 使用双向连接的链表,任何成员都可以快速插入或删除。 空TCB链表、所有任务控制块都放置在任务控制块列表数组OSTCBTbl中,在系统初始化时,所有TCB都链接到空单向链表,

12、报头指针为OSTCBFreeList。 创建任务时,OSTCBFreeList指向的TCB被分配给任务,并添加到使用链表中,空闲链表中的下一个节点指向OSTCBFreeList。 一旦初始化了系统,则指针数组指向相对应的TCB,任务状态休眠,休眠:任务存在于存储器空间中,但是内核不可见,则OSTaskCreate ()或OSTaskCreateExt 任务状态准备就绪,就绪状态(Ready ) :的函数可以通知您进入睡眠状态在所有准备任务中,选择并执行优先级最高的任务。如果任务正在运行时中断了CPU (只有在任务中断时才可能中断) 任务的状态执行、执行状态(Running ) :任务在CPU上

13、执行。 如果一个任务正在运行而中断未关闭,则中断可能会中断。如果一个任务正在运行,则由于各种原因,可能会出现阻塞状态。 OSMBoxPend (),OSQPend (),ossempend (),ostasksuspend (),OSTimeDly (),任务状态ISR,中断服务状态(ISR )中断服务程序运行完成后,内核是否有新的优先级高的任务任务的状态块、块/等待状态(Waiting ) :等待事件(信号量、邮箱、队列),因此任务挂起。任务等待的事件发生时,进入准备就绪状态。 OSMBoxpost ()、OSQPost ()、OSSemPost ()、OSTaskResume ()、OST

14、imeDlyResume ()或OSTimeTick ()或其操作设置算法的设置校正包括每个任务的调度切换时间的确定性、一致性为此,C/OS设定修正者采用了特殊的算法方式。 整个操作设置算法由两个变量(OSRdyGrp、OSRdyTbl8)、两个表(OSMapTblIndex、INT8U const OSUnMapTbl )和三个程序组成。 三个程序分别用于任务登记进入准备完成状态、任务脱离准备完成状态、找到最高优先准备完成状态的任务的三个准备表操作。 任务准备表及其操作管理、各任务的准备完成状态标志被放入准备完成表中,准备完成表有两个变量OSRdyGrp、OSRdyTbl。 每个任务就绪标志

15、位于OSRdyTbl的相应位中。 在注册准备状态下对OSRdyGrp的操作是为了在第三次操作时提供有效的信息。 在OSRdyGrp中,任务按优先级分组,8个任务分组。OSRdyGrp中的每个位都指示八个任务组中的每个任务组是否有一个就绪任务。 任务进入就绪状态后,就绪表OSRdyTbl中对应元素的对应位置也会被设置。任务准备表、优先级最低的任务、(空闲任务)、优先级最高的任务、任务优先级编号、整数OSRdyTbli(0i7),如果任意一个为1,则OSRdyGrp的第一位任务的优先级由x和y决定根据OS-II任务准备表、优先级来决定准备表(1),假设优先级为12的任务进入准备状态,如果12=1100b,则在OSRdyTbl1的第四位置1、OSRdyGrp的第四4 OSRdyTbl1 |=0 x10; 如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论