1VxWorks系统的启动流程
嵌入式VxWorks操作系统的启动包括两个阶段,一是BootRom引导,二是VxWorks操作系统映像的启动。BootRom映像也叫做启动映像,它主要是初始化串口、网口等很少的硬件系统来下载VxWorks映像。VxWorks映像包含完整的VxWorks OS,是真正在目标板上运行的操作系统。它启动后会重新初始化几乎所有的硬件系统,这样操作系统才可以在目标板上正常运行。两种映像的区别如表 1所示。
VxWorks内核有多种启动流程。本文基于的声呐原型机采用了最常见的一种启动方法,将BootRom映像存放在Flash中,负责初始化一些简单的硬件如网口、串口等,然后下载VxWorks映像到RAM中并将控制权交由操作系统开始执行。VxWorks映像存放在干端主机上,通过网络加载到目标机中,启动时还需要打开FTP进行配置。图 1所示为基于网络加载的VxWorks启动方式。此种启动方法比较繁琐,而且需要网络的支持,启动速度也比较慢。
产品定型之后,BootRom映像和VxWorks映像不再需要进行修改,本文建立基于Flash的文件系统,将VxWorks映像拷贝到文件系统中,通过Flash文件系统加载VxWorks映像,不需要网络和FTP软件的支持,提高了启动速度。基于Flash文件系统的加载的VxWorks启动方式如图 2所示。
2 Flash文件系统
2.1 文件系统比较与选择
文件系统的选择与存储设备的物理特性和系统的要求密切相关。I/O系统、文件系统和块设备之间的联系如图 3所示。
dosFs文件系统是一种与MS_DOS文件系统相兼容的文件系统,具有能够满足实时应用的多种要求;支持可扩展的目录结构;支持使用连续文件;支持存储盘缓存,提高数据读写效率的特点。
TrueFFS(简称TFFS)旨在提高闪存的使用效率。它具有线程安全、可重入的特点,忽略了底层存储介质的不同,使得用户可以像操作磁质设备一样操作存储介质。通过wear-leveling技术、磨损均衡及碎片回收等机制平衡所有存储单元的使用频率,以此来达到延长存储介质使用寿命的目的。但是TrueFFS不能单独使用,需要DOS文件系统的支持。
因此本文选择在嵌入式VxWorks操作系统下基于Flash建立TFFS系统,在TFFS上挂载dosFs文件系统来进行I/O操作。如此一来,对Flash设备中文件和数据的读取就像对磁盘操作一样,方便快捷。
2.2 TrueFFS系统分析
VxWorks下的TFFS位于dosFs文件系统和底层硬件之间,由一个核心层和翻译层、MTD层、Socket层三个功能层组成。要在VxWorks下包含TFFS系统,每一层至少有一个软件模块与之对应。图4为TFFS结构图。
核心层(Core Layer)的主要作用是将其它三层有机结合起来,同时还控制着碎片回收、定时器和其他一些系统资源。翻译层(Translation Layer)是TrueFFS系统的核心,主要实现TrueFFS和DOS文件系统(dosFs)之间的高级交互功能。MTD(Memory Technology Drivers)层针对具体Flash存储器件,提供读、写、擦除、ID识别、映射等基本操作。Socket层(Socket Layer),又称套接层,提供TrueFFS和硬件系统之间的接口,用来向系统注册socket设备、检测设备插拔、硬件写保护等。