vxWorks文件系统详细介绍

合集下载

VxWorks操作系统基础(适合初学者阅读)2024新版

VxWorks操作系统基础(适合初学者阅读)2024新版
提供最基本的系统服务,如任务调度、内存管理、中断处理等。
系统库(System Library)
提供一系列操作系统服务,如文件操作、网络协议栈等。
驱动程序(Device Drivers)
与硬件设备交互,实现对硬件设备的控制和管理。
内核组成及作用
内核组成及作用
01
内核的主要作用包括
02 管理系统资源,如CPU、内存、I/O设备等 。
06
VxWorks文件系统操作指南
文件系统类型及特点介绍
RAM-based File System
基于RAM的文件系统,读写速度快,但数据在 关机后丢失。
TrueFFS
Wind River特有的闪存文件系统,提供磨损均 衡和掉电保护功能。
ABCD
DOS File System (dosFs)
兼容MS-DOS的文件系统,支持FAT12、FAT16 和FAT32格式。
01
VxWorks操作系统概述
VxWorks操作系统定义
VxWorks是一款由美国风河公司( Wind River)开发的嵌入式实时操 作系统(RTOS),专为需要实时响 应和高可靠性的应用而设计。
VxWorks提供了丰富的中间件和开发 工具,支持多种处理器架构和硬件平 台,广泛应用于航空、航天、通信、 医疗、工业自动化等领域。
在ISR中处理完中断事件后, 需要及时清除中断标志,避 免重复处理。
中断优先级设置和嵌套处理
01
VxWorks支持多级中断优先级,高优先级的中断可以打断低优先 级的中断处理。
02
中断优先级可以通过配置文件或动态调整进行设置,以满 足不同应用场景的需求。
03
在处理中断时,如果发生更高优先级的中断请求, VxWorks会自动保存当前中断的上下文信息,并跳转到更 高优先级的中断处理程序中。处理完成后,再恢复之前中 断的上下文信息并继续执行。这种机制称为中断嵌套处理 。

VxWorks操作系统简介

VxWorks操作系统简介

VxWorks操作系统简介VxWorks操作系统简介VxWorks操作系统是一种广泛应用于嵌入式系统开发的实时操作系统。

本文将详细介绍VxWorks操作系统的架构、特性、应用领域以及相关的法律名词注释。

一、VxWorks操作系统架构VxWorks操作系统采用分层架构,包括内核层、中间层以及外围应用层。

具体架构如下:⒈内核层:提供底层的操作系统服务,包括任务管理、内存管理、中断处理、设备驱动等。

内核层使用高度模块化的设计,可以根据需求选择性地加载不同的内核服务。

⒉中间层:提供更高层次的功能,如文件系统、网络协议栈、图形用户界面等。

中间层通过对内核接口的封装,提供更便捷的应用开发接口。

⒊外围应用层:包括用户应用程序和系统管理工具。

用户应用程序可以基于VxWorks操作系统的开发环境进行开发,并且通过内核和中间层提供的接口与系统进行交互。

二、VxWorks操作系统特性VxWorks操作系统有以下特点:⒈实时性:VxWorks操作系统被广泛应用于实时系统开发,具有快速响应、低延迟和可预测性等特性。

它使用了优化的调度算法和中断处理机制,确保系统对实时任务的及时响应。

⒉可靠性:VxWorks操作系统采用了可靠性设计和故障恢复机制,例如内存保护、任务隔离和异常处理等。

这些机制可最大限度地减少系统崩溃和错误的影响。

⒊可扩展性:VxWorks操作系统具有高度可扩展性,可以根据应用的需要进行灵活配置。

开发人员可以根据系统需求选择性地加载所需的内核服务和中间层模块,以达到最佳性能和资源利用。

⒋安全性:VxWorks操作系统提供了多层次的安全机制,包括权限控制、数据加密和访问控制等。

这些机制可以在网络和物理环境中保护系统不受未经授权的访问和攻击。

三、VxWorks操作系统的应用领域VxWorks操作系统在各行各业都有广泛的应用,特别适用于对实时性和可靠性要求较高的领域。

以下是一些典型的应用领域:⒈工业自动化:VxWorks操作系统被广泛用于控制系统和工业领域,如汽车制造、航空航天和机械制造等。

第8章vxworks文件系统

