保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

TrueFFS原理及其在CF卡上的实现


择与当前设备匹配的MTD驱动。识别函数中指定了针对当前设备的一些参数以及基本操作函数,并赋给一个叫FLFlash的数据结构。

FLStatus cfMTDIdentify(FLFlash*pVol);

数据结构中的主要参数赋值如下:

pVol->type=CF_ID; /*器件ID号*/

pVol->erasableBlockSize=512;/*可擦除的最小单元是512B*/

pVol->chipSize=0x4000000;/*器件容量为64MB*/

pVol-write=cfWriteRoutine;/*写函数*/

pVol->read=cfReadRoutine;/*读函数*/

pVol->rease=cfEraseRoutine;/*擦函数*/

pVol->map=cfMap;/*将CF卡的一段区域映射到内存空间*/

CF卡的读函数比Flash的读函数繁琐。它和写一样,必须根据一定的算法来读取数据,而Flash只需要直接从地址中读数据。但是,CF卡的擦函数非常简单,直接返回就可以了。因为CF卡可以直接调用写命令写入数据,CF卡本身能够自动完成擦除操作。CfMap函数将CF卡的一段区域映射到存储空间,一般为4KB。因为CF卡的40MB

地址空间并不映射到系统的存储空间中,映射可以加快系统访问CF卡的速度,而Flash的地址空间,所以Flash的MTD驱动中的该函数可以为空。

最后,识别函数必须在MTD驱动表单mtdTable[]中注册:

#ifdef INCLUDE_MTD_CFCARD

cfMTDIdentify,

#endif

并增加函数声明:extern FLStatus cfMTDIdentify (FLFlash vol).

3.3 Socket层

文件sysTffs.c实现了Socket层的功能。sysTffsInit()函数是主函数,调用Socket注册函数cfSocketRegister(),初始化Socket数据结构FLSocket。

LOCAL void cfSocketRegister (void){

FLSocket vol=flSocketOf(noOfDrives);

tffsSocket[noOfDrives]=“F”/*Socket名称*/

vol.window.baseAddress=CF_BASE_ADRS>>12;/*窗口的基地址*/

vol.cardDetected=cfCardDetected;/*检测CF卡是否存在的函数*/

vol.VccOn=cfVccOn;/*CF卡上电函数*/

vol.VccOff=cfVccOff;/*CF卡继电函数*/

vol.initSocket=cfInifSocket;/*CF卡初始化函数*/

vol.setMappingContext=cfSetMappingContext;/*CF卡映射函数*/

vol.getAndClearCardChangeIndicator=cfGetAndClearCard ChangeIndicator;/*设置改变函数*/

vol.writeProtected=cfW

《TrueFFS原理及其在CF卡上的实现(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/149659.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。