77范文网 - 专业文章范例文档资料分享平台

VX编程手册

来源:网络收集 时间:2019-04-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

VxWorks编程手册

编程手册

赵洪策

2003年3月7日

第 1 页 共 35 页

VxWorks编程手册

目录

编程手册 .......................................................................................................................................... 1

1.VxWorks任务 .................................................................................................................... 3

1.1VxWorks中的多任务 ................................................................................................. 3 1.2任务状态转换 ............................................................................................................. 3 1.3 任务的调度程序 ........................................................................................................ 4 1.4任务控制 ..................................................................................................................... 7 1.5任务扩展 ................................................................................................................... 10 1.6任务错误状态: ....................................................................................................... 11 1.7任务异常的处理 ....................................................................................................... 11 1.8共享代码和重载入 ................................................................................................... 11 1.9VxWorks系统任务 ................................................................................................... 13 1.10任务堆栈 ................................................................................................................. 13 2任务间通讯 .......................................................................................................................... 14

2.1共享内存结构 ........................................................................................................... 14 2.2互斥变量 ................................................................................................................... 14 2.3Semaphores信号量 ................................................................................................... 15 2.4消息队列 ................................................................................................................... 20 3、中断 ................................................................................................................................... 23 4、I/O系统 ............................................................................................................................ 25

4.1介绍 ........................................................................................................................... 25 4.2文件、设备和驱动 ................................................................................................... 26 4.3基本I/O .................................................................................................................... 26 4.4 Buffered I/O—Stdio .................................................................................................. 28 4.6异步输入、输出(AIO) ........................................................................................ 29 4.7 VxWorks中的设备 .................................................................................................. 30

4.7.1串口I/O设备(终端和伪终端设备) ......................................................... 30 4.7.2 PIPE设备 .................................................................................................... 31 4.7.3 伪内存设备 ................................................................................................. 32 4.7.4 网络文件系统设备 ..................................................................................... 32 4.7.5 非NFS设备 ................................................................................................ 32 4.7.6 block设备 ................................................................................................... 33 4.7.7 SOCKET...................................................................................................... 33 4.7.8 VxWorks与Host系统I/O的区别 ............................................................ 33

5. 本地文件系统 .................................................................................................................... 33

5.1介绍 ........................................................................................................................... 33 5.1dosFs .......................................................................................................................... 33 5.2 Raw File System: rawFs ............................................................................................ 33 5.3 CD-ROM File System: cdromFs ............................................................................... 34 5.4 目标服务器文件系统-TSFS ................................................................................... 35

第 2 页 共 35 页

VxWorks编程手册

前言 本手册主要描述VxWorks系统,VxWorks是高性能实时操作系统Tornado的组件。也描述了如何使用VxWorks工具开发实时应用程序。目前流行的实时系统都基于多任务和任务间通讯。多任务环境允许时实应用程序作为独立的任务构建,每个任务都有自己的执行程序和系统资源。任务间通讯允许这些任务为完成某一行为而同步和相互通讯。在VxWorks中,从信号量到消息队列,从管道到socket,都涉及任务间通讯。 在实时系统中,另一个重要工具是硬件中断处理,因为中断是通知外部事件系统的常用机制,为了得到对中断的更快响应,在VxWorks 中,interrupt service routines (ISRs)是一个独立的部分,不在任务之列。主要涉及如下几个主题:

1、 多任务 2、 任务间通讯 3、 中断处理 4、 I/O系统 5、 文件系统 1.VxWorks任务

在VxWorks中,任务,同调度程序一样,是工作的基本单元,与其他系统中的线程等同(threads)。所有的调度程序都发生在任务层。VxWorks的任务是相关联的,共享的大部分相同的系统资源。

1.1VxWorks中的多任务

