1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vxworks概述

* 武汉创维特 Target目录 VxWorks启动源代码在target/config/all目录中 BSP源代码 发布在target/config/bspName/sysLib.c文件中 该文件可以包含BSP目录和通用驱动目录target/src/drv下的其它文件 网络接口和SCSI驱动的源代码在标准发布中没有提供源代码 每个VxWorks库通常由一个或多个目标模块组成,并由相应的头文件定义,例如: Library Routine Include file(s) ------------------ ----------------- ------------------- taskLib taskSpawn taskLib.h memPartLib malloc stdlib.h semLib semTake semLib.h sysLib sysHwInit sysLib.h 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 武汉创维特 * 武汉创维特 VxWorks概述 刘尚军 * 武汉创维特 VxWorks概述 实时嵌入式操作系统VxWorks VxWorks和Tornado开发环境 * 武汉创维特 VxWorks概述 实时嵌入式操作系统VxWorks * 武汉创维特 实时嵌入式操作系统VxWorks * 武汉创维特 实时系统 多任务内核: 基于优先级的抢占式调度 任务间通讯机制 其它的组件以库的方式建立在内核周围 VxWorks与其它非实时操作系统的区别: 基于优先级的抢占式调度 快速 内核精简和高度可裁减 * 武汉创维特 基于优先级的抢占式内核调度 High Priority Task A Medium Priority Task B Low Priority Task C Event Event * 武汉创维特 VxWorks的任务调度 VxWorks的每个任务可以设定自己的priority和mode。(可否设断点、是否支持浮点操作) VxWorks的优先级为0-255(a Byte)。优先级数越低优先级越高 VxWorks任务分为系统任务和用户任务,IDLE任务优先级为255。 * 武汉创维特 VxWorks中任务与代码 所有的任务代码和全局数据驻留在一个公共的地址空间 所有的任务运行在supervisor模式 * 武汉创维特 VxWorks中任务与代码 在UNIX/NT中,执行相同代码的所有进程共享text,而每个进程都有自己独立的data和bss 在VxWorks中,每一个访问相同代码的任务在访问text, data或者bss段时,所访问的物理内存是一样的 所有的任务代码和全局数据驻留在一个公共的地址空间 使得任务间的通讯快速而容易 使得任务间上下文的切换更加迅速 (不需要保存和恢复虚拟地址上下文). 但是任务之间可能会产生代码不可重入的问题 所有的任务运行在supervisor模式 * 武汉创维特 代码的可重入(1) 多任务运行环境要求我们编写的代码是可重入的 可重入的代码体是指代码体可被多任务占用,而且不出错。 这就要求,代码内无临界资源:临界变量如全局变量,临界设备如打印机,大部分I/O都是临界设备;代码不修改自身,例如病毒就是一种能够修改自身的代码。 * 武汉创维特 代码的可重入(2) 上图中的fooVal可能产生不可重入的问题 避免方法: 如果需要多个任务同时访问,请对fooVal的访问进行原子操作 如果不需要多个任务同时访问,请将该变量定义为taskVar。或者使用局部变量。 * 武汉创维特 VxWorks任务中使用全局变量 如果确定该变量只在一个任务中使用建议使用taskVar 尽量避免在多个任务中使用同一个全局变量,可以使用任务间通讯机制代替 如果在多个任务中使用全局变量请使用原子操作 多个任务的代码中有全局变量同名的情况也可能产生这个问题 * 武汉创维特 VxWorks概述 VxWorks和Tornado开发环境 * 武汉创维特 VxWorks交叉开发环境 * 武汉创维特 VxWorks交叉开发环境 编码和编译在host上的Tornado中进行 编辑器 编译器/汇编器/连接器。可在IDE中进行或

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档