位置:51电子网 » 技术资料 » 通信网络

实时操作系统VxWorks下电子盘驱动程序的开发

发布时间:2008/9/4 0:00:00 访问次数:525

  在某些特定的工业应用领域,普通的操作系统并不适用,需要采用实时操作系统。

  目前,已有许多实时操作系统如:vxworks、psos、qnx、hard-linux、wince等等,其中美国wind river system 公司的vxworks是公认的性能最出色的一种实时操作系统。这是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它的软件开发平台是tornado。

  本文以vxworks操作系统为平台,以m-system公司的doc2000(144m)为例,说明在vxworks下如何驱动并使用电子盘设备。

  1 系统结构

  doc 系列的电子盘采用的都是trueffs(true flash file system)。trueffs for tornado ii是tornado ii开发环境中的一个集成的快速闪存文件系统,它是使用一系列的嵌入式闪存设备来实现快速可靠的物理存储的。通过vxworks的trueffs仿真dos文件系统下的硬盘驱动器,开发者可以使用标准的文件系统接口来产生和操作一个文件系统。这样,在闪存设备上进行读写操作就与在dos文件系统设备上是一样的了。因此,对于电子盘驱动的介绍就需要分为上层操作系统的文件系统和底层的驱动器物理结构实现两部分。

  1.1 vxworks中的文件系统

  vxworks是一种功能强大而且比较复杂的嵌入式操作系统,包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。vxworks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。

  vxworks提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如磁盘)的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵活地在设备驱动程序上移植。vxworks也支持scsi磁带设备的本地文件系统。vxworks支持四种文件系统:dosfs、rt11fs、rawfs、tapefs。

  vxworks的i/o系统将普通数据文件、外部设备都统一作为文件处理。它们在用户面前有相同的语法定义,使用相同的保护机制。这样既简化了系统设计又便于用户使用。vxworks i/o 体系结构甚至还支持在一个单独的vxworks系统上同时并存几个不同的文件系统。vxworks提供了一个快速灵活的与ansi c 兼容的i/o 系统,包括:unix 标准的缓冲i/o、posix 标准的异步i/o。vxworks包括以下驱动程序:网络驱动、管道驱动、ram 盘驱动、scsi驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动。

  vxworks的所有机制和功能都是基于“c子程序”这种简单结构的,即:vxworks的所有功能都是由c程序库提供的。任何c程序都能够从tornado的命令和调试环境中交互式地调用;任何c程序都能够作为vxworks的一个任务从tornado主机工具或者应用程序中产生,而且c程序能够与中断、看门狗定时器或辅助定时器相连。vxworks的这种统一性使tornado成为一种有效的开发系统。因为用户不必再编写特殊的代码来与系统陷阱接口,也不需要进行特殊的处理来建立一个任务,更不需要编写特殊的用户接口程序或交互式的测试程序来测试新代码,用户只要编写子程序就能够完成所有这些工作。

  vxworks的特性为编写应用程序和设备驱动程序提供了极大的便利。在vxworks下,设备驱动程序既可以嵌入内核随系统一起启动,也可以作为可加载模块在系统启动之后运行,无论采用哪一种方式编写驱动程序,需要注意的一点就是:其使用不能依赖于还没有启动的功能模块(例如c库函数)或者未激活的设备。

  1.2 电子盘

  电子盘的内部存储介质flash是近年来发展最快的一种存储芯片,它具有eeprom可擦写的特点,又同时具有eprom 廉价的特点,它是一种高性能、低功耗、电可擦除的存储器件。电子盘由于上述特点,现已经广泛应用于信息存储、机顶盒、瘦客户机、瘦主机、网络计算机、以及嵌入式计算机等很多系统。

  trueffs是m-system 公司开发出来的可用于电子盘设备的专利技术。trueffs的基本功能就是磁盘仿真。它提供像doc一样的块设备的接口,从而方便了操作系统对电子盘设备的逻辑区的读写。通过trueffs可以对电子盘进行读写、分区、格式化等一系列操作。通过对操作系统的l/o控制的调用,就可以访问trueffs的外部接口。电子盘设备的i/o控制并不局限于某一特定操作系统,所以可以兼容多种操作系统。通常,在操作系统下驱动电子盘有以下两步:

  ①调用操作系统的getdriverhandle()函数得到驱动器的句柄。它的返回值是一个能够供i/o控制函数调用的trueffs驱动的描述符。这一步依赖于操作系统的文件系统。

  ②调用操作系统中文件系统的iocontrol()函数。它将使trueffs具有其它文件系统的特性:

  1)文件系统状态。它的值可以指示操作指令是否成功的传递给了驱动器或者驱动器对于操作指令有无响应,但它并不能确认操作的结果或状态。一个操作的结果或状态是由输入输出控制包(io package)来传递的。它们使用的是trueffs的标准状态码,这些状态码可以在io控制的头文件以及一些驱动包文件

  在某些特定的工业应用领域,普通的操作系统并不适用,需要采用实时操作系统。

  目前,已有许多实时操作系统如:vxworks、psos、qnx、hard-linux、wince等等,其中美国wind river system 公司的vxworks是公认的性能最出色的一种实时操作系统。这是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它的软件开发平台是tornado。

  本文以vxworks操作系统为平台,以m-system公司的doc2000(144m)为例,说明在vxworks下如何驱动并使用电子盘设备。

  1 系统结构

  doc 系列的电子盘采用的都是trueffs(true flash file system)。trueffs for tornado ii是tornado ii开发环境中的一个集成的快速闪存文件系统,它是使用一系列的嵌入式闪存设备来实现快速可靠的物理存储的。通过vxworks的trueffs仿真dos文件系统下的硬盘驱动器,开发者可以使用标准的文件系统接口来产生和操作一个文件系统。这样,在闪存设备上进行读写操作就与在dos文件系统设备上是一样的了。因此,对于电子盘驱动的介绍就需要分为上层操作系统的文件系统和底层的驱动器物理结构实现两部分。

  1.1 vxworks中的文件系统

  vxworks是一种功能强大而且比较复杂的嵌入式操作系统,包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。vxworks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。

  vxworks提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如磁盘)的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵活地在设备驱动程序上移植。vxworks也支持scsi磁带设备的本地文件系统。vxworks支持四种文件系统:dosfs、rt11fs、rawfs、tapefs。

  vxworks的i/o系统将普通数据文件、外部设备都统一作为文件处理。它们在用户面前有相同的语法定义,使用相同的保护机制。这样既简化了系统设计又便于用户使用。vxworks i/o 体系结构甚至还支持在一个单独的vxworks系统上同时并存几个不同的文件系统。vxworks提供了一个快速灵活的与ansi c 兼容的i/o 系统,包括:unix 标准的缓冲i/o、posix 标准的异步i/o。vxworks包括以下驱动程序:网络驱动、管道驱动、ram 盘驱动、scsi驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动。

  vxworks的所有机制和功能都是基于“c子程序”这种简单结构的,即:vxworks的所有功能都是由c程序库提供的。任何c程序都能够从tornado的命令和调试环境中交互式地调用;任何c程序都能够作为vxworks的一个任务从tornado主机工具或者应用程序中产生,而且c程序能够与中断、看门狗定时器或辅助定时器相连。vxworks的这种统一性使tornado成为一种有效的开发系统。因为用户不必再编写特殊的代码来与系统陷阱接口,也不需要进行特殊的处理来建立一个任务,更不需要编写特殊的用户接口程序或交互式的测试程序来测试新代码,用户只要编写子程序就能够完成所有这些工作。

  vxworks的特性为编写应用程序和设备驱动程序提供了极大的便利。在vxworks下,设备驱动程序既可以嵌入内核随系统一起启动,也可以作为可加载模块在系统启动之后运行,无论采用哪一种方式编写驱动程序,需要注意的一点就是:其使用不能依赖于还没有启动的功能模块(例如c库函数)或者未激活的设备。

  1.2 电子盘

  电子盘的内部存储介质flash是近年来发展最快的一种存储芯片,它具有eeprom可擦写的特点,又同时具有eprom 廉价的特点,它是一种高性能、低功耗、电可擦除的存储器件。电子盘由于上述特点,现已经广泛应用于信息存储、机顶盒、瘦客户机、瘦主机、网络计算机、以及嵌入式计算机等很多系统。

  trueffs是m-system 公司开发出来的可用于电子盘设备的专利技术。trueffs的基本功能就是磁盘仿真。它提供像doc一样的块设备的接口,从而方便了操作系统对电子盘设备的逻辑区的读写。通过trueffs可以对电子盘进行读写、分区、格式化等一系列操作。通过对操作系统的l/o控制的调用,就可以访问trueffs的外部接口。电子盘设备的i/o控制并不局限于某一特定操作系统,所以可以兼容多种操作系统。通常,在操作系统下驱动电子盘有以下两步:

  ①调用操作系统的getdriverhandle()函数得到驱动器的句柄。它的返回值是一个能够供i/o控制函数调用的trueffs驱动的描述符。这一步依赖于操作系统的文件系统。

  ②调用操作系统中文件系统的iocontrol()函数。它将使trueffs具有其它文件系统的特性:

  1)文件系统状态。它的值可以指示操作指令是否成功的传递给了驱动器或者驱动器对于操作指令有无响应,但它并不能确认操作的结果或状态。一个操作的结果或状态是由输入输出控制包(io package)来传递的。它们使用的是trueffs的标准状态码,这些状态码可以在io控制的头文件以及一些驱动包文件

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!