第8章vxworks文件系统
– 文件系统接口在驱动表注册后, dosfsDevCreate中调用iosDevAdd,传入设备 结构指针、设备名称和驱动号为参数,将设 备结构添加到设备链表中
– 设备名为文件系统名,如”/tffs0/” – 文件系统安装到IO系统中后,就可以用上层
库提供的接口函数进行操作了
嵌入式操作系统
2、文件系统类型
嵌入式操作系统
1.2 文件系统如何加入到I/O系统中
• 文件系统和IO系统的挂接同字符设备类似
– 把文件系统看作是一个字符设备驱动
• 以dosFs文件系统为例看文件系统如何加载?
– 在dosFsLib库中实现了I/O系统规定的7个标准函数
嵌入式操作系统
– dosFsLibInit中调用iosDrvInstall将7个函数指针填入 驱动程序表中,并得到一个驱动号 • 表中各函数的入口对应文件系统提供的相应函数
嵌入式操作系统
第8章 VxWorks文件系统
主要内容
1、文件系统结构 2、文件系统类型
嵌入式操作系统
嵌入式操作系统
1、 文件系统结构
应用通过I/O系统提供的标准接口来访问文件系统
I/O系统
设备
open()
字符设备 设备A
create()

read()


write()

close()
ioctl()
• 文件系统与存储设备的硬件特性、系统需求等密 切相关
– 在嵌入式应用中,主要的存储设备为RAM(DRAM, SDRAM)、ROM和FLASH存储器
– Linux下常用的文件系统类型包括: cramfs, romfs, yaffs, jffs2, ramdisk, ramfs/tmpfs等

vxworks系统及函数详解

vxworks系统及函数详解

VxWork介绍及编程VxWork介绍及编程一.嵌入式操作系统VxWorks简介VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。

良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。

它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。

实时操作系统和分时操作系统的区别从操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统。

分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。

这样的系统无法实时响应外部异步事件。

实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。

分时系统主要应用于科学计算和一般实时性要求不高的场合。

实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。

VxWorks的特点•可靠性操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。

而稳定、可靠一直是VxWorks的一个突出优点。

自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。

•实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。

实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。

VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。

vxWorks文件系统详细介绍

vxWorks文件系统详细介绍

VxWorks为块设备(磁盘)的实时使用提供了两种本地文件系统:一种与MS-DOS文件系统相兼容,另一种与RT-11文件系统相兼容。

这些文件系统的支持库分别为dosFsLib和rt11FsLib。

VxWorks还提供了一种简单的raw文件系统,这个文件系统把整个磁盘作为一个单独的大文件。

这个文件系统的支持库是rawFsLib。

VxWorks还为不使用标准文件或目录结构的磁带设备提供了一个文件系统。

磁带卷被看作一个raw设备,整个卷就是一个大文件。

这个文件系统的支持库是tapeFsLib。

另外,VxWorks提供了一个文件系统支持库cdromFsLib,它允许应用程序从依照ISO9660标准文件系统格式化的CD-ROMs中读取数据。

在VxWorks中,文件系统不受块设备种类型或它的驱动程序的约束。

VxWorks块设备都使用一个标准接口,以便文件系统可以与设备驱动程序自由的混合。

做为选择,你可以写自己的能被驱动程序以相同方式使用的文件系统,只要在文件系统、驱动程序和I/O系统间遵循同样的标准接口。

VxWorks的I/O体系结构使得在一个VxWorks系统中可以有多样的文件系统,甚至其类型也可以不同。

块设备界面在3.9.4块设备中讨论。

1 与MS-DOS兼容的文件系统:dosFs使用dosFs文件系统格式化的磁盘与MS-DOS(直至6.2版本)磁盘是相兼容的。

由两个文件系统初始化的硬盘之间在格式上有细微区别。

然而,数据自身是兼容的,而且dosFs可被配置成使用MS-DOS格式化的磁盘。

DosFs文件系统向不同要求的实时应用程序提供了良好的适应性。

主要特点包括:l 文件和目录分等级排序,允许有效地组织,在一卷上可以创建任意数量的文件。

l 每个文件可以是连续存储或非连续存储的。

非连续存储的文件可使硬盘空间利用率更高,连续存储的文件可以增强系统性能。

l 具有与广泛可用的存储器和可恢复介质的兼容性。

应用VxWorks(不使用dosFs文件扩展名)、MS-DOS PCs和其它系统创建的磁盘可以自由的交换。