多任务为应用程序提供了一个基本的机制,以控制和响应多个、离散的事件。每个任务都有自己的内容,包括CPU环境和系统资源,由内核按照一定的调度算法运行。在发生任务切换时,与任务相关的内容保存到task control block (TCB)中。任务的内容包括: -内存地址空间 -执行线程,即任务的程序计数器 -CPU寄存器和浮点寄存器 -动态变量和函数调用的堆栈 -标准输入、输出和错误的I/O分配 -延时定时器 -时间片定时器 -内核控制结构 -信号处理器

1.2任务状态转换

系统内核维护了当前每个任务的状态,应用程序调用内核函数,导致一个任务从一种状态转换到另一种状态。表1-1列出了任务的所有状态: 3 状态 READY PEND 描述 此任务状态只等待CPU资源,其他资源除外 此任务状态是由于一些资源不可用而被阻塞 第 3 页 共 35 页

VxWorks编程手册

DELAY SUSPEND 此任务状态是休眠一段时间 此任务状态是执行程序不可用,此状态主要用来调试,SUSPEND状态不影响状态的转换,只影响程序的执行。因此,pended-suspended任务一直不阻塞,而delayed-suspended tasks任务能够一直唤醒。 此任务状态是停止(暂停),当一个任务被debugger停止,通常是在任务中设置了断点。此状态不影响状态的转换,只影响程序的执行。 此任务状态是both delayed and suspended 此任务状态是 both pended and suspended 此任务状态是阻塞一段时间值 此任务状态是 both pended and stopped 此任务状态是 stopped with a timeout value 此任务状态是 both stopped and suspended 此任务状态是 both pended with a timeout value and suspended 此任务状态是 pended, stopped and suspended 此任务状态是 both stopped with a timeout value, and suspended. 此任务状态是 pended with a timeout value, stopped, and suspended 此任务状态是:状态由state指定,加上继承的优先级 BREAK DELAY + S PEND + S PEND + T PEND + BRK DLY + BRK BREAK + S PEND + S + T PEND + B + S BRK + S + T P + B + S +T state + I

PEND + B + T 此任务状态是 both pended with a timeout value, and stopped 任务可以在一到两步内创建并且激活,也可以调用函数taskSpawn( )一步生成(spawned,即创建又激活)。某些情况下,使用taskCreate( )和 taskActivate( )函数两个步骤是有用的,这允许应用程序在使用任务之前先创建(因为任务的创建要花费一部分taskSpawn( )时间),然后采用快速激活机制激活任务。在创建任务之后,激活之前,任务在suspended状态,激活时转换到ready状态。可以在任何状态下删除任务。

1.3 任务的调度程序

多任务需要一种调度机制,用来为ready状态的任务分配CPU。在wind中,缺省模式是基于优先级的抢占模式算法,但是你可以选择轮询模式。

1.3.1抢占式优先级模式

采用抢占式优先级算法,每个任务都有一个优先级,内核决定分配CPU给具有最高优先级的ready状态的任务。此方法既为抢占式,既当一个比当前任务有更高优先级的任务准备运行时,内核立即保存当前任务的相关内容,并切换到有更高优先级的任务。图1-2中,任务1被拥有更高优先级的任务2抢占,依次,又被任务3抢占。

第 4 页 共 35 页

VxWorks编程手册

ready——pend:semTake( ) / msgQReceive( ) ready——delay:taskDelay( )

ready——suspend:taskSuspend( )

pend——ready:semGive( ) / msgQSend( ) pend——suspend:taskSuspend( ) delay——ready:expired delay delay——suspend:taskSuspend( ) suspend——ready:taskActivate( ) suspend——pend:taskResume( ) suspend——delay:taskResume( ) 当任务3完成时,任务2继续执行,当任务2完成后,任务1继续执行。 表1-2,任务排列控制例程: Call kernelTimeSlice( ) taskPrioritySet( ) taskLock( ) taskUnlock( ) Description 控制轮询式调度程序 改变任务优先级 取消任务的再调度 允许任务的再调度 第 5 页 共 35 页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VX编程手册在线全文阅读。

VX编程手册.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/599177.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: