问题解决!
我考虑的太多了,nand属于块设备,它之上的接口是文件系统, 因此直接操作文件就可以了. 不必理会底层nand 驱动.
而led属于字符设备,所以会有些区别。
操作nand的时候按文件操作即可,open,write,read。需要注意的是最好对nand多分一个区,用于数据存储。
参考代码:
void main()
{
int fd;
unsigned char databuf[512];
int i;
for(i=0;i<512;i++)
databuf=i;
open("/dev/mtdblock/3",O_RDWR); /*我把nand多分了一个区mtdblock3,用于数据存储*/
write(fd,(unsigned char *)databuf,512); /*因该是从分区的第一个字节开始存储,怎么设置存储地址?还不清楚*/
for(i=0;i<1000;i++) /*读写之间要有一定间隔,否则会出错*/
for(i=0;i<512;i++)
databuf=0;
read(fd,(unsigned char *)databuf,512);
}