Vxworks基础

Vxworks基础
板支持包(BSP)
为各种目标板的硬件功能提供了统一的软件接口 它们包括: 硬件初始化 中断处理和产生 硬件时钟和定时器管理 内存映射和分配 BSP还包括boot Rom和其它启动机制 sysLib和sysALib库是VxWorks可移植的核心
Vxworks操作系统将一切与硬件有关的功能模块都放在BSP库中。该BSP库是硬件与软件的接口,处理硬件的初始化、中断处理与产生、硬件时钟与定时管理、局部和总线内存空间的映射、内存大小定义,等等。能够自行启动目标机、初始化目标机、能够与host通信以下载Vxworks核、把控制权交给Vxworks核来调用用户应用程序等功能。
Tornado 系统结构
POSIX Library
Real-Time Embedded Application
Host
VxSim
Debug Agent
Tornado Plug-ins
Target
Target Server
Launcher
Core OS
BSP

Ethernet
Serial Line
板支持包(BSP)
VxWorks的特点--高度伸缩性的环境
Stand-alone kernel up to full featured OS
0
100
200
300
400
500
Maximum Equipped
File System
Networking
O.S.
m
Memory Requirements (Kbytes)
VxWorks (1)
Vxworks提供了一套丰富的任务间通信机制,包括: ●内存共享(Shared memory):简单的数据共享方法 ●信号量(Semaphore):用于基本的互斥及同步 ●消息队列(Message queues)和管道(pipe): 用于同一CPU上任务间消息的传递 ●套接口(Socket)和远程程序调用(RPC): 用于网络上任务间的通信 ●信号(Signal):用于异常处理 此外,Vxworks提供了三种共享内存的对象(shared-memory objects) 来实现运行在不同CPU上的任务间的高速同步和通信。 ●共享信号量(shared semaphores):有二进制,记数型两种 ●共享消息队列(shared message queues) ●共享内存分区(shared-memory partitions):有系统类型和用户类型

VxWorks之认识(转)

VxWorks之认识(转)

VxWorks之认识(转)Tornado是WindRiver公司开发的用于嵌入式开发的一组产品,它包括32位实时操作系统VxWorks,集成开发环境(IDE,包括编译器等)。

下面是我阅读完VxWorks相关文档后的一些个人认识。

一.VxWorks操作系统VxWorks时实时多任务的嵌入式操作系统,它主要包括任务调度、I/O功能、文件系统、中断管理、内存管理、网络功能、内存管理、BSP(系统启动模块)等。

它的多任务的实现是由中断驱动的,即在每个系统时钟中断中,实现任务的调度。

VxWorks中的任务有优先级的概念。

与其它嵌入式操作系统相比,它有如下优点:1.任务之间的切换快,任务间通信手段多样;2.中断响应的延时短;3.内存管理安全:VxWorks把内存分成很多区域,包括内核区、用户区,并且采用虚拟内存管理的方法,这样大大提高了系统的安全性,并且增加了堆栈溢出的判断;4. I/O功能丰富,硬件驱动全面;5.文件系统强大;6.网络功能全面;7.对任务的实时监控;8. BSP(启动模块)的支持;9.多CPU的支持;10.系统各模块是单独的库,可以根据需要加载。

下面就详细讲述各部分内容。

1.多任务功能:VxWorks的任务有优先级的概念,其任务调度也是基于优先级考虑的,是抢占式的,VxWorks的任务有256个等级,0—255,数目越小表示优先级越高。

高优先级的任务可以打断低优先级的任务而抢先执行,只有在高优先级的任务执行完后,低优先级的任务才可以执行。

其调度算法有两种:完全抢占式的和循环分配式的。

完全抢占式的是除了高优先级任务可以打断低优先级任务外,在相同优先级的任务之间,不可以相互打断,并且同优先级任务不是同时执行的,只有等该任务执行完后,与其相同优先级的任务才可以执行;循环分配式除了具有抢占功能之外,相同优先级的任务是可以同时执行的,即系统时间片是在它们之间平均分配的,这样,相同优先级的任务可以同时执行。

vxworks的TFFS分析

vxworks的TFFS分析

