共2条
1/1 1 跳转至页
NandFlash 求教:关于NandFlash文件系统读写问题

问
我遇到了一个奇怪的问题,怎么也找不到问题出在哪里?
我的开发板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。但是我用别人做过的格式化函数进行格式化,就没有出现我的问题,但我总觉得别人那个格式化函数有些问题。我会继续做试验,看问题最终出在哪里?
我的开发板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 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 |