首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C错误在只读闪存NAND MTD0上打开O_RDWR

C错误在只读闪存NAND MTD0上打开O_RDWR
EN

Stack Overflow用户
提问于 2012-05-25 10:45:50
回答 2查看 1.1K关注 0票数 1

我已经编写了一个从闪存Nand (没有文件系统)读取数据的代码。

代码语言:javascript
复制
fd = open("/dev/mtd0", O_RDONLY)

它工作了,然后我想试着读写它..因此,我将代码更改为:

代码语言:javascript
复制
fd = open("/dev/mtd0", O_RDWR)

但它返回-1,表示无法打开。但对于其他MTD来说,它是有效的。

然后我看到cat /proc/mtd说MTD0是RO,另一个是RW (我认为它是只读和读写的)

我试着用MEMUNLOCK

代码语言:javascript
复制
ioctl(fd, MEMUNLOCK, &mtdLockInfo)

因为它需要fd,需要open,所以我使用O_RDONLY而不是O_RDWR(返回-1)。

但它返回错误Bad file description。一定是因为O_RDONLY,所以不得不用O_WRONLY或者O_RDWR

有没有办法解锁这个MTD0,或者不用解锁就在上面写东西??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-11 12:22:23

我已尝试在设备树源(DTS)中更改NAND闪存的分区。

有一个只读选项。但是,我只改变了它们的大小。

ANd完成了..可以访问我的NAND闪存。

票数 1
EN

Stack Overflow用户

发布于 2012-05-25 11:26:08

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10747841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档