这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » NandFlash 求教:关于NandFlash文件系统读写问题

共2条 1/1 1 跳转至

NandFlash 求教:关于NandFlash文件系统读写问题

院士
2006-09-17 18:14:16     打赏
NandFlash 求教:关于NandFlash文件系统读写问题



关键词: NandFlash     求教     关于     文件     系统     读写         

院士
2006-12-22 22:43:00     打赏
2楼
问 我遇到了一个奇怪的问题,怎么也找不到问题出在哪里?
我的开发板CPU 是S3C44B0,操作系统是Uc/OS-II,NandFlash 用的是K982808。我移植了周立功的文件系统。在主任务中对NandFlash进行格式化然后在FLASH 盘里创建一个文本文件,并往文件里写入一些东西。再运行U盘程序,发现东西已经写到FLASH盘里,没有问题。但是如果我复位开发板或者断电后再通电,再进入U盘看就发现我先前创建的文本文件还在,但内容已经被清空了,好像文件内容被清空跟格式化有一定关系,也就是说紧随格式化后写入的东西在复位目标板以后就会被清空,(但文件的大小不变),如果格式化FLASH盘和写文件分两次运行的话,写入的东西在复位后不会被清空。
哪位大侠知道问题所在,望不吝赐教! 1: 文件没有写入可能是文件在缓冲里面没有写到NF上。 2: RE:zhiwei不是呀!我进入U盘,发现文件已经在U盘里了,都有内容的,应该是写进NF了呀,但是一复位就被清空了,清空后的文件SIZE不变的.如果再次写入,再次复位,就不会被清空了. 3: 你用的是什么文件系统如果是FAT文件系统的话文件信息记录在目录项里面,文件链表在FAT区,文件数据在数据区。写文件的时候好像是先写文件记录目录项,再写数据,写一簇更新一下FAT。由于文件数据一般都比较大,而且写得慢,所以需要设置缓冲区,缓冲区在RAM里面,如果数据没有来得及存进NF就会出现数据丢失的情况。
以上是我做U盘时对Windows写文件的理解以及我自己编写的固件的操作方法,没有了解uCOSII是怎么搞的。也不知道它用什么样的文件系统所以,,, 4: RE zhiwei我用的是FAT12,本来我是用FAT16格式化U盘的,但是后来用串口输出簇数,发现还是FAT12格式,后来就用的FAT12。跟uCOSII没有关系,因为我在BootLoader里实现U盘,创建文件并写入东西,复位后结果是一样的。
您说的数据存在内存缓冲区的问题没错,我移植文件系统的过程中发现过缓冲区操作问题,只有在所有文件都关闭或者缓存里所有项都被写过东西(没有空闲缓存)的时候才会把缓存里的东西写入NF。但是我用别人做过的格式化函数进行格式化,就没有出现我的问题,但我总觉得别人那个格式化函数有些问题。我会继续做试验,看问题最终出在哪里?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]