新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于M25P32 SPI Flash的TFFS设计与实现

基于M25P32 SPI Flash的TFFS设计与实现

作者:时间:2010-06-17来源:网络收藏


在函数formatVolume中,mount可进行卷操作,当内存的数据结构准备好后,FTL层即可调用函数flDosFormat来创建DOS。其中首先创建隐藏扇区,以用于记录该卷的部分信息,然后分别创建MBR、FAT和ROOT目录;这样,DOS创建完成后,再执行dosFsDevCreat函数,当然就无须格式化,找到0扇区自然就找到了MBR,因为DOS是FTL创建的。

从更深层次讲,FTL层之所以创建DOS层,是因为只有FTL层才知道有哪些扇区是可以供DOS使用的,哪些扇区是DOS不能使用的(作为FTL层管理使用),也正是因为DOS层不了解FTL层的运作情况,所有的扇区映射关系都被FTL层隐蔽,因而导致DOS层无法在上层作出有利于擦写等优化动作,如大文件写入时的字节数更新,FAT表更新等操作,都会严重浪费FTL层的映射关系运算。

4 基于 设计

对于的实现,涉及到config.h、sysTffs.c、tffsConifg.c、tffsMtd.c、Makefile几个文件的配置和修改,其中编译是通过建立一个downloadalbe的tomado工程,来把这几个.c源文件编译进去生成.pl文件提供给bsp工程,而后由bsp工程把.pl文件编译进去,从而生成bootable image。

4.1 Config.h的相关配置

要在vxworks映像中加入文件系统,需要加入相关的组件,虽然也可以在该文件中直接加入相应的配置宏,但很容易造成遗漏和有些需要依赖的宏没有定义或者冲突,本文采用的方法是建一个bootable的tornado工程,而后在这个工程中通过加入TFFS和DOSFS的相关组件来编译这个工程,从而生成一个prjParams.h文件,该文件里就包含了刚刚加入的组件对应的宏,因而,组件与组件之间依赖也是安全的,不会有任何冲突,最后再在Config.h中包含这个文件即可。

4.2 sysTffs.c文件的修改

该文件用于提供socket层的bsp实现代码。如果镜像文件包含TFFS相关组件,那么,系统启动时就会按照如下过程自动调用sysTffsInit()函数:

usrRoot()→tffsDrv()→flInit()→flRegisterComponent ()→sysTffslnit ()

sysTffsInit ()函数会依次调用socket注册函数simmRegisterOfsl (),注册函数数量视需要构建的文件系统数量而定,本文构建了1个文件系统ofsl,并在simmRegisterOfsl()函数中对文件系统的基地址进行了设置,同时对FLSocket()结构体中的毁掉处理函数进行了挂接,挂接函数也在该文件中实现,如卡上电、断电、写保护等。

对sysTffsFormaOfsl()函数的格式化参数可根据自己的需要进行修改。

4.3 tffsConfig.c和tffSMtd.c文件的修改

tffsConfig.c文件的修改就是在mtdTalbe []表中注册识别函数iUnifiedIdentifyOfsl();而tffsConfig.c文件则用于实现iUnifiedldentifyOfsl()函数,iUnifiedIdentifyOfsl()函数对FLFlash结构体中的回调函数进行了挂接,如flash的读、写、擦除等,挂接函数的具体实现可在Dry_MvSFlash.cpp文件中以一个类的方式提供针对 spi Flash操作的所有驱动接口。

4.4 TFFS文件系统的安装

通过上面的过程,socket层和mtd层就都准备好了,下面便可以安装tffs文件系统。安装时,首先用sysTffsFormatOfsl()函数按照上面设定的参数格式化TFFS文件系统,而后通过usrTffsConfig(0,0,”ofsl”)函数接口在已建好的TFFS上挂接DOS文件系统,成功后,即可通过open、read、write等来操作Flash上的文件系统,也可以通过FTP方式用IE访问该文件系统中的内容。

4.5 Makefile文件的修改

对于Makefile的修改非常简单,因为几个和TFFS相关的源文件都是以.pl的方式被链人bsp工程的,所以只需要在makefile文件中把这个文件加入即可,即在makefile中加了如下的宏定义:

MACH_EXTRA+=../ArmPri/ARMARCH5gnu/ArmBspPrj.pl

5 结束语

本文对VxWorks下TFFS文件系统的层次结构和FTL层的启动过程、块映射算法、垃圾回收算法以及用FTL创建DOSFS进行了分析,给出了在 Flash上创建TFFS文件系统和将TFFS挂在DOSFS的实现方法。通过对TFFS核心层FIL的分析给出的TFFS实现方法,可以从更基础的层面来认识VxWorks中的TFFS文件系统,从而给TFFS文件系统的问题定位和实现带来新的方法。

上一页 1 2 3 下一页

关键词: M25P32 Flash TFFS SPI

评论


相关推荐

技术专区

关闭