VxWorks嵌入式操作系统课件

上传人:仙*** 文档编号:253182247 上传时间:2024-11-30 格式:PPTX 页数:43 大小:2.12MB
返回 下载 相关 举报
VxWorks嵌入式操作系统课件_第1页
第1页 / 共43页
VxWorks嵌入式操作系统课件_第2页
第2页 / 共43页
VxWorks嵌入式操作系统课件_第3页
第3页 / 共43页
点击查看更多>>
资源描述
VxWorks嵌入式操作系统,主要内容,VxWorks简介,Tornado开发环境,BSP设计,设备驱动程序,VxWorks简介,美国WindRiver公司于1983年设计开发,良好的持续发展能力,高性能的内核,友好的用户开发环境,良好的可靠性和卓越的实时性,VxWorks简介,广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等,F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks,VxWorks简介,何谓实时?,对于给定一个时间约束量,0,,如果系统,S,在,T1,时刻接受到输入,在,T2,时刻给出合理的输出,且使,T2-T1 悬置态,semTake()/msgQReceive(),就绪态-延迟态,taskDelay(),就绪态-休眠态,taskSuspend(),悬置态-就绪态,semGive()/msgQSend(),悬置态-休眠态,taskSuspend(),延迟态-就绪态 expired delay,延迟态-休眠态,taskSuspend(),休眠态,-,就绪态,taskResume()/taskActivate(),休眠态,-,悬置态,taskResume(),休眠态,-,延迟态,taskResume(),VxWorks Kernel,任务管理(调度策略),Wind,内核采用基于优先级,(,0255,),的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法,VxWorks Kernel,任务管理(优先级反转),优先级,时间,客观上造成优先级低的进程T2抢占优先级高的进程T1,Vxworks解决方案:,优先级继承,在T1阻塞时,T3继承T1的优先级,VxWorks Kernel,任务管理(禁止调度),Wind,内核可通过调用,taskLock(),和,taskUnlock,(),来使调度器起作用和失效。当一个任务调用,taskLock(),使调度器失效,任务运行时没有基于优先级的抢占发生。然而,如果任务被阻塞或是悬置时,调度器从就绪队列中取出最高优先级的任务运行。当设置抢占禁止的任务解除阻塞,再次开始运行时,抢占又被禁止。这种抢占禁止防止任务的切换,但对中断处理不起作用。,VxWorks Kernel,任务管理(API),taskSpawn(),创建(产生并激活)新任务,taskInit(),初始化一个新任务,taskActivate(),激活一个已初始化的任务,taskName(),由任务,ID,号得到任务名,taskNameToId,(),由任务名得到任务,ID,号,taskPriorityGet(),获得任务的优先级,taskIsSuspended(),检查任务是否被悬置,taskIsReady(),检查任务是否准备运行,taskTcb(),得到一个任务控制块的指针,taskDelete(),中止指定任务并释放内存(仅任务堆栈和控制块),taskSafe(),保护被调用任务,taskSuspend(),悬置一个任务,taskResume(),恢复一个任务,taskRestart(,),重启一个任务,taskDelay(),延迟一个任务,VxWorks Kernel,通信、同步和互斥机制,VxWorks,支持各种任务间通信机制,提供了多样的任务间通信方式,主要有如下几种:,共享内存,主要是数据的共享;,信号量,用于基本的互斥和任务同步;,消息队列和管道,单CPU的消息传送;,Socket,和远程过程调用,用于网络间任务消息传送;,二进制信号,用于异常处理。,在多处理器之间的任务也可采用共享内存对象来实现任务间通信,只是在系统配置上有所不同,通过组件支持COM/DCOM,VxWorks Kernel,通信、同步和互斥机制(,共享内存),任务间通信的最简单的方法是采用共享存储区,也即相关的各个任务分享属于它们的地址空间的同一内存区域。因为所有任务都存在于单一的线性地址空间,任务间,可以,共享数据。,全局,的,变量、线性队列、环形队列、链表、指针都可被运行在不同上下文的代码所,引用.,但保证互斥使用是用户的任务.,VxWorks Kernel,通信、同步和互斥机制(,互斥),关中断,抢占禁止(taskLock),信号量锁定资源等方法,一般来说,关中断是最有效的解决互斥的方法。但这对于实时应用来说,它阻止系统对外部事件的响应,无法满足实时性的要求。同样,中断延迟也是不能接受。,VxWorks Kernel,通信、同步和互斥机制(,信号量,),VxWorks,信号量提供最快速的任务间通信机制,它主要用于解决任务间的互斥和同步。针对不同类型的问题,有以下三种信号量:,二进制信号量使用最快捷、最广泛,主要用于同步或互斥;,互斥信号量主要用于优先级继承、安全删除和回溯;,计数器 资源分配,Note:VxWorks,还提供,POSIX,信号量和多处理器上信号量的应用。,VxWorks Kernel,通信、同步和互斥机制(,信号量 API,),semBCreate(),创建(产生并激活)一个二进制信号量,semMCreate(),创建(产生并激活)一个互斥信号量,semCCreate(),创建(产生并激活)制一个计数信号量,semDelete(),中止并删除信号量,semTake,(),获得信号量,semGive(),释放信号量,semFlush(),解锁所有正等待某一信号量的任务,VxWorks Kernel,通信、同步和互斥机制(,消息队列,),单处理器中任务间消息的传送采用消息消息队列。消息机制使用一个被各有关进程共享的消息队列,任务之间经由这个消息队列发送和接收消息。,Wind,消息队列管理:,msgQCreate(),创建(产生并激活)消息队列,msgQDelete(),中止并自由信号量,msgQSend(),向消息队列发送消息,msgQReceive(),从消息队列接收消息,VxWorks Kernel,通信、同步和互斥机制(,管道),管道,是,用,VxWorks,的,I/O,系统提供一种灵活的消息传送机制,它是受驱动器,pipeDrv,(,VxWorks,所提供)管理的虚拟,I/O,设备,Note:任务调用标准的,I/O,函数打开、读出、写入管道,VxWorks Kernel,通信、同步和互斥机制(,网络通信,),VxWorks,提供了如下一些网络工具完成信息传送:,Sockets,完成运行在,VxWorks,系统或其它系统之间任务的消息传送;,远程过程调用(,RPC,)允许任务调用另一主机(运行的系统为,VxWorks,或是其它)上的过程。,远程文件存取,VxWorks,任务可采用,NFS,、,RSH,、,FTP,、,TFTP,等方式远程存取主机文件。,VxWorks Kernel,通信、同步和互斥机制(,网络通信,组件),VxWorks Kernel,通信、同步和互斥机制(,Sockets,),VxWorks Kernel,中断服务程序,intConnect(),将,C,函数和中断向量联结,intCount(),得到当前中断套叠深度,intLevelSet(),设置程序中断级别,intLock(),使中断禁止,intUnlock(),开中断,intVecSet(),设置异常向量,intVecGet(),得到异常向量,VxWorks Kernel,时钟管理,时钟管理提供以下功能:,维护系统日历时钟;,在任务等待消息包、信号量、事件或内存段时的超时处理;,以一定的时间间隔或在特定的时间唤醒或发送告警到一个任务。,处理任务调度中的时间片轮循。,VxWorks Kernel,时钟管理(API),tickAnnounce(),通知系统内核时钟,“,滴答,”,tickSet(),设定内核时钟计数器值,tickGet(),得到内核时钟计数器值,timer_create(),创建时钟,timer_gettime(),获得时钟器给定值的当前剩余值,timer_settime(),设定时钟值,timer_connect(),联系用户函数和时钟信号,timer_cancel(),取消一个时钟,sysClkRateSet(),系统时钟速率设置,Tornado开发环境,集成环境,高效明晰的图形化的实时应用开发平台,完整的面向嵌入式系统的开发和调测工具,Tornado开发环境,Tornado开发环境,Tornado开发环境,Tornado开发环境,Tornado开发环境,BSP(Board Support Package),BSP在系统中的位置,BSP,BSP的作用,为各种目标板的硬件功能提供了统一的软件,它们包括:,硬件初始化,中断处理和产生,硬件时钟和定时器管理,内存映射和分配,BSP,还包括,boot Rom,和其它启动机制,sysLib,和,sysALib,库是,VxWorks,可移植的核心,BSP,BSP初试化一般过程,BSP初试化一般过程,BSP初试化一般过程,设备驱动程序,SIO(Serial I/O),END(Enhanced Network Driver),ttyDrv Terminal driver,ptyDrv Pseudo-terminal driver,pipeDrv Pipe driver,memDrv Pseudo memory device driver,nfsDrv NFS client driver,netDrv Network driver for remote file access,ramDrv RAM driver for creating a RAM disk,scsiLib SCSI interface library,Other hardware-specific drivers,设备驱动程序(I/O结构),I/O子系统,Device Driver,IOLib,APP,对所支持的设备,VxWorks标准接口,设备驱动程序,驱动初始化例程,xxDrv(),安装驱动、分配数据结构、连接中断服务例程、初始化硬件,设备创建,xxDevCreate(),给驱动增加一个设备,参数包括缓冲区大小、设备地址等,为设备初始化数据结构、信号量和硬件等,基本,I/O,功能,xxOpen(),xxRead(),xxWrite(),xxIoctl(),中断服务例程,xxInterrupt(),应用软件开发指导,任务划分要合理,功能内聚性,时间紧迫性,周期执行原则,防止死锁、饥饿和优先级翻转,函数的可重入性(,Reentrancy,)正确运用,用户任务优先级确定,BSP及驱动开发指导,了解硬件及其操作,根据BSP或驱动模板编写,对VxWorks支持的I/O,采用VxWorks标准接口,对VxWorks不支持的I/O,编写自己的用户接口(xxOpen,xxRead,xxWrite,xxIoctl,xxISR),回调机制,动态加载,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!