vxworks的TFFS分析Vxworks的tffs分析1. Tffs简介Vxworks的tffs位于dosfs文件系统和底层硬件中,其存在的目的是:dosfs文件系统是针对磁盘的FAT文件系统,而我们大部分嵌入式设备存储设备是flash,flash和磁盘在物理特性上差别很大;首先磁盘和flash的读写方式不一样,磁盘可以一个字节一个字节的修改,而flash在写之前必须先擦除;flash的擦除和写有次数限制(大部分flash设备是10万次);tffs的存在使得dosfs对flash操作犹如对flash操作一样,这样tffs就屏蔽了底层设备的差异。

Tffs有以下几个特性:: Wear-leveing算法:此算法的目的在于均衡flash损耗,使得flash各个块的擦除和写次数平衡。

碎片回收:TrueFFS 使用一种被称为碎片回收(garbage collection)的机制来回收那些不再包含有效数据的块。

该机制从一个预擦除单元(source era se unit)内拷贝所有的有效数据块到另一个新的被称为转移单元(transfer unit)的擦除单元。

TrueFFS然后更新 block-to-flash映射表再擦除这个废旧的预擦除单元。

错误恢复:此功能使用了写后删除技术(erase after write),使得数据唯一性,不会产生中间数据。

下图是整dosfs+tffs文件系统架构:可以看到dosfs是位于tffs上层的,tffs包含三层:翻译层、MTD层和socket层。

我们增加tffs特性时需要修改MTD层和socket层。

翻译层由vxworks提供,不需要修改。

下面介绍各层的作用。

翻译层:主要实现 TrueFFS和 dosFs之间的高级交互功能。

它也包含了控制 flash映射到块、wear-leveling、碎片回收和数据完整性所需的智能化处理功能。

MTD层:即设备驱动层,包含flash读、写、擦除、ID识别等驱动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VxWorks为块设备(磁盘)的实时使用提供了两种本地文件系统:一种与MS-DOS文件系统相兼容,另一种与RT-11文件系统相兼容。

这些文件系统的支持库分别为dosFsLib和rt11FsLib。

VxWorks还提供了一种简单的raw文件系统,这个文件系统把整个磁盘作为一个单独的大文件。

这个文件系统的支持库是rawFsLib.VxWorks还为不使用标准文件或目录结构的磁带设备提供了一个文件系统。

磁带卷被看作一个raw设备,整个卷就是一个大文件.这个文件系统的支持库是tapeFsLib。

另外,VxWorks提供了一个文件系统支持库cdromFsLib,它允许应用程序从依照ISO9660标准文件系统格式化的CD-ROMs中读取数据。

在VxWorks中,文件系统不受块设备种类型或它的驱动程序的约束.VxWorks块设备都使用一个标准接口,以便文件系统可以与设备驱动程序自由的混合。

做为选择,你可以写自己的能被驱动程序以相同方式使用的文件系统,只要在文件系统、驱动程序和I/O系统间遵循同样的标准接口。

VxWorks的I/O体系结构使得在一个VxWorks系统中可以有多样的文件系统,甚至其类型也可以不同。

块设备界面在3。

9.4块设备中讨论.1 与MS—DOS兼容的文件系统:dosFs使用dosFs文件系统格式化的磁盘与MS-DOS(直至6.2版本)磁盘是相兼容的。

由两个文件系统初始化的硬盘之间在格式上有细微区别。

然而,数据自身是兼容的,而且dosFs可被配置成使用MS—DOS格式化的磁盘。

DosFs文件系统向不同要求的实时应用程序提供了良好的适应性。

主要特点包括:l 文件和目录分等级排序,允许有效地组织,在一卷上可以创建任意数量的文件。

l 每个文件可以是连续存储或非连续存储的。

非连续存储的文件可使硬盘空间利用率更高,连续存储的文件可以增强系统性能。

l 具有与广泛可用的存储器和可恢复介质的兼容性.应用VxWorks(不使用dosFs文件扩展名)、MS—DOS PCs和其它系统创建的磁盘可以自由的交换.如果分区表被说明,那么硬盘也是兼容的。

l 具有从有dosFs文件系统的本地SCSI设备引导VxWorks的能力。

l 可以使用比通常MS-DOS允许的8个字符的文件名加3个字符的扩展名更长的文件名。

l NFS(网络文件系统)的支持。

1.1磁盘组织MSDOS/ dosFs文件系统提供了一种以灵活方式组织磁盘数据的方法。

