日期:2014-05-16  浏览次数:20633 次

求助:如何访问nandflash分区?
我在开发板上用了一个8G的nandflash,对其进行如下分区:
dev: size erasesize name
mtd0: 00020000 00020000 "u-boot env"
mtd1: 00020000 00020000 "UBL"
mtd2: 00080000 00020000 "u-boot"
mtd3: 00400000 00020000 "kernel"
mtd4: 04000000 00020000 "filesystem"
mtd5: 3ba00000 00020000 "user place"
第6部分用于存储自己的数据,当我以设备文件的形式打开/dev/mtdblock5时,可以进行read/write操作。但我想把它挂载,以文件夹的形式反映出来,以便我能够写入文件,而不需要自己搞个文件管理系统来管理存入的文件。
target ~# mount -t jffs2 /dev/mtdblock5 /mnt/UsrData/
target~# cd /mnt/UsrData/
target:/mnt/UsrData# ls
tmp
target:/var/volatile/tmp# cd /usr
target:/usr# ./ubuffered_WR 
target:/usr# cd /mnt/UsrData/tmp/
target:/var/volatile/tmp# ls
DataFile
target:/var/volatile/tmp# cd DataFile/
target:/var/volatile/tmp/DataFile# ls
file1
target:/var/volatile/tmp/DataFile# cat file1
happy
target:/var/volatile/tmp/DataFile#
把/dev/mtdblock5挂载到/mnt/UsrData下,然后采用非缓冲IO操作函数,创建一个目录DataFile,并在此目录下创建一个文件file1,写入“happy\n”,从运行结果看,基本完成了我想要的结果。
问题来了:当我重新启动后,重新mount就发现/dev/mtdblock5中并没有任何数据,我看有的帖子上说umount后数据可保存下来,我也尝试了,还是没有存下来。
请教:我该怎么做?弄了2-3天了,没一点结果呢。谢谢!!


------解决方案--------------------
这么操做没有问题

只是我看你怎么都在/var/volatile/tmp/DataFile 下有文件
/mnt/UsrData/ 却什么都没干啊

------解决方案--------------------
在nand上操作,最好在结束时sync一下