如何访问 nand flash 分区 - 嵌入式开发 - Linux论坛

来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:41:40
我用提优龙 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
=============================================================================
请问我应该怎么做?
谢谢。
| | |
发短消息加为好友
T-Bagwell 当前离线
UID
11344913
帖子
4188
精华
20
积分
9550
可用积分
9550
信誉积分
5
专家积分
35
空间积分
0
阅读权限
100
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04


版主

帖子
4188
主题
126
精华
20
可用积分
9550
专家积分
35
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04
状态:...保密...
[] [博客] [短信]

2楼 发表于 2010-01-22 11:55 |只看该作者
 
mount -t minix -o loop /dev/mtdblock3 /tmp/cfg
mount -t minix -o nolock /dev/mtdblock3 /tmp/cfg
__________________________________
吹牛B谁都会,但是能把牛B吹破就是一种本事,能让人佩服,吹不破就别吹了,累
| | |
发短消息加为好友
chengdot 当前离线
UID
22843309
帖子
48
精华
0
积分
72
可用积分
72
信誉积分
100
专家积分
0
空间积分
0
阅读权限
10
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23


侠客

帖子
48
主题
8
精华
0
可用积分
72
专家积分
0
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23
状态:...当前离线...
[] [博客] [短信]

3楼 发表于 2010-01-22 12:17 |只看该作者
 
[root@(none) /]# mount -o loop /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument
[root@(none) /]# mount -o nolock /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument
| | |
发短消息加为好友
T-Bagwell 当前离线
UID
11344913
帖子
4188
精华
20
积分
9550
可用积分
9550
信誉积分
5
专家积分
35
空间积分
0
阅读权限
100
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04


版主

帖子
4188
主题
126
精华
20
可用积分
9550
专家积分
35
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04
状态:...保密...
[] [博客] [短信]

4楼 发表于 2010-01-22 12:41 |只看该作者
 
kernel编译的时候选上了minix了吗?
__________________________________
吹牛B谁都会,但是能把牛B吹破就是一种本事,能让人佩服,吹不破就别吹了,累
| | |
发短消息加为好友
chengdot 当前离线
UID
22843309
帖子
48
精华
0
积分
72
可用积分
72
信誉积分
100
专家积分
0
空间积分
0
阅读权限
10
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23


侠客

帖子
48
主题
8
精华
0
可用积分
72
专家积分
0
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23
状态:...当前离线...
[] [博客] [短信]

5楼 发表于 2010-01-22 13:57 |只看该作者
 
QUOTE:
原帖由 T-Bagwell 于 2010-1-22 12:41 发表
kernel编译的时候选上了minix了吗?
谢谢 Bagwell 的提醒,内核的确没选上 minix,加上可以 mount 了,
(我本来以为有了 mkfs.minix,内核就是支持的,后来才发现 mkfs.minix 是 busybox 带来的。)
但是又有问题:
mount 到 /tmp/cfg 后,在 /tmp/cfg 中的建立、修改文件,在断电之后却不能被保存下来,
连用上 sync 都不管用,除非 umount 或 reboot (会调用 umount ?);
这又是怎么回事?
| | |
发短消息加为好友
T-Bagwell 当前离线
UID
11344913
帖子
4188
精华
20
积分
9550
可用积分
9550
信誉积分
5
专家积分
35
空间积分
0
阅读权限
100
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04


版主

帖子
4188
主题
126
精华
20
可用积分
9550
专家积分
35
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04
状态:...保密...
[] [博客] [短信]

6楼 发表于 2010-01-22 14:23 |只看该作者
 
是不是必须用minix呢?
比如ext2
如果是flash的话,jffs2  yaffs 都应该可以的
__________________________________
吹牛B谁都会,但是能把牛B吹破就是一种本事,能让人佩服,吹不破就别吹了,累
| | |
发短消息加为好友
chengdot 当前离线
UID
22843309
帖子
48
精华
0
积分
72
可用积分
72
信誉积分
100
专家积分
0
空间积分
0
阅读权限
10
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23


侠客

帖子
48
主题
8
精华
0
可用积分
72
专家积分
0
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23
状态:...当前离线...
[] [博客] [短信]

7楼 发表于 2010-01-22 14:38 |只看该作者
 
QUOTE:
原帖由 T-Bagwell 于 2010-1-22 14:23 发表
是不是必须用minix呢?
比如ext2
如果是flash的话,jffs2  yaffs 都应该可以的
那倒不是,不过 busybox 中的 mkfs 只有 minix 版本,
而我又一时没找到 mkfs 的代码和可以在 arm 中运行的 mkfs.ext2/yaffs 等版本,
| | |
发短消息加为好友
T-Bagwell 当前离线
UID
11344913
帖子
4188
精华
20
积分
9550
可用积分
9550
信誉积分
5
专家积分
35
空间积分
0
阅读权限
100
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04


版主

帖子
4188
主题
126
精华
20
可用积分
9550
专家积分
35
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04
状态:...保密...
[] [博客] [短信]

8楼 发表于 2010-01-22 15:08 |只看该作者
 
不用
这个你可以在pc上做一个,然后烧写到flash里
__________________________________
吹牛B谁都会,但是能把牛B吹破就是一种本事,能让人佩服,吹不破就别吹了,累
| | |
发短消息加为好友
chengdot 当前离线
UID
22843309
帖子
48
精华
0
积分
72
可用积分
72
信誉积分
100
专家积分
0
空间积分
0
阅读权限
10
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23


侠客

帖子
48
主题
8
精华
0
可用积分
72
专家积分
0
在线时间
46 小时
注册时间
2009-11-10
最后登录
2010-08-23
状态:...当前离线...
[] [博客] [短信]

9楼 发表于 2010-01-22 15:22 |只看该作者
 
嗯,烧了一个 ext2 的,现象一样,非要 umount 数据才能保存,
真奇怪。。。。
我怀疑 busybox 提供的 sync 没正确工作,自己写了一个执行程序调用 api 中的 sync(),
但现象依旧。
难道以后都要 umount ?
| | |
发短消息加为好友
T-Bagwell 当前离线
UID
11344913
帖子
4188
精华
20
积分
9550
可用积分
9550
信誉积分
5
专家积分
35
空间积分
0
阅读权限
100
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04


版主

帖子
4188
主题
126
精华
20
可用积分
9550
专家积分
35
来自
北京
在线时间
627 小时
注册时间
2007-12-10
最后登录
2010-09-04
状态:...保密...
[] [博客] [短信]

10楼 发表于 2010-01-22 15:25 |只看该作者
 
mount -o 选项加上一个sync应该就可以了
或者mount的时候-o加上一个rw,然后手动sync
__________________________________