它维护指定目录、每个包含文件或其它的目录的等级设置.文件可以被设置其搜索路径;文件扩展时,新的磁盘空间被自动分配。

分配给一个文件的磁盘空间不必一定是连续的,这样可以使磁盘空间浪费最小。

然而,为了提高它的实时性,dosFs文件系统允许连续空间被预先个别地分配给文件,从而使查找操作最块,行为更加确定。

MS-DOS/dosFs文件系统的通常组织结构如图1,其中的多个单元在下面的部分论述。

图1 MS—DOS磁盘组织---——-—-—---—----——-—----------引导扇区扇区0——-—-—-——-—-———-—----—-—-—-——文件分配表(FAT)—--——--—-——————-——-—---—————-根目录—-—-—---———————--—————--文件和子目录—-—-——-—-—---—-———-----—---—簇在MS-DOS/dosFs文件系统中,分配给文件的磁盘空间由一个或多个磁盘簇组成。

一个簇为一组连续的磁盘扇区。

软盘通常由两个扇区组成一簇;固定硬盘由更多的扇区组成一簇。

文件系统可以一次分配的最小的磁盘空间为一簇。

虽然每簇有巨大数量的扇区允许在固定大小的文件分配表( FAT;见文件分配表)中描述一个巨大的磁盘,但是这可能会导致磁盘空间的浪费.引导扇区MS—DOS/dosFs硬盘或磁盘的第一个扇区称为引导扇区。

其中包含有多种配置数据。

其中一些数据域描述硬盘的物理性质(例如总扇区数),另外一些域描述文件系统变量(例如根目录的大小)。

引导扇区信息在初始化时写入磁盘。

dosFs文件系统可以使用在另一个系统上初始化过的磁盘(例如,在MS—DOS PC 上使用FORMA T),或者VxWorks可以使用ioctl()调用中的FIODISKINIT函数初始化磁盘。

随着MS-DOS标准的发展,多样的域被加入到引导扇区的定义中。

VxWorks 下的磁盘初始化使用MS—DOS 5。

0版本定义的引导扇区域。

MS-DOS 初始化硬盘时,在引导扇区中加入一个分区表。

而VxWorks不创建这样一个表.所以两个系统初始化的硬盘是不同的.如果设备的块补偿参数创建程序将超出分区表范围的数据指向数据区的第一个字节,那么VxWorks可以读取被MS—DOS 格式化的磁盘文件。

文件分配表每个MS—DOS/dosFs卷包含一个文件分配表(FAT)。

对每一个分配给文件或目录的磁盘上的簇,FAT中都有一个条目.当簇没有使用过时(可分配),它的条目值为零。

如果簇分配给一个文件,它的条目值是文件下一部分的簇号。

如果簇位于文件的最后,它的条目值是-1。

所以,文件或目录的表述由一个FAT条目链表组成。

如2例所示,一个文件由簇2、300和500组成.簇3是没有使用过。

注意:dosFs不映射坏的磁盘扇区到FAT中图2:FAT条目此主题相关图片如下:FAT的每个条目占12或16位。

最多包含4085簇的磁盘卷用12位条目;多于4085簇的磁盘用16位条目。

条目(特别是12位条目)最初利用英特尔8088体系配置的优点,编码为特殊形式。

然而,因为所有的FAT操作都通过dosFs文件系统执行;所以编码和译码与VxWorks应用程序无关。

一个卷通常包括多个FAT拷贝。

这种冗余允许数据在第一份FAT中发生介质错误事件时得到恢复。

警告:如果是指定配置,dosFs 文件系统维护多个FAT拷贝;然而,在错误事件中,拷贝不是自动使用的.FAT的大小和FAT拷贝的数量是由引导扇区中的域决定的。

对于使用dosFs文件系统初始化的磁盘,这些参数是在dosFsDevInit( )调用(通过设置卷配置结构DOS_VOL_CONFIG中域)期间被指定的。

根目录每个MS-DOS/dosFs卷包含一个根目录。

根目录总是占有紧接着FAT拷贝的一组连续的磁盘扇区.根目录占领的磁盘区域不在FAT中被条目描述.根目录的大小是固定的,它的大小被引导扇区中的一个域指定,作为允许的目录项的最大数值。

对于使用dosFs文件系统初始化的磁盘,这个大小是在dosFsDevInit( )调用(通过设置卷配置结构DOS_VOL_CONFIG中域)期间被指定的。

