我已经编写了一个代码,可以从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_RDONLY
或O_WRONLY
。有没有办法解锁这个MTD0,或者不解锁就在上面写??
最佳答案
该操作可能被设备的内核驱动程序禁止。很可能您的设备实际上是只读的,或者被驱动程序标记为只读的。
关于c - 只读闪存NAND MTD0上的C错误打开O_RDWR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10747841/