我已经编写了一个代码,可以从flash Nand(不带文件系统)读取数据。

fd = open("/dev/mtd0", O_RDONLY)

它起作用了,然后我想试着读写它。。
所以我把代码改成:
fd = open("/dev/mtd0", O_RDWR)

但它返回-1,表示无法打开。但对于其他MTD,它是有效的。
然后我看到cat /proc/mtd说MTD0是RO另一个是RW(我认为它是只读和读写的)
我试图使用MEMUNLOCK
ioctl(fd, MEMUNLOCK, &mtdLockInfo)

因为它需要fd,所以我使用open而不是O_RDONLY(returnO_RDWR)。
但它返回错误-1。一定是因为Bad file description,必须使用O_RDONLYO_WRONLY
有没有办法解锁这个MTD0,或者不解锁就在上面写??

最佳答案

该操作可能被设备的内核驱动程序禁止。很可能您的设备实际上是只读的,或者被驱动程序标记为只读的。

关于c - 只读闪存NAND MTD0上的C错误打开O_RDWR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10747841/

10-13 22:18