NAND flash 跟EMMC flash 数据写入有什么区别
时间:10-02
整理:3721RD
点击:
#define DEV "/dev/block/mmcblk9"
int main(int argc, char *args[])
{
//int fdr = open(DEV, O_RDONLY);
int fdr = open(DEV, O_RDWR);
if(fdr == -1)
{
perror("open dev");
return -1;
}
//int fdw = open("image", O_WRONLY | O_CREAT);
int fdw;
if(argc==1)
{
fdw = open("logobin", O_RDONLY);
}
else
{
fdw = open("logobinsam", O_RDONLY);
}
if(fdw == -1)
{
perror("open file");
return -2;
}
char buf[0X300002] = {};
//int cnt = read(fdr, buf, 0x300000);
int cnt = read(fdw, buf, 0x300000);
if(cnt < 0)
{
perror("read");
return -3;
}
if(write(fdr, buf, cnt) < 0)
{
perror("write");
return -4;
}
close(fdr);
close(fdw);
return 0;
}
用上面的代码 往flash里面写数据, EMMC写入是正常的, 但是nand flash写入有问题 ,写入的数据跟 实际的数据有很大区别,并且每次写入同样的数据,都会有不同的效果,求大神指导。
int main(int argc, char *args[])
{
//int fdr = open(DEV, O_RDONLY);
int fdr = open(DEV, O_RDWR);
if(fdr == -1)
{
perror("open dev");
return -1;
}
//int fdw = open("image", O_WRONLY | O_CREAT);
int fdw;
if(argc==1)
{
fdw = open("logobin", O_RDONLY);
}
else
{
fdw = open("logobinsam", O_RDONLY);
}
if(fdw == -1)
{
perror("open file");
return -2;
}
char buf[0X300002] = {};
//int cnt = read(fdr, buf, 0x300000);
int cnt = read(fdw, buf, 0x300000);
if(cnt < 0)
{
perror("read");
return -3;
}
if(write(fdr, buf, cnt) < 0)
{
perror("write");
return -4;
}
close(fdr);
close(fdw);
return 0;
}
用上面的代码 往flash里面写数据, EMMC写入是正常的, 但是nand flash写入有问题 ,写入的数据跟 实际的数据有很大区别,并且每次写入同样的数据,都会有不同的效果,求大神指导。
求指导、、、
有木有人知道的?