读书人

关于应用程序直接读写Flash的有关问题

发布时间: 2012-08-01 17:53:40 作者: rapoo

关于应用程序直接读写Flash的问题
RT,我用如下方式读写flash的:

C/C++ code
    //打开设备    if((fd = open(FALSH_DEVICE,O_RDWR)) == -1)    {        perror("open Flash");        exit(1);    }


C/C++ code
    //填充MTD设备容量结构体    if(ioctl(fd,MEMGETINFO,&meminfo) != 0)    {        perror("MEMGETINFO");        close(fd);        exit(1);    }


C/C++ code
//writebyte_write = pwrite(fd,writeBuf,WEITE_BUFFER_SIZE,0);//readbyte_read = pread(fd,readBuf,READ_BUFFER_SIZE,0);


我现在想问的就是在写之前和写之后,每个page的OOB相同么?我在写之前读取OOB,在写之后再按原样写进去??
请教高手??

[解决办法]
1. 每个page的OOB相同,不同的page size, 有不同的OOB size.
2. 写OOB的方法,建议参考nandwrite.c

参考我的blog: http://blog.csdn.net/wenxy1/archive/2010/04/13/5481616.aspx

[解决办法]
不会, 坏块的标准是 :
当该块不能被擦除时, 才会标记为坏块,跟 oob 信息关系不大。
在每个块的第一个page的 oob 信息中标记坏块,
但是如果你自己去写oob 信息,刚好又写到了第一个page的oob 信息,那就。。。。

读书人网 >UNIXLINUX

热点推荐