当前位置: 技术问答>linux和unix
如何访问 nand flash 分区
来源: 互联网 发布时间:2016-08-11
本文导语: 我用提优龙 2440 中 NAND Flash 总共 64M,系统只用了前 32M, 我希望把后面 32M 利用来存储我自己的数据, 系统是 2.6.30.4,在 common-S3C2440.c 中的 uc_default_nand_part 数组加上一项: [3] = { .name = "cfg", .offset = 0...
我用提优龙 2440 中 NAND Flash 总共 64M,系统只用了前 32M,
我希望把后面 32M 利用来存储我自己的数据,
系统是 2.6.30.4,在 common-S3C2440.c 中的 uc_default_nand_part 数组加上一项:
[3] = {
.name = "cfg",
.offset = 0x02000000,
.size = 0x01000000,
}
启动后,增加了一个分区 /dev/mtdblock3;
但这个 mtdblock3 如何加载成一个可以访问的磁盘分区呢?
以下是几次失败的尝试:
=============================================================================
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg -t ext2
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument
[root@(none) /]# mkfs.minix /dev/mtdblock3
5472 inodes
16384 blocks
Firstdatazone=176 (176)
Zonesize=1024
Maxsize=268966912
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg -t minix
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: No such device
=============================================================================
请问我应该怎么做?
谢谢。
我希望把后面 32M 利用来存储我自己的数据,
系统是 2.6.30.4,在 common-S3C2440.c 中的 uc_default_nand_part 数组加上一项:
[3] = {
.name = "cfg",
.offset = 0x02000000,
.size = 0x01000000,
}
启动后,增加了一个分区 /dev/mtdblock3;
但这个 mtdblock3 如何加载成一个可以访问的磁盘分区呢?
以下是几次失败的尝试:
=============================================================================
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg -t ext2
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument
[root@(none) /]# mkfs.minix /dev/mtdblock3
5472 inodes
16384 blocks
Firstdatazone=176 (176)
Zonesize=1024
Maxsize=268966912
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg -t minix
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: No such device
=============================================================================
请问我应该怎么做?
谢谢。
|
不是 minix 不堪, 而是 它没有好的掉点保护机制。
|
nand flash是特殊的,写入得先擦除,擦除至少擦16k
同时nand 的读写寿命有限,几十w次听着多,编程破坏一个for就够了
所以我猜测内核实现时在某一层上较大的内存缓存
最好用yaffs、jffs2 等转为nand flash写的文件系统,提供了损耗平衡
同时nand 的读写寿命有限,几十w次听着多,编程破坏一个for就够了
所以我猜测内核实现时在某一层上较大的内存缓存
最好用yaffs、jffs2 等转为nand flash写的文件系统,提供了损耗平衡