- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Tornado开发环境 VxWorks嵌入式操作系统 中南大学信息科学与工程学院 胡小龙 主要内容 VxWorks简介 Tornado开发环境 BSP设计 设备驱动程序 VxWorks简介 广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks VxWorks简介 何谓实时? 对于给定一个时间约束量ε 0,如果系统S在T1时刻接受到输入,在T2时刻给出合理的输出,且使T2-T1ε。则称系统S满足要求时间ε的实时性,通常称系统S为实时系统。 “正确、但迟后的结果也是错误的” VxWorks的特点 可靠性 实时性 可裁减性 VxWorks 由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成(400多个)。VxWorks 内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。 多任务支持(丰富的IPC机制) 优秀的开发环境 VxWorks的组成 VxWorks Kernel VxWorks内核(wind)的基本功能可以分为如下几大类: 任务管理 事件和异步信号服务 信号量服务 消息队列服务 内存管理 中断服务程序 时钟管理和定时器服务 出错处理 VxWorks Kernel 任务管理(state) 等待资源而阻塞 等待CPU 被延时 不被调度 Note:任务在任意状态均可被删除 就绪态- 悬置态 semTake()/msgQReceive() 就绪态- 延迟态 taskDelay() 就绪态- 休眠态 taskSuspend() 悬置态- 就绪态 semGive()/msgQSend() 悬置态- 休眠态 taskSuspend() 延迟态- 就绪态 expired delay 延迟态- 休眠态 taskSuspend() 休眠态- 就绪态 taskResume()/taskActivate()休眠态- 悬置态 taskResume() 休眠态- 延迟态 taskResume() VxWorks Kernel 任务管理(调度策略) Wind内核采用基于优先级(0~255)的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法 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 通信、同步和互斥机制(共享内存) 任务间通信的最简单的方法是采用共享存储区,也即相关的
您可能关注的文档
最近下载
- ASTMA182-2015中文.PDF VIP
- 2025云南玉溪红塔实业有限责任公司员工招聘25人笔试备考试题及答案解析.docx VIP
- 2018湖北省施工机具使用费定额.pdf
- 25公安冲刺110考点 -更新版.pdf VIP
- 第三届全国生态环境监测专业技术人员大比武吉林省赛试题库资料(含答案).pdf
- (正式版)DB23∕T 3711-2024 《市县级矿产资源总体规划编制技术规程》.pdf VIP
- 工业设计审计报告范文.pdf VIP
- 丸红株式会社电子材料介绍.ppt VIP
- 2025年西式面点师(高级)实操技能与理论知识考核试题.docx VIP
- JBL_MS202 迷你桌面音响 说明书.pdf VIP
原创力文档


文档评论(0)