Tornado提供了几种FLASH的TrueFFS MTD层驱动的参考设计。在installDir\target\src\drv\tffs中,主要包括Intel,AMD等公司的几种FLASH的 TrueFFS MTD层驱动。虽然没有需要的K9F2G08驱动程序,但可以根据其结构来设计自己的MTD程序。具体做法是在BSP目录下建立一个MTD层驱动文件,将其取名为K9F2G08Mtd.C。在该文件中首先编写函数nandMTDIdentify(),如下所示为程序片段:
完成上述代码后,剩下的工作就是完成在函数nandMTDIdentify()中引用的readFlashID(),nand-MTDRead()。 nandMTDWrite(),nandMTDErase(),nandMTDMap()这几个函数的代码编写。由于不同的FLASH芯片,时序不同,因此这几个函数的实现也不同。必须根据芯片K9F2G08的数据手册上时序的要求,对PPC440epx的相应寄存器进行读/写操作,以完成这些功能。由于篇幅原因,这几个函数的具体代码就不再赘述。建议在Boot Loader工作正常后,先在应用程序中对这些函数进行调试。这样就可以利用单步和断点等工具进行调试,并且在修改后可立即通过网络下载程序。
4.4 TrueFFS的配置
在完成上述代码的编写后,还要做如下工作:在配置文件config.h中增加定义INCLUDE_TFFS和IN-CLUDE_DOSFS,使得 TrueFFS组件和DOS文件系统被包含进来。并且要在MakeFile文件MACH_EXTRA一项中添加K9F2G08Mtd.o,这样可将 TureFFS文件驱动程序加入系统。另外,还要在tffsConfig.c文件中的mtdTable[]表中添加上述的函数nandMTDI- dentify。
5 结 语
在此介绍如何在由AMCC公司的CPU芯片PPC440epx、三星公司的NAND FLASH构成的硬件平台上和VxWorks软件平台上,实现TrueFFS。按照上述设计流程,实现了NAND FLASH的驱动程序设计。能够对K9F2G08进行正常的读、写、擦、ID识别、映射等操作。同时,在VxWorks操作系统上,实现了 TrueFFS。这样就提高FLASH使用寿命,确保数据完整,优化了FLAsH的性能。以此为基础的系统在某机载设备上得到成功运用。