因为根目录有一个固定的大小,所以目录为满时再向其中加入项将返回一个错误。

子目录除了根目录外,MS-DOS/dosFs卷有时包含一个子目录层。

和根目录一样,子目录也包含文件和其它子目录项;不过,在有些方面它们不同与根目录,而是类似于文件。

l 第一、象文件一样,每个子目录都被另一个目录中的项描述.这样的一个目录项通过在文件属性字节中一个位设置来说明它描述了一个子目录.同时,子目录与根目录不同,它有用户指定名.l 第二、分配给子目录的磁盘空间由FAT条目连接而成的一组磁盘组成。

这意味着子目录可以随着条目的加入而增大,并且子目录不一定要由连续的簇组成.根目录与子目录不同,能由任意数量的扇区组成,并且不必等于簇的整数倍数.l 第三,子目录通常包含两个专用的项。

“."项指向子目录本身,“。

.”项指向子目录的父目录.而根目录不包含这些专用项。

文件在MO—DOS/dosFs文件系统中分配给文件的磁盘空间是由FA T中的条目链在一起的一组簇。

一个文件不一定由连续的簇组成;可以以任意顺序分配磁盘任意位置的不同的簇。

每个文件在其目录中有一个描述项.这个项包含文件名、大小、最后一次修改的时间和日期,还有文件的几个重要属性(只读文件,系统文件,隐藏文件,存档文件)。

这个条目也包含文件的起始簇数;剩下的簇用FAT定位。

卷标一个MS-DOS/dosFs磁盘可以有一个相关的卷标。

卷标在根目录中是一个特殊项。

它不包含文件名和子目录,而是包含一个识别卷的字符串。

这个字符串可以包含最多11个字符。

卷标项是通过在目录项中的一个特殊的文件属性字节的值来识别的.注意虽然卷标条目没有用ls()报告出来。

不过它占了根目录固定数目的条目中的一个。

卷标可以通过使用带有FIOLABELSET函数参数的ioctl()调用加入到dosFs卷。

如果卷标不存在,就在卷的根目录加一个卷标项,否则,改变卷标字符串的值。

这个卷标条目占据一个固定的根目录条目数;当根目录满时增加一个条目将导致一个错误。

当前的卷标字符串可以通过调用带有FIOLABELGET函数参数的ioctl()来获得。

如果没有卷标,这个调用将返回一个错误,并设置errno为S_dosFsLib_NO_LABEL。

在VxWork或MS—DOS5。

0(或更高版本)下初始化的磁盘,其引导扇区也包含卷标字符串。

1。

2 初始化dosFs文件系统注意在任何其它操作能被执行之前,dosFs文件系统库(dosFsLib)必须通过dosFsInit()调用进行初始化.这个程序带有一个参数――可以在同一时间打开的dosFs文件描述符的最大数。

文件描述符的数目是在初始化时被分配,而且应用程序打开一个文件、目录或文件系统设备时,就使用了一个文件描述符。

dosFsInit()程序在I/O系统驱动器表中也为文件系统创建了一个条目(用isoDrvInstall()).这个条目为dosFs文件操作指定条目指针,并且可以用于dosFs文件系统中所有的设备。

分配给dosFs文件系统的驱动器数记录在全局变量dosFsDrvNum 中.DosFsInit()通常在VxWorks系统启动之后被usrRoot()任务调用。

使用这种初始化,在项目工具VxWorks view中选择INCLUDE_DOSFS,在Params属性标记中设置NUM_DOSFS_FILES为想打开文件的最大数。

1。

3 使用dosFs初始化设备dosFs文件系统初始化后,下一步是创建一个或更多的设备.设备通过设备驱动器的设备创建程序(xxDevCreate())来创建。

驱动程序向块设备描述符结构(BLK_DEV)返回一个指针。

BLK_DEV结构描述了设备的物理形式,同时也指定设备驱动程序提供给文件系统的程序。

更多块设备的信息参见3.9.4块设备.设备刚创建之后,块设备没有与其相关联的名字和文件系统。

为了初始化一个块设备用于dosFs文件系统,已经创建好的块设备必须与dosFs相关联,并指派一个名字.这由dosFsDevInit()完成。

它的参数有:用来标识设备的名字、块设备描述符结构和卷配置结构DOS_VOL_CONFIG(见4.2。

相关文档
最新文档