您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

嵌入式操作系统VxWorks中TFFS文件系统的构建

时间:2007-1-20栏目:电子通信论文

主要是实现对具体的flash进行读、写、擦、ID识别等驱动,并设置与flash密切相关的一些参数。TrueFFS已经包含了支持Intel,AMD以及samsung部分flash芯片的MTD层驱动。新的芯片需要新的MTD支持,你可以使用一个标准的接口来加入这些驱动。
  
  以上四部分,我们通常要的工作就是后两层。
  
  当在VxWorks下配置TrueFFS时,你必须为每一层至少包含一个软件模块。后面我们将详细讨论。
  
  二、MX29LV160BT芯片上建立TrueFFS文件系统
  
  1、配置相关文件
  
  在此,我以NorFlashMX29LV160BT为例,开发工具为Tornado2.2forPPC。要在VxWorks映像中包含TrueFFS文件系统,首先必须在config.h文件中定义INCLUDE_TFFS。这使得VxWorks的初始化代码调用tffsDrv()来创建管理TrueFFS所需的结构和全局变量,并为所有挂接了的flash设备注册socket组件驱动。在链接的时候,通过解析与tffsDrv()相关联的符号(symbols)可以将TrueFFS所必需的软件模块链接到VxWorks映象中。
  
  为了支持TrueFFS,每一个BSP目录下都必须包含一个sysTffs.c文件。它将TrueFFS所有的层(翻译层,socket层和MTD层)链接到一起并和VxWorks绑定。因此,我必须编辑这个文件并决定哪一种MTD和翻译层模块应该包含到TrueFFS中。即:
  
  #defineINCLUDE_MTD_MX29LV/*MX29LV160BTMTDdriver*/
  #defineINCLUDE_TL_FTL/*FTLtranslationlayer*/
  #defineFLASH_BASE_ADRS0x2a10000/*Flashmemorybaseaddr
  
  
  
  ess*/
  #undefFLASH_SIZE
  #defineFLASH_SIZE0x001f0000/*Flashmemorysize,2M(parameterblock)*/
  
  其他无关的MTDdriver包含头都#undef掉,同时定义Flash在系统中的基地址和大小。另外,还必须编辑sysLib.c中的sysPhysMemDesc[]数组,将Flash基地址和大小加入到MMU中,以供将来访问Flash,否则访问Flash会失败。如果BSP目录下没有sysTffs.c文件,那么我们可以从其他BSP目录下拷贝一个即可,然后做上述修改,其他的内容基本可以不用修改。
  
  接下来需要修改tffsConfig.c文件,为了方便管理,通常我们将src/drv/tffs/目录下该文件拷贝到我们BSP目录下,然后再做出修改。在MTDidentifyRoutinemtdTable[]表中加入如下语句:
  
  #ifdefINCLUDE_MTD_MX29LV
  mx29lvMTDIdentify,
  #endif/*INCLUDE_MTD_MX29LV*/
  并在该文件开头声明。
  #ifdef

上一页  [1] [2] [3] [4] [5] 下一页

下页更精彩:1 2 3 